A software framework is a compilation of many small libraries fit together to provide a stable and re-usable development environment. In the web development scene, there are several frameworks written for each technology. The process of creating a project with little functionality doesn’t require the use of a framework in most cases. What would happen if you need to make multiple projects, each functionally related to the previous and there’s not much change to be made? You’ll end up using or implementing the same code over and over again.
Instead, you can just write each functionality that might be needed for a project or use one that’s already made. And when you stitch those pieces together you get a framework – a compilation of already tested tools which are known to do the job and can be re-used for every new project. It’s not always necessary that you build each project using a framework and you can always work using different packages. Using this could prove to be faster for some projects as you won’t be using the full potential of the framework every time, instead, you can build it up choosing the libraries yourself.
Using a framework is great for junior developers or those that don’t have much experience and are just starting up. This is because when you’re insecure on how to build your application or don’t have a clear vision of what the software architecture needs to look like you can put your trust in the work of the framework’s developers. If you’re okay with the conventions that they made for you, you can be assured that you’ll be working with the best packages glued together. Following their design methodologies and knowing the specifics you can build and deploy your projects in a timely manner while still providing excellent quality to the end user. In addition using a framework implies that you’ll be using the best practices.
What is a Library?
A library most commonly is a set of functions that do a specific functionality. Once they’re included they can be called and are usually structured into classes. When a function is called it does its job, completes the interaction with the user and then returns the control back to him.
There are several key features that distinguish a framework from collections of libraries and one of the main ones is the Inversion of Control, also known as the Hollywood Principle “Don’t call us, we’ll call you”. The framework has its own built-in functions and extensive functionality. In order to use them, you need to fit your own design in it using what the framework provides you with. Then the framework’s code uses the one that you’ve implemented in it and calls it. Another feature is that you can extend the functionality of some frameworks by overriding existing code or add your own one to provide additional functionality. This doesn’t apply to the core functionality and that cannot be modified.
The disadvantages of Frameworks
Using a framework comes with disadvantages as well. One of the pros can also be considered a con as well – you’re dependent on what the vendor provides you with and you have to follow their design patterns.
Another main disadvantage is that when you start building your project with a framework you cannot replace it. The framework becomes the outer shell that your project resides in and can’t be removed without completely re-writing the code. The term “Golden Hammer” has been around in programming for some time and it means a tool that does everything perfectly. In reality, there isn’t such thing and every experienced developer knows the pros and cons of each tool that they’re working with.
Most developers and teams usually first sit and discuss the needs that a project has. Then they calculate the expenses and go for the technology that will be most cost-efficient. Teams that are after Rapid Application Development are more likely to opt for using a framework than some of the more experienced of them that know what libraries and modules can be used to support the project’s functionality.
Frameworks have their pros and cons and when you’re on the lookout to use them there are several criteria you should be on the lookout for. We’ve made comparisons of the most used PHP frameworks and what they bring to the table, you can read more from here.
Want to try different PHP frameworks?
Not a problem at all, we offer completely working PHP frameworks hosting environment where you can test and develop your projects, at a very affordable price – NOW WITH 80% OFF!
Useful links from the PHP Frameworks series by WebHostFace:
Part 1 – Complete guide to PHP and PHP Frameworks: Part 1 – Introduction
Part 2 – Model View Controller Architecture and Its Use in Modern PHP Frameworks