Tải bản đầy đủ (.pdf) (21 trang)

Zend Framework : Quick Start Walkthrough - Khởi động với Zend Framework

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (79.2 KB, 21 trang )

Zend Framework
Quick Start Walk Through
Bradley Holt
<>
Found Line
Introduction
Zend Framework is a "glue" framework that also provides
an MVC "stack."
Provides much flexibility but "best practices" are still
sometimes hard to figure out (there are proposals that
address this such as Zend_Console & Zend_Build).
This presentation will focus mainly on what is suggested in
Zend Framework documentation.
Why We Chose Zend Framework
Clear separation between design and development (MVC)
Gives a starting point for code reuse (coding standards,
namespace organization, etc.)
"Use-at-will" architecture - if I don't like something I can
extend or replace it
Great documentation
Permissive open source license (modified BSD)
Doesn't hurt to have "The PHP Company" behind it
Resources
Zend Framework installation
Zend_Controller quick start
Example web application on Google Code
Installation
Make sure you have PHP 5.1.4 or later (full system
requirements).
Download the latest stable release, download the latest
nightly snapshot, or use a Subversion (SVN) client to get a


copy of Zend Framework.
Make sure your PHP include_path contains the path to the
Zend Framework library.
Zend Framework contains many components that may now
be used in your web application even if you decide not to
use Zend Framework MVC.
Zend Framework MVC Overview
Model - many options including Zend_Db & Zend_Service
View - Zend_View
Controller - Zend_Controller
Zend_Controller_Front uses a Front Controller pattern.
Incoming requests are dispatched to Action Controllers
based on the requested URL:

/> /action
/action /key /value
File System Layout
application/
controllers/
ErrorController.php
IndexController.php
models/
views/
scripts/
error/
error.phtml
index/
index.phtml
helpers/
filters/

html/
.htaccess
index.php
library/
Zend/
html/
Your web server's document root.
Contains the bootstrap file which all requests are routed
through.
Contains the .htaccess file which uses mod_rewrite to make
sure all requests are rewritten to your bootstrap file.
You can use regex so that requests for static files (e.g. js,
ico, gif, jpg, png, css) are not rewritten to your bootstrap file.
html/.htaccess
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
php_value include_path /library
php_flag register_globals off
php_value error_reporting 2047
php_flag display_errors on
html/index.php (bootstrap file)
<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run(' /application/controllers');
application/controllers/
Contains the Action Controllers for your web application.
Each of your Action Controller will extend the
Zend_Controller_Action class.
Each of your Action Controller class names should end in
"Controller." For example: FooController.

Each Action Controller can have multiple actions
represented by public functions ending in the name "Action."
For example: barAction().
application/controllers/
IndexController.php
<?php
/** Zend_Controller_Action */
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
}
}
application/views/scripts/
Contains the view scripts for your web application.
Default extension for view scripts is .phtml.
Controller name is used to match the directory and action
name is used to match the view script.
Given FooController::barAction() the view script would be
foo/bar.phtml.
application/views/scripts/index/
index.phtml
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
" /><html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>My first Zend Framework App</title>

</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
application/controllers/
ErrorController.php
<?php
/** Zend_Controller_Action */
require_once 'Zend/Controller/Action.php';
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
}
}
application/views/scripts/error/
error.phtml
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
" /><html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Error</title>
</head>
<body>
<h1>An error occurred</h1>
<p>An error occurred; please try again later.</p>
</body>

</html>
application/models/
A place for your "model" code.
I prefer to create a namespace in library that contains the
models specific to the web application.
application/views/helpers/ &
application/views/filters/
Custom view helpers and filters.
Examples of Zend Framework built-in view helpers include
formButton (for creating an XHTML form button), url (for
creating URLs based on named routes), and htmlList (for
generating unordered and ordered lists based on an array).
Examples of Zend Framework built-in filters include
HtmlEntities, StringToLower, and StringTrim.
library/
Library code used by your web application.
Includes Zend directory which is where Zend Framework
lives. I usually setup this up using svn:externals.
When setting up my own libraries I like to follow the Zend
Framework way of setting up namespaces.
What's Next?
More controllers and actions
Some "M" in MVC - Zend_Db is the next logical step for
most web applications
Send me an email requesting commit access to the
example web application if you want a sandbox <bradley.
>
Questions?

×