jack4319 wrote:Hi everybody,
How to setup a website base on Zend platform
Hi,
Creating Your First Zend Framework-Driven Web SiteIts a good bet that even a very easy example will leave you utterly convinced that frameworks are a development tool you won’t be able to live without.
Create the Directory StructureBy default, the Zend Framework relies upon a highly organized application directory structure known as the conventional modular directory structure. In its most basic form, this structure looks like this:
Web server document root/
index.php
application/
modules/
default/
controllers/
views/
scripts/
This structure opens up the possibility to arrange multiple hosted MVC applications within the same location. In a situation where multiple MVC applications exist, you would add additional module directories under the modules directory. However, for the purposes of the examples in this chapter, we’ll just stick with a single (default) application.
Therefore, a normal Web application might be structured as follows. Note how there are three controllers and each of those controllers matches up to a corresponding view directory:
Web server document root/
index.php
application/
modules/
default/
controllers/
IndexController.php
BookController.php
AboutController.php
views/
footer.phtml
header.phtml
scripts/
about/
contact.phtml
index.phtml
book/
index.phtml
toc.phtml
index/
index.phtml
Don’t worry about the oddly named files and structure too much at this point. Just understand that based on the provided controllers and views and a typical configuration,
Because this directory structure won’t suit every developer, it’s possible to change the default settings;
{mospagebreak title=Create the Front-End Controller}
To begin, create a file named index.php and place the code found in Listing 25-1 inside it. The index.php script is known as the front-end controller and, believe it or not, it will be responsible for ensuring that every request for this application receives the appropriate response. This document should reside in your desired application document root.
Additionally, in the same directory, create a directory named application, and in that directory create a modules directory, and within that a default directory. Finally, within the default directory create two more directories named controllers and views, and within the views directory create a directory named scripts, each of which you’ll use later.
Listing 25-1. The Application’s Front-End Controller (index.php)
<?php
// Load the Front Controller class
require_once(‘Zend/Controller/Front.php’);
// Instantiate an instance of the Front Controller Class
$frontController = Zend_Controller_Front::getInstance();
// Point to the module directory
$frontController->addModuleDirectory(‘./application/modules’);
// Throw exceptions (useful during debugging)
$frontController->throwExceptions(true);
// Start the Front Controller
$frontController->dispatch();
?>
It is assumed the Zend Framework application will reside in the server’s document root. However, because this isn’t always possible, you can use the setBaseUrl() method to override the front-end controller’s default behavior. See the Zend Framework documentation for more information.
The ControllersNext we’ll create two controllers, namely IndexController.php and AboutController.php. These views should be placed in the directory application/modules/default/controllers. First, create the default controller class (IndexController.php), which defines the action that will occur when the Web site’s home page is requested. This script is shown in Listing 25-2.
Listing 25-2. The IndexController Class (IndexController.php)
<?php
// Load the Zend_Controller_Action class
require_once(‘Zend/Controller/Action.php’);
class IndexController extends Zend_Controller_Action
{
// Accessed through
public function indexAction()
{
$this->view->title = "Welcome to Our Chess Club Web Site!";
}
}
?>
In this example, I’ve created a view property named title that will be used to assign the Web page’s title.
Finally well create one more controller intended to display information pertinent to the Web site’s purpose and, for the sake of demonstration, some information about the visiting user. This controller, titled AboutController.php, is displayed in Listing 25-3.
Listing 25-3. The AboutController Controller (AboutController.php)
<?php
// Load the Zend_Controller_Action class
require_once(‘Zend/Controller/Action.php’);
class AboutController extends Zend_Controller_Action
{
// Accessed through
public function indexAction()
{
$this->view->title = "About Our Chess Club";
}
// Accessed through
public function youAction()
{
// Page title
$this->view->title = "About You!";
// Retrieve the user’s IP address
$this->view->ip = $_SERVER[‘REMOTE_ADDR’];
// Retrieve browser information
$this->view->browser = $_SERVER[‘HTTP_USER_AGENT’];
}
}
?>