Introduction
The word FRAMEWORK is the combination of two words, i.e., FRAME and WORK. It means, one FRAME has already been designed and developer has to WORK on that FRAME to meet his/her project requirements. It’s just a tool, which helps a developer to code better and faster.
In computer language, a Framework is a universal, reusable software platform to develop software applications, products and solutions. In other words, we can say it is some kind of library, a piece of software, which provides web developers with code base and consistent standardized ways of creating web applications.
Back when PHP and other technology started, developers were writing their own custom code for each functionality. Later, some people realized that, writing the same code every time, in every page, not reusing it extensively, plain PHP is not so effective.
Afterwards, as the PHP object model developed (especially with the launch of PHP 5), framework development really came into action and became so popular.
So, let's not stretch this topic as chewing gum :D and let’s check what are the key benefits of using a Framework, especially in PHP.
Organizing Code and File
When you setup a PHP Framework, it already has a certain folder structure. Most of the Framework uses MVC (Model-View-Controller) guideline or structure for managing the code. MVC pattern allows to separate business logics and presentation layer of your website, making its structure consistent and maintainable. It is expected from you to follow the same standards and keep everything organized in a certain way. Once you get used to this model, you will never want to go back.
The MVC Pattern
The Popular PHP frameworks like CakePHP, CodeIgniter, Zend Framework, Symfony follow Model View Controller(MVC) design pattern which separates business logic from user interface making the code cleaner and extensible. The way the MVC Pattern applies to PHP applications is as follows:
- Models represent your data structures, usually by interfacing with the database.
- Views contain page templates and output.
- Controllers handle page requests and bind everything together.
Enforcing of Good Coding Standards
Another effect of using Framework is maintaining coding standard in an efficient manner. Coding conventions are a set of guidelines for a specific programming language that recommend programming style, practices and methods for each aspect of a piece program written in this language. Using Framework makes it so much easier to code as you should.
Utilities and Libraries
PHP is a great language for web development and provides countless number of tools and libraries. As everybody can guess, these frameworks contains a lot of libraries to make your job easier. All top PHP frameworks come with certain Libraries and Helpers, that help you with:
- Form Validation
- SOAP/REST API
- Caching Mechanism
- Input/Output Filtering
- Data Handle With JSON
- Database Abstraction
- Session and Cookie Handling
- Email, Calendar, Pagination, etc…
Less Code & Faster Development
These MVC frameworks will really help you to develop the project rapidly, if you know one framework well then you’ll never worry about the project deadline. You will write less code, which means less time spent typing. You will not have to chase down 3rd party libraries all the time for every new project because most of them will come with the default framework installed. While working on a large project in a team, these MVC PHP frameworks will be a great tool for development as you can assign a developer to develop the MVC part of a module for a developer and integration will be quite easy for these developed modules at final level. Also, since you are being more organized, it will be much faster to chase down bugs, maintain code, and make changes to the existing code.
Community Support
All popular PHP Frameworks have great active communities behind them. There is no lack of support from the community, the documentation, and the developers. If you have any questions or need any clarifications, a quick search with the right keywords should almost always give you relevant results. If not, there’s still the message boards, mailing lists, the official and unofficial forums or the unofficial IRC channel.
Security
With a framework, most of the work for code security can be done for you automatically. For example:
- Central Authentication
- Any value passed to database object gets filtered against SQL injection attacks
- Central input validation and filtering
- All HTML generating functions, such as form helpers and URL helpers filter the output automatically
- Cross Site Request Forgery (CSRF) Protection
- Session Management Security
- Cross Site Scripting (XSS) Protection
- Encrypting cookies automatically is only a matter of changing a config option and lot more…
Performance Tools
Framework tools are utility module for maintaining modular applications. You can actually gain per Code generation makes developers life easier by creating files and default content automatically so you don’t have to do the same thing again. Framework comes with tools that help you to do caching, benchmarks, profiling, etc… Modern frameworks are also great with dynamic loading, as they load code only as needed. Lazy loading concept is also there, to make the web page ready, till the time content is ready. Different page requests can load different amounts of library code based on what needs to be used.
Simplified and Pretty URLs
Most Frameworks use a bit of mod_rewrite
magic to ensure your URLs are always clean and accessible. Apache handles requests to a particular URL, and (hidden to the client) returns this URL to /index.php as a GET string
. The index page instantiates your main framework object. Accessible URLS also help with SEO. URLs are great for the below reasons:
- They look prettier
- They are easier to remember
- They help you save filespace on pages which have many links
- They are easier to link to, both for you and for other webbies
- They help cut down on typos because there is less confusion about what exactly to write and type
Efficiently Access Database
Framework provides the way to access database in an object-oriented way. Instead of directly interacting with the database using SQL queries, you can use any Object-Relational Mapping (ORM) model to manage the structure and relationships between your data. With ORM model, you can map your database table to a PHP class and a row from that table is mapped to an instance of that class.
Conclusion
You might not opt for using PHP Framework or using a Framework may or may not be the best choice for you. But, if we believe the words “Performance Really Matters”, then we can try for any popular PHP Framework, and that will be an even easier and robust way to develop applications. Frameworks are cool and easy, and we can’t tell what tomorrow is going to bring. I hope this blog will help you to understand what are the advantages of using a Framework and will value developers.
After reading the above post, are we still thinking, whether to use Framework or not !!! \:-| :eek: :(
But, if we got the points and benefits of Framework, then :cool: ;-), we are way to go :). Hope you will like this post and will use Framework, if not till now :mrgreen:.
Thanks and I will be happy to hear from you.
Reference
http://www.phpandstuff.com/articles/top-10-reasons-why-you-should-use-a-php-framework
http://code.tutsplus.com/tutorials/10-compelling-reasons-to-use-zend-framework--net-12214