The Register® — Biting the hand that feeds IT

Feeds

Put some MVC in your PHP

Trial by separation

Customer Success Testimonial: Recovery is Everything

Hands on The Model-View-Controller (MVC) architecture provides a useful three-tier pattern for building software, as MVC patterns decouple the graphical user interface (GUI) from the application logic.

That comes in useful when it comes to changing an application after it has been deployed. Separation of the views from the data means modifications made in the views do not affect the model and modifications made to the model to not effect the graphical user interface, simplifying maintenance. Also, an application may be expanded to add views and controllers that talk to a model without actually making any changes to the model itself.

Unfortunately for web developers, one of the features lacking in PHP until recently has been support for the MVC architecture. That has meant the MVC pattern has had to be implemented externally.

Some PHP frameworks have now added support for the MVC pattern, most notably the Zend Framework - one of the leading open-source PHP frameworks. Zend simplifies the task of developing secure, reliable web-based applications and web services. Zend provides an extensible code base, a flexible architecture and does not require any configuration files.

In this article we shall connect Zend to a database from Oracle, a company that's been working closely to optimize its software with Zend.

Fire up Zend

The Zend framework requires at least PHP 5.1.4. It's recommended to install PHP 5.2.2 or later because of the security and performance improvements in the newer version of PHP. Download the Zend Framework zip file from here and - if you don't already have it - download and install Apache 2.2.3, making sure it's configured with PHP. Then, add the following include_path directive to php.ini configuration file:

include_path=".;C:\ZendFramework\ZendFramework-1.0.1\library"

Enable the PHP database extension for Oracle database in php.ini.

extension=php_oci8.dll

Restart Apache HTTP Server. Install the Oracle database including the sample schemas and create a table Catalog using SQL script catalog.sql.

Create an MVC application

Now it's time to create a Create Read Update Delete (CRUD) application using Zend's MVC architecture that'll let us build, read, update, and delete an Oracle database table row.

In the MVC architecture the model represents the entities/class objects, the controller implements the business logic and integrates the model with the view, and the view represents the presentation layer or the user interface.

The MVC architecture in Zend Framework is implemented by the Zend_Controller component. The Zend_Controller_Front class provides a front controller for the MVC architecture. The front controller intercepts all requests and dispatches the requests to action controllers based on the request URL. The format of the request URL is http://localhost/controller/action. If no controller is specified the index controller and the index action are invoked. An action controller class extends the Zend_Controller_Action class. An action controller class is named with the notation <ControllerName>Controller. For example, the action controller class for the "index" controller is IndexController.

Regcast training : Hyper-V 3.0, VM high availability and disaster recovery

Latest Comments

PHP Frameworks Features Comparison

More than 40 PHP frameworks are available. For a feature comparison please refer

http://www.phpframeworks.com/

Akelos and Prado support the most features.

0
0

RE:Escaping

To add quoting in a SELECT query PHP Zend framework provides the Zend_Db_Select class, which automatically adds the quoting. PHP Zend framework also provides the quote(), quoteInto(), and quoteIdentifier() functions to add quotes.

http://framework.zend.com/manual/en/zend.db.html#zend.db.adapter.quoting

To add quoting replace:

$where[] = "ID ="."'".$_POST['id']."'";

with:

$id=$db->quote($_POST['id']);

$where[] = "ID ="."'".$id."'";

0
0

@Deepak

Why quote from and link to articles based upon Zend press releases?

I like Zend as a company, I like the framework and I use Zend Optimizer 3.3 and Zend Guard to protect my released code, but that doesn't mean that Zend is the only option.

If we want to spread the gospel of MVC it's more helpful to show the options available and the range of resources that are out there. That way we are more likely to attract greater uptake of the MVC standard.

For example the fact that Zend doesn't have built in user authentication, ajax and active record support may turn some people off. Cake does and it supports PHP4 which could help some developers make the switch when all their legacy code is built upon older versions of PHP. The migration to PHP5 is not to be taken lightly if you have a large and complex web app already deployed on PHP4.

So I say show us all the options and everyone benefits in the long run including Zend.

Peace.

0
0

More from The Register

SCO vs. IBM battle resumes over ownership of Unix
Zombie lawsuit back and wants to suck the brains out of Linux
Bjarne Again: Hallelujah for C++
Plus: Now officially OK to admit you never used STL algorithms
Interwebs taunt Sir Jony over Apple eye candy makeover
Hey Ive, Ive... add more unicorns, willya?
Apple: iOS7 dayglo Barbie makeover is UNFINISHED - report
Plus: You don't like the icons? Blame marketing
Red Hat to ditch MySQL for MariaDB in RHEL 7
So long, Oracle! Don't let the door hit you on the way out
Shy? Socially inadequate? Fiddling with your phone could help
App 'tells the brutal truth' about social inadequates' chatup lines
Java EE 7 melds HTML5 with enterprise apps
New release arrives with GlassFish, NetBeans support
 breaking news
'Office Facebook' firm Tibbr wants you to PAY for mobe-meetings app
Great idea. Punters won't cough for it though
 breaking news
The only Waze is Google: Ad giant tipped to gobble map app 'for $1.3bn'
Pac-Man-satnav-ish upstart in bidding war with Apple, Facebook
 breaking news
PM Cameron calls for modern, programmable computers! (We think)
IT education musings to G8 chiefs to mystify IT industry