by Ruben S
The internet is filled with more websites every day.Every quarter more of the worlds commerce is conducted through e-commerce, more entertainment sites are charging people to view content, and more every day people are placing new information onto websites. But how can all these websites be built so fast? How can you make secure sites to share your log on information, passwords and financial information? The simple answer is that code is reused. Most sites share many similarities that can be quantified and made into a standard procedure. There is a database that is queried, data that is processed, and an end user that needs to see the information. The task of breaking up the components of a website into smaller parts that can be reused can be done in many different ways and through many different programming languages (Porębski, B. , Przystalski, K. , & Nowak, L., 2011). In this article I will be going over two popular frameworks that are built on php, Zend Framework and CakePhp Framework. The first section of my article will discuss what PHP is. Then I will share the pros and cons of each framework that has been built upon it. I will conclude with a brief description comparing what one framework may do when compared to the other. Though interest in Zend and CakePHP has been dwindeling in the past several months, they still have a large base of users.
“PHP imbedded in HTML code”
Zend Framework (ZF) is an open source web application framework implemented in PHP. The current release of Zend (2.1.5) is written in PHP 5 and was release in February 21st 2013. The purpose of Zend is to be modular, secure, extensible and high performing. Zend accomplishes this by being built on an object-oriented framework, utilizing its benefits such as inheritance and interfaces. This allows Zend Framework developers to use each small individual component of Zend without having to modify the code of Zend itself. So the purpose of Zend not to provide one big template, but a collection of tools that developers can mix and match as they please. This customization allows developers to build functionality unique to each project, and to eventually reduce the footprint of the code and increasing performance. The initial size of Zend is 28MB because it has so many components at its disposal. All of this customization does lead to the first roadblock in implementing Zend Framework in your own projects. It was a very steep learning curve. It’s a relatively easy transition for advanced PHP users, but beginners will have a lot to learn. Some of the great benefits, though, if you are a new user of the Zend Framework is that it has a Certification process. Meaning that you could take the courses necessary to learn the fundamentals of PHP and Zend Framework. This is also beneficial to professional developers and hiring companies alike. Developers who have the Zend Framework certificates may have an easier time finding jobs, and the Zend website hosts its own Yellow Pages were PHP professionals can display their profile. This is also convenient for companies wanting to hire new talent. With this certification, the company is guaranteed at least a industry known base of knowledge, instead of hiring individuals without knowing what they are capable of. There are a myriad of companies that use Zend Framework to develop their websites; BBC, AutoTrack.nl, Cisco webex, Offers.com, etc.
CakePHP Framework is also an open source web application implemented in PHP, though this framework is inspired by and modeled after Ruby on Rails (CakePHP, 2013). CakePHP is meant as a quick build solution to PHP web development. CakePHP divides most of the work that is required to build a site into something similar to templates. This allows CakePHP is be developed quickly, and is the reason that this Framework is preferred for prototyping. The use of templates also allows a smaller learning curve than other Frameworks. The reason CakePHP Framework is so structured in its architecture is because it follows MVC (Model-View-Controller) Conventions. With MVC architecture in CakePHP, your application is separated into three main parts. The Model layer is the business logic part of your application. It is responsible for processing data, validation, retrieving data from the database and making it into meaningful information. The View layer is the graphic rendering section of your program. It takes any information received from the Model layer, makes the information conform to the needed representation for your application. The Controller layer handles the request entered by the user. It can be thought of as the control section of your program, making sure the resources are doing what they are supposed to (Understanding Model-View-Controller 2012).
This allows developers to more easily plan and develop as you go, without having to spend a lot of time planning. CakePHP take care of the XML and YAML files, so you can readily setup your database to your site. There are a plethora of companies that rely on CakePHP to develop and prototype their websites; 7shifts, teamspeak.net, Affilorama, etc.
Though there is no one way to develop a website, there are plenty of tools available to make the work run much smoother. There is no need to reinvent the wheel each time a site is created. A developer should be able to have a firm standing point anytime they go into a project, for this reason the Frameworks were created. It is up to the individual developer to choose their own Framework, but I read some interesting suggestions during my research. Most developers seem to agree that CakePHP is a more “plug-and-play” type of Framework, suitable for beginners or those unfamiliar with PHP. Where minimal customization is needed quickly. This does not mean that it is not customizable, it just takes more hacking of the original CakePHP source code to do it. Zend Framework seems to be enjoyed more by longtime web developers because of its “pick-and-choose” approach (Bautista 2010). Both Frameworks are widely used by many companies, and are supported by legions of community users.
Bautista, N (2010, Jun 4th). 10 Compelling Reasons to Use Zend Framework. Retrieved April 26, 2013, from http://net.tutsplus.com/tutorials/php/10-compelling-reasons-to-use-zend-framework/
CakePHP. (2013, April 16). In Wikipedia, The Free Encyclopedia. Retrieved April 26, 2013, from http://en.wikipedia.org/w/index.php?title=CakePHP&oldid=550688247
CakePHP.org (2005-2013). Why use CakePHP. Retrieved April 26, 2013, from http://cakephp.org
Porębski, B. , Przystalski, K. , & Nowak, L. (2011). Building PHP Applications with Symfony, CakePHP, and Zend Framework. Indianapolis, Ind: Wiley Pub.
Prechelt, L. (2011). Plat_Forms: A web development platform comparison by an exploratory experiment searching for emergent platform properties. IEEE Transactions on Software Engineering, 37(1), 95-108.
Understanding Model-View-Controller (2012). CakePHP Cookbook 2.x. Retrieved April 26, 2013, from http://book.cakephp.org/2.0/en/cakephp-overview/understanding-model-view-controller.html
What is PHP? (2013, April). Retrieved April 26, 2013, from http://php.net/manual/en/intro-whatis.php
Zend framework 2.0 beta 3 release gives developers an early start on php app development projects. (2012). PR Newswire.