0% found this document useful (0 votes)
116 views16 pages

What Is PHP Zend Framework - Tutorial 2

Zend Framework provides an advanced Model-View-Controller (MVC) implementation that can be used to establish a basic structure for your Zend Framework applications. This QuickStart will introduce you to some of Zend Framework's most commonly used components

Uploaded by

apex_tgi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
116 views16 pages

What Is PHP Zend Framework - Tutorial 2

Zend Framework provides an advanced Model-View-Controller (MVC) implementation that can be used to establish a basic structure for your Zend Framework applications. This QuickStart will introduce you to some of Zend Framework's most commonly used components

Uploaded by

apex_tgi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

By

Apex TG India Pvt Ltd


http://www.apextgi.in

Model View Controller design pattern


Model
Classes that access your data

View
Templates to present that data (e.g. HTML for browser)

Controller (action controller)


Application flow
Connects model and view

(Bonus: front controller!)

Front Controller

Front controller pattern


Front controller sits in front of MVC
All PHP requests funneled through index.php (bootstrap file)
Front controller gets your application started

Initializes request/response objects


Can handle common settings and functionality

Include paths
Configurations
Location of MVC components (if necessary)
Logging, db (perhaps), authentication/authorization

Converts URL to a request object with distinct parts


Routes requests to appropriate action controllers

Receives exceptions

Front controller to action controller

Routes URL request


Default routing convention:

http://example.com/controller/action/param1/value1...
Controller maps
to class name

Action maps to
method name

Param/value pairs
are passed to
action

http
reques
t

Controller1
action1()
action2()

Bootstrap:
index.php

Front
Controller
Controller2
action1()
action2()

Front controller needs two files in


public folder
In document root
(public folder):
1. .htaccess

redirects requests
to bootstrap script
(index.php)

2. index.php

instantiates
Front Controller

Front controller file #1: .htaccess


RewriteEngine on
# funnel all requests to index.php
# except requests for static resources
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

Front controller file #2: index.php


<?php
// bootstrap file
setincludepath('.' . PATHSEPARATOR . '../library' . PATHSEPARATOR
. '../application/default/models/' . PATHSEPARATOR .
getincludepath());
// Prepare the front controller
$frontController = Zend_Controller_Front::getInstance();
// Dispatch the request using the front controller
$frontController->dispatch();

Action Controller

Action Controller
Controller classes handle groups of request URLs
http://example.com/controller/action
Default: IndexController
Organizes and groups functionality
One class (extending Zend_Controller_Action) for each controller

Action methods in each controller class handle

requests

http://example.com/controller/action
Default: indexAction()
Named like actionAction()

Example: If action is edit then method is editAction()

More controller functionality


Several standard methods help organize and

control the flow

init() called by the constructor


preDispatch() called before the actions method
postDispatch() called after the actions method

Utility methods

forward(), redirect(), getParam(), getRequest(), getResponse(), render()

Action helpers add functionality

Built-in helpers. Example: gotoSimple()


Your own helpers
Avoids the need to build your own base controller class

Controller example

Action helpers

They extendZend_Controller_Action_Helper_Abstract

Built-in action helpers

ActionStack
AjaxContext
AutoComplete: Dojo, Scriptaculous
ContextSwitch
FlashMessenger
Json
Redirector
Url
ViewRenderer

Create your own

Placein the "My/Helper/" directory of your library (or any directory on your
includepath)

Action helper example: Redirector


gotoSimple()
classForward_ControllerextendsZend_Controller_Action
{
protected$redirector=null;
publicfunctioninit()
{
$this->redirector=$this->helper->getHelper('Redirector');
}
publicfunctionmyAction()
{
/*dosomestuff*/
//Redirectto'my-action'of'my-controller'inthecurrent
//module,usingtheparamsparam1=>testandparam2=>test2
$this->redirector->gotoSimple('my-action',
'my-controller',
null,
array('param1'=>'test',
'param2'=>'test2'
)
);
}
}

Questions?
Send me your thoughts: [email protected]

See you at APEX


TG!

You might also like