A framework is a set of source code that is built, developed, and packaged - distributed by programmers or by programming companies. It will provide a standard development structure for developers to build and develop projects on. It is accompanied by a library of classes that includes multiple classes/handlers that are placed in separate packages or namespaces. Programmers use a variety of programming and algorithmic algorithms to build the best handling classes, solving programming problems quickly and accurately. The classes in a framework will work best with the standard structure that the framework provides.
PHP is a quite powerful scripting language used to build websites, cloud software, or used to program servers, and now it has many good frameworks such as Zend framework, symfony, Yii framework, Codeigniter, Laravel ... Many developers love and use it. All PHP Frameworks are built according to the standard MVC (Model - View - Controller) model and provide many layers of support for security, decentralization, captcha, view helper, module manager, database, service ... then Programmers will build and develop websites easily and quickly.
PHP framework makes the development of PHP language web applications more fluid, by providing a basic structure to build those applications. In other words, the PHP framework helps you quickly accelerate the application development process, saving you time, increasing application stability, and minimizing the number of rewriting code for programming. tablets. In addition, the Framework helps beginners to build more stable applications thanks to the precise interaction between Database, code (PHP) and interface (HTML) separately. This allows you to spend more time creating web applications, rather than wasting time writing repetitive code in a project.
The general idea behind the way a PHP framework works is Model View Controller (MVC). MVC is a programming (architecture) model that allows the separation of business logic and interfaces into separate parts, which means that we can edit them 1 separately. In MVC phrase: Model (M) can be understood as part of handling business operations (business logic), View is understood as part of interface processing (presentation layer), and Controller is tasked to filter The request is called from the user, which functions as a route: adjusting, streaming requests to properly call the appropriate Model & View. Basically, MVC breaks down the processing of an application, so you can work on individual components, while others will not be affected. In fact, this helps you program PHP faster and less complicated.
Popular PHP frameworks.
1. Zend FrameWork
Zend Framework (ZF) is an open source framework product developed on PHP 5.0 based on object-oriented standards. developed according to MVC model standards. The Zend Framework supports working with Template engine combined with View layer. Zend Framework is a PHP framework that came out quite late, absorbing the quintessence and overcoming the mistakes that previous frameworks had.
ZF is written in OOP style so it inherits the strengths of this writing style. The classes of ZF are BA (Business Analysis) very standard and when needed to expand you can use the inheritance of OOP. In general, we do not have to edit the core of ZF.
Most new versions of ZF do not have many changes in the core, so we can update.
ZF integrates almost all PHP libraries and other CMSs to use. For example, Smarty - Pear - FCKEditor - Drupal...
The writing of ZF is very friendly and simple. Integrating the latest programming like JSON - Search - Syndication - Web Services ... ZF is used in large projects and has a long-term development plan.
It took a long time to learn about ZF's library, difficult for beginners, not for standard.
Some classes are not stable, there are changes, making it difficult for users to update
CakePHP is a PHP framework, written in accordance with the MVC model based on Ruby on Rails model.
CakePHP uses the latest standards to build such as software engineering concepts and software design patterns, such as Convention over configuration, Model-View-Controller, Active Record, Association Data Mapping, and Front Controller. CakePHP was known in April 2005, when a Polish programmer Michal Tatarynowicz wrote a minimal version of a PHP-based application framework, he published it under the MIT license, and publish it online so that online communities of developers can use it. In December 2005, L. Masters and GJ Woodworth founded the Cake Foundation software company to promote development related to CakePHP. After more than a year since it appeared, version 1.0 was released in May 2006.
CakePHP is a powerful framework that supports programmers to create web applications more easily and conveniently, but develop large projects based on cloud computing technology.
Here are some advantages of CakePHP:
Compatible with PHP 5.2.8 or later
Integrating CRUD feature in database operation
Clear MVC structure
Powerful ability to adjust URLs and routes
Support Helpers classes on Views
Support utilities and utilities such as email, cookie, session, and security
Support ACL and Authentication
Caching with many methods: File, Memcached, Redis
Support for multiple database connections: MySQL, PostgreSQL, MSSQL, ..
CodeIgniter is an open source web application platform written in PHP by Rick Ellis (CEO of EllisLab, Inc). The first version was released on February 28, 2006, the current version: 3.1.4 (released on 2017.03.20). CodeIgniter building ideas are based on Ruby on Rails, a web application platform written in Ruby language. Currently, CodeIgniter is being developed by ExpressionEngine Development Team of EllisLab, Inc.
Designed according to Model-View-Controller model: MVC model helps to separate the presentation and processing components (business logic) of a software into independent components, thereby helping to set up Design, process and maintain the source code easily, while increasing the scalability of the software. CodeIgniter applies this model in design, which helps separate interface files with data processing files, improving management and ease of maintenance.
Compact: The installation package is only 404KB (not including the User Guide section). Compared to other PHP frameworks like CakePHP (1.3MB), Symfony (5.08MB) or Zend Framework (5.66MB) ... the size of CodeIgniter greatly reduces storage space.
Speed: CodeIgniter is rated as the fastest speed PHP framework today. By caching the cache, checking the buffer before executing the request, CodeIgniter reduces the number of times to access and process data, thereby optimizing the page loading speed.
Free: CodeIgniter is released under the extended Apache / BSD license, allowing users the freedom to change, develop and distribute source code.
Search Engine Optimization Support: CodeIgniter's URL structure is very friendly with search robots.
Extensive library system: CodeIgniter provides libraries to serve the most common tasks in web programming, such as database access, emailing, data checking, session management, trial image ... to advanced functions such as XML-RPC, encryption, security ...
System Security: Strict data checking, XSS and SQL Injection prevention of CodeIgniter helps minimize security risks for the system.
Object-Relational Mapping not yet supported: Object Relational Mapping (ORM) is a programming technique in which database tables are mapped into objects in the program. This technique makes it easy to perform operations in the database (Create Read Update Delate - CRUD), more concise source code. Currently, CodeIgniter still does not support ORM.
Comparing with other frameworks: CodeIgniter does not have modules that perform some common tasks in the process of building web applications such as User Authentication (User Authorization), RSS Analyzer (RSS Parser) or PDF Processor. ...
Event-Driven Programming: Event-Driven Programming (EDP) is a programming principle in which the processing threads of the system rely on events.
Launched and in 2005, as a powerful framework, Symfony is a combination of PHP's sustainability, Open Source's freedom with easy-to-maintain features of a programming code designed in MVC model (Model-View-Controller).
Symfony is an Open Source framework written in PHP5 programming language. Symfony helps develop customized web applications. A large community of developers ensures development, flexibility, freedom and cost savings for projects developed with Symfony, which also feature that Sutunam has always focused on into your Open Source solutions. Above all, along with Drupal, phpBB, and ezPublish, Symfony2 is currently one of the latest version of CMS (Content Management System) written in PHP.
Symfony has the following advantages:
Easy to install and configure on most operating systems and guaranteed to work well on standard * nix (Linux and Unix) and Windows operating systems
Independent of the database system
Easy to use in most cases but still flexible enough to adapt to complex situations
Operates in a predetermined configuration - programmers only need to configure in separate unconventional cases.
Follow best practices and designs
Ready for the enterprise environment - adapted to IT policies and architectures and stable enough for long-term projects.
The code is easy to read, with comments like phpDocumentor, easy to maintain
Easy to expand, allowing integration with other libraries
Automated web project features Most common functions of web projects are automated in Symfony, as follows:
• Available language classes allow interpreting interfaces, data as well as multilingual content.
• The demonstration uses templates and layouts that can be built by HTML designers without knowledge of the framework. Helpers reduce the amount of code that must be written by summarizing parts of the code into simple functions.
• Forms support automated checking and filling, and this ensures a better quality of data in the database and better user experience.
• Putting information out of the box protects applications from attacks through corrupted data. • Cache management features help reduce server bandwidth and load.
• Authorization and validation features make it easier to create restricted and secure user items.
• Smart navigation and URLs make the address portion of pages become search engine friendly.
• Available API and email management features that allow web applications to pass classic browser interactions.
• The lists become more user-friendly thanks to automatic paging, sorting and searching.
• Support (plugins) provides high scalability.
5. Laravel Framework
This chart shows the newly created projects in 2015.
Laravel launched at the end of April 2011 but has attracted great attention to the PHP framework community. Laravel was created by Taylor Otwell. It is a relatively new framework but in return, it has a "manual" (Document) quite complete, clear and easy to understand and many attractive advantages. If you have worked with other frameworks or are just beginning to learn PHP framework, approaching the Laravel framework is not a difficult problem. Laravel Framework still uses the MVC structure and on OOP object-oriented programming platform and inherits the power of seniors and brings new features of PHP 5.3 and above. But it is also because of the late birth that it forced it to learn the good from the PHP frameworks before, overcome the shortcomings of other frameworks such as Symfony (Laravel uses Symfony library) and especially CI. Not only learning from PHP frameworks, but it also learns good things from Ruby on Rails, ASP.NET MVC, and Sinatra.
Because it was born later, overcoming the shortcomings of the senior frameworks, it is holding the number one position in popularity today.
Let's take a look at some of Laravel's powerful features:
The route in Laravel is really different, new and powerful. Every URL can be managed in the route file.
The master layout is built-in with Blade template to help our code on neat and handy. Layout files can easily extend each other's help to make the code short and easy to manage.
Migration of database management is easy when working in a team.
Strong class eloquent stands out when processing relational database 1 - N and N - N, optimizing all queries.
Composer manages and integrates other libraries very well and does not worry when the library is changed, Laravel has enough basic libraries to fulfill all of our requirements.
The document is easy to read, understand and have full examples. Although being born later than other frameworks, Laravel has detailed and complete instructions on the homepage, examples for reading, the large development community and always being updated in time.
Eloquent ORM: This is a great ORM with the ability to migrate data and work well with MySQL, Postgres, SQL Server and SQLite, MongoDB. Easy-to-understand and quick database queries.
Package-library is rich and diverse, meeting most of our basic needs.
User authentication is built-in, programmers only need to call the class to be able to use as desired.
And many other functions ...
Above I listed some features, outstanding features of 5 popular PHP frameworks today, each Framework has a specific feature and characteristics, depending on the characteristics of the project, the customer you should choose framework fit.