我是 php5 和 Zend Framework 的新手,我正在使用 Zend Studio。我浏览了许多文档,但我仍然无法理解 Zend 中控制器背后的概念。
简而言之,我正在尝试开发一个用于帐户处理的小型 Web 应用程序。我没有对默认的 index.php 文件进行任何更改。这里是:
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
||define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv ('APPLICATION_ENV'): 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/* function _initView()
{
$view = new Zend_View();
$view->addScriptPath(APPLICATION_PATH . '/views/scripts/');
} */
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
这是我的 IndexController.php
<?php
class IndexController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
}
}
我也没有在那里做任何改变,因为我无法理解这个概念。
我的 index.phtml :
<html>
<style>
</style>
<body>
<img alt="" src="http://localhost/Accounts/application/views/scripts/images/logo.png">
<div id="text" >
<h1>Welcome</h1><br><hr>
<h4>Please Log In To View The Main Page</h4></div><br><br><br>
<form action="main/main" method="post"><center><table>
<tr>
<td>User Name :</td> <td><input type="text" name="uname"/></td>
</tr>
<tr>
<td>Passowrd :</td> <td><input type="password" name="pwd"/></td>
</tr>
<tr>
<td><center><input type="submit" value="Log In"/></center></td> <td><center><input type="reset" value="Cancel"/></center></td>
</tr>
</table></center></form>
</body>
</html>
**请注意我已指定
<form action="main/main">
转到下一页,即“main.phtml”。但这不起作用。
这是我的 MainController.php:
<?php
require_once ('library/Zend/Controller/Action.php');
class MainController extends Zend_Controller_Action {
public function init()
{
/* Initialize action controller here */
}
public function mainAction()
{
include 'views/scripts/main/main.phtml';
}
}
在上述控制器中,如果我指定,
include 'views/scripts/main/main.phtml';
与否,它的工作原理相同。在浏览器上,我尝试登录时没有显示任何内容。
由于我没有为登录指定任何标准,我认为这应该显示 main.phtml。
这里是:
<html xmlns="http://www.w3.org/1999/xhtml" lang = "en">
<style>
</style>
<head>
<meta name="keywords" content="" /></meta>
<meta name="description" content="" /></meta>
<link rel="shortcut icon" href="http://localhost/Accounts/application/views/scripts/images/favicon.ico" >
<title>Accounts Handling</title>
</head>
<body>
<div id="header"></div>
<div id="main">
<div id="menu">
<?php include ('C:\wamp\www\Accounts\application\views\scripts\header\header.php');?>
</div>
<div id="content">
<center><img src="http://localhost/Accounts/application/views/scripts/images/accounts.jpg" alt="image" height=600px width=550px/></center>
</div>
<div>
<?php include ('C:\wamp\www\Accounts\application\views\scripts\footer\footer.php');?>
</div>
</div>
</body>
</html>
我的代码有什么问题?为什么这不起作用?我需要了解的是这些控制器是如何工作的。它们如何链接视图?