Before starting on any website development or project, choosing a framework is the most important step. It would define the path where and how project will go, and how easy it would be to add a functionality without making major changes to the code or framework structure.
Today I will be discussing few of the most well know frameworks used for PHP in industry. PHP has grown at a very brisk pace and the community for PHP I would say has become much more bigger since Facebook, Google, SourceForge, Honda, the New York Yankees, Audi, Subaru. So not wasting more time, I would get to the point:
The CakePHP framework provides a robust base for your application. It can handle every aspect, from the
user’s initial request all the way to the ﬁnal rendering of a web page. And since the framework follows the
principles of MVC, it allows you to easily customize and extend most aspects of your application.
The framework also provides a basic organizational structure, from ﬁlenames to database table names, keeping your entire application consistent and logical. This concept is simple but powerful. Follow the conventions and you’ll always know exactly where things are and how they’re organized.
It has plenty of documentation and api support. And developer community of CakePHP has grown substantially.
Symfony is a full-stack framework that provides an architecture, components and tools for developers to build complex web applications faster. It uses most of the best practices of web development and integrates some great third-party libraries.
Symfony is a bit complex to use than CakePHP and CodeIgniter, requiring the use of the command-line to run configuration commands and to create applications.
Zend Framework has a flexible architecture, where all the components are loosely tied. This type of use-at-will Zend Framework architecture gives PHP application developers a possibility either to use framework components separately or to combine them according to their preferences and needs. Zend Framework provides Model-View-Controller (MVC) pattern, which enables to divide web app development into presentation, business logic, and data access layers. Such MVC pattern is useful when several PHP developers and web designers are tasked with the same web app development project.
Zend Framework through Zend_Db_Adapter enables work with various third-party RDBMSs such as Microsoft SQL, Postgre SQL, SQLite, Oracle, MySQL and others, which streamlines the development process of PHP applications.
CodeIgniter is a toolkit for people who build web applications using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by minimizing the amount of code needed for a given task.
Truly light weight. The core system requires only a few very small libraries. This is in stark contrast to many frameworks that require significantly more resources. Additional libraries are loaded dynamically upon request, based on your needs for a given process, so the base system is very lean and quite fast. CodeIgniter uses the Model-View-Controller approach, which allows great separation between logic and presentation. This is particularly good for projects in which designers are working with your template files, as the code these file contain will be minimized. We describe MVC in more detail on its own page.
Yii allows developers to model database data in terms of objects and avoid the tedium and complexity of writing repetitive SQL statements. Yii supports automatic generation of complex WSDL service specifications and management of Web service request handling. Yii supports data caching, page caching, fragment caching and dynamic content. The storage medium of caching can be changed easily without touching the application code.
Yii is equipped with many security measures to help prevent your Web applications from attacks such as SQL injection, cross-site scripting (XSS), cross-site request forgery (CSRF), and cookie tampering.Yii is carefully designed to work well with third-party code. For example, you can use code from PEAR or Zend Framework in your Yii application.