In this article, we’ll review the best PHP frameworks to use in 2023. As part of that, we’ll look at what a PHP framework is, when you should consider using one, and what the main benefits of using a PHP framework are. We’ll also consider the best PHP framework for beginners, and the best frameworks for web development.
- What is a PHP Framework?
- When to Use a PHP Framework
- Reasons Not to Use a PHP Framework
- Top Benefits of PHP Frameworks
- Best PHP Frameworks to Use
- Best PHP Framework for Beginners
- Best PHP Frameworks for Web Development
What is a PHP Framework?
Before we get into the benefits of using PHP frameworks and which are the best PHP frameworks to use, we need to first understand what a PHP framework is.
PHP is the world’s most used server-side language, and PHP frameworks have been around for a long time and have taken different forms and paradigms throughout the years. They power anything from simple websites to big, complex web applications that manage millions of registrations and daily visits.
PHP frameworks have been in use for decades now (Phplib, the first PHP framework, dates from pre-2000), and they’ve taken different forms, but their main purpose has stayed mostly the same. That purpose is: to help PHP developers by providing sets of commonly used functions, as well as libraries for common functionalities, and enforce to the use of the best coding practices.
Think of a PHP framework as a skeleton that already provides a running system where you can embed your code without having to go through every detail from scratch. Need secure authentication? Already taken care of! Routing? Yes! Dependency injection? You bet!
By using PHP frameworks, we can drastically reduce the amount of code we need to write and improve our efficiency, while also ensuring a high level of quality due to the usage of code standards and best practices. Exploring how a PHP framework functions is also a good way to add to your PHP learning as you grow your development skills.
When to Use a PHP Framework
Even though nowadays it can seem like almost a no-brainer for a PHP programmer to use a PHP framework in almost every project, there are many cases where using one might not be the best idea. It all depends on the project. Most of the time, the discussion centers around what framework to use, when a lot of time the discussion really should center around whether or not we should use one at all.
To demystify this, let’s have a quick look at some of the pros and cons of using a PHP Framework.
Reasons Not to Use a PHP Framework
It may be odd to talk about the cons of a PHP framework in an article about the best PHP frameworks, but it’s important to understand when using a PHP framework might not be the best idea.
A PHP framework will always add complexity and overhead to your PHP scripts. You’ll always have to take into consideration that, before even running a simple script, a PHP framework will always load some number of classes and libraries before running it.
So before choosing a PHP framework, take into consideration the needs of your application. Sometimes the best solution might be to just write some custom code at the lowest abstraction level that will be faster and less complex than using a framework.
General Solutions for specific problems
As we mentioned before, a framework provides a skeleton of libraries and functionality that’s ready to use and that should solve the most common problems a developer finds. However, as PHP’s creator Rasmus Lerdorf has said:
Nobody has a general problem. Everyone has a very specific problem they’re trying to solve. And a general-purpose framework, while it can solve it, it usually solves it in a way that you get so many other things that you don’t need that ends up being done on every request.
This is why, when we’re choosing a framework, we should be careful to understand if it solves our problem, and only after that should we check if it fits the rest of our needs.
Frameworks pull us towards good, structured code and best practices. But those take time and effort to learn and master. If someone picks up a framework without a solid knowledge of it and the concepts behind it, chances are, we’ll end up with a big mess instead of structured code.
One thing we have to understand when we decide to use a PHP framework is that we’re introducing an external dependency. With this, we’re accepting that the people in charge of the framework might stop supporting it at any time, or move its development in a different direction. We also have to take into consideration the time needed to upgrade the framework to newer versions, and having to deal with all the code updates that upgrade might bring.
The actual framework also introduces a new layer of abstraction into our code. While many parts of the framework are meant to be customized, the framework core is usually a black box that’s not meant to be touched. If we modify it, then we can’t count on getting any support, and all future updates will be impossible to do without a lot of rework.
These are some of the downsides of using a PHP framework. So, if we’re in a hurry or our project is small, it may be better to not use a framework. Instead, we should consider using a microframework (a framework where functionality is stripped to the bare minimum essentials), or even consider starting from scratch using some libraries we’re familiar with.
Top Benefits of PHP Frameworks
While there are some corner cases where using a PHP framework isn’t the best solution for a specific problem, there are also a lot of benefits to using one. Let’s take a closer look at the benefits.
Quicker development times
A well-selected PHP framework already contains implementations for the most common problems one has to solve built into it. And not only that, it usually provides a well-structured application architecture — Model-View-Controller (MVC) being the most common — to guide our development.
This way, instead of spending time and effort planning an application architecture, evaluating the various libraries available, and implementing the architecture from the ground up, by using a framework we get a fully functional template and only have to focus on building the features specific to our project.
Added to that, a lot of PHP frameworks also include command-line tools that help generate automatic code templates that can further speed development.
One of the biggest problems when developing PHP applications is security. Most developers aren’t equipped with all the tools or skills needed to create a secure PHP application. By using a PHP framework, we’re using solutions that are continuously tested, reviewed, and scrutinized by the PHP community. Because most of them are open source, security issues are usually quickly noticed and fixed.
As developers, we should know our solutions and implementations by heart. But when we work in a team, things change. Without knowledge of the design decisions and complete documentation of the codebase, team members will find it hard to use and sometimes to understand our application’s code.
Using a PHP framework makes it easier for new developers to get started on the project. Even if they’re not already familiar with the framework, they’ll probably have access to complete documentation for it, together with multiple videos and tutorials on how to use it all around the Web. This way, developers can focus on developing features instead of constantly guiding new team members throughout the project.
Best PHP Frameworks to Use
The world of PHP frameworks has expanded rapidly over the last decade. Frameworks have come and gone, and in the last few years, we’ve seen some stabilization. With that, some frameworks have come up as the top choices for most projects.
It’s difficult to look at the ever-growing list of PHP frameworks and choose the best five. Some will be better for specific cases, and some will have faster learning curves or better/worse community support. When creating a list like this, we’re looking at all those factors and picking the ones that perform better in a general way. With that caveat out of the way, let’s have a look at the top five PHP frameworks to use in 2023.
Note: the focus here is on full-featured, general-purpose frameworks, rather than domain-specific frameworks or microframeworks.
From the Laravel website:
Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching … Laravel aims to make the development process a pleasing one for the developer without sacrificing application functionality.
Laravel is probably the most used and recommended PHP framework at this point. It was first released in 2011 by Taylor Otwell in an attempt to create a more advanced alternative to CodeIgniter which, at the time, didn’t provide features such as authentication and authorization.
Laravel is a very extensive and feature-rich framework that follows the MVC pattern and provides out-of-the-box functionalities such as:
- email verification
- password reset
When it comes to templating, Laravel uses the template engine Blade, and database interactions are covered by the Eloquent ORM. Laravel also uses the Artisan command-line tool to help speed up development.
Note: ORM stands for object relational mapper. An ORM is a mechanism that makes it possible to address, access and manipulate database objects without having to consider how those objects relate to their data sources. It’s essentially a black box for how the interaction with the database is done.
Laravel is also very easy to install through Composer, or solutions like the Homestead, Vagrant box or Laravel Valet.
Finally, Laravel benchmarks as the fastest PHP Framework for most use cases. Altogether this makes Laravel the top general-purpose framework, and it should be taken into consideration when selecting a PHP framework for your next project.
If you want to learn more about Laravel, you can check out the Laravel resources on SitePoint, or get right into building a blog using Laravel.
- Launched: June 2011
- Current version: 9, released on January 2022.
- Technical requirements: PHP >= 8 (or use Laravel Homestead)
composer create-project laravel/laravel your-app-name
- Website: laravel.com
- Documentation: Laravel docs
Symfony can be looked at from two different perspectives. It’s a PHP framework, and it’s also a collection of PHP components for building web applications. Thanks to this versatility, Symfony is highly scalable. You can either work with the entire framework or just choose a couple of components that suit your use cases. It can be as simple or as complicated as it needs to be, and the proof that Symfony is indeed a great piece of software is that most other PHP frameworks use Symfony components in the background.
Symfony uses the Doctrine ORM for database interactions and Twig as a templating engine. It also has its own CLI tool to help with development.
SitePoint has a nice collection of Symfony articles that can get you up to speed here.
- Launched: 2005
- Current version: 6.1.5, released on May 2022
- Technical requirements: PHP >= 8
composer create-project symfony/skeleton:"6.1.*" my_project_directory
- Website: symfony.com
- Documentation: Symfony docs
Another thing to consider when looking at both Laravel and Symfony is that both have huge communities of developers actively using them and developing for them. Training in both is widely available, and the documentation on both is really good and extensive.
The idea behind CakePHP was to have a framework for web development that focused on rapid development that made building web applications simpler and faster, and that required less code. The idea was to use conventions over configuration to enable fast work, without making a lot of decisions up front. This means there are no XML or YAML files.
CakePHP has its built-in ORM, and in terms of templates, it uses its own file format (
.ctp) that uses an alternative PHP syntax to control its structures and outputs.
Just like the other frameworks, CakePHP implements security features such as encryption, password hashing, safeguarding form data, and CSRF protection.
Even though its community isn’t as big and vibrant as the Laravel community, there are still plenty of resources and events for CakePHP developers happening all around.
- Launched: 2005
- Current version: 4.4, released on August 2022
- Technical requirements: PHP >= 7.4
composer create-project --prefer-dist cakephp/app:~4.0 my_app_name
- Website: cakephp.org
- Documentation: CakePHP docs
Just like CakePHP, CodeIgniter was created to be a rapid development MVC framework with minimal configuration. But its creators took that to the next level.
CodeIgniter has a very small footprint (1.2MB download) which means there’s very little bloat and it’s also really fast.
Even though CodeIgniter doesn’t come bundled with an ORM, it has a full-featured and very fast abstracted database class that supports both traditional structures and query-builder patterns. The same for templates: even though we can use an external templating engine or plain PHP, CodeIgniter has a
Template class that can be used.
- Launched: 2006
- Current version: 4.1, released on February 2022
- Technical requirements: PHP >= 7.4
composer create-project codeigniter4/appstarter your-app-name
- Website: codeigniter.com
- Documentation: CodeIgniter docs
FuelPHP is the youngest framework on this list. It’s introduced with the following proposition:
The Fuel PHP Framework is a fast, simple, and flexible PHP 5.4+ framework, born from the best ideas of other frameworks, with a fresh start!
FuelPHP is full of “new” concepts and paradigms — such as the usage of HMVC (Hierarchal Model View Controller) instead of just MVC. HMVC provides better code organization, greater modularity, more extensibility, and encourages code reuse.
FuelPHP provides its own ORM and command-line tool and has a small but very enthusiastic community. Even though FuelPHP is the youngest of the frameworks presented, it’s definitely a choice to consider.
- Launched: 2014
- Current version: 1.9, released in December 2021
- Technical requirements: PHP >= 5.3
composer create-project fuel/fuel --prefer-dist .
- Website: fuelphp.com
- Documentation: FuelPHP docs
Best PHP Framework for Beginners
You can learn to use a framework even as you’re beginning to learn PHP. For beginners looking to start using a PHP framework, the criteria for choosing a PHP framework are a little different from those of established developers. Even though some of the topics may overlap, when looking to get their feet wet on this topic, beginners need to look at the things like these:
- simplicity and installation of the framework
- best practices (MVC, PSR compatibility)
With this in mind, we’ve compiled the top three frameworks that not only are easy to install and have great documentation and communities, but that also give beginners the best opportunity for learning and growth.
Thanks to its great community and documentation, Laravel is probably the best framework for getting started. It’s flexible enough to be easy to use even in a simple use case, as well as for big and complex applications. It will also set every developer on the path of programming according to best practices of coding and testing.
A framework we haven’t looked at it yet is the Yii2 framework. This is a great choice for those just starting out. It has a fairly simple instruction manual that can get developers up and running fairly quickly.
Even though Yii2 is quite a large framework, it has very good performance and it provides two options of program frames upon installation: basic and advanced.
The main difference between the two (other than the folder structure) is that the advanced template has a working user authentication system, while the basic one has the users hardcoded in the user model.
At first, developers can start with less code bloat to get the hang of the framework, and after that, they can use the two versions to compare and hopefully learn how to build a proper authentication system.
We haven’t added Yii2 to our list above, because we wanted to pick the top five framework choices for 2023. Yii2 is a top contender and is on par with other frameworks like CakePHP or CodeIgniter.
Symfony is quite a large and complex framework. So why do we list it here under the best frameworks for beginners?
Symfony is all about modularity. Thanks to all the independent building blocks in Symfony, we can make it as small and simple or as big and complex as we want.
Also, be aware that a lot of modern PHP frameworks use Symfony components in the background. By learning these components in Symfony, we’re ensuring we’re learning other frameworks too.
Thanks to this tutorial on the Symfony website, we can learn how to build a PHP framework by using different Symfony components. This is a great exercise for beginners, as it gives a proper understanding of what’s happening in the background of most PHP frameworks.
A quick note on microframeworks
Microframeworks — such as Fat Free Framework or Slim — are also very good starting points for beginners. They still use the same programming and architectural paradigms as their older siblings, but they strip the functionality down to a bare minimum.
By using them, we can learn the essentials (MVC, front controller, routers, dependency injection, and so on) before moving on to more specific concepts.
The only problem with microframeworks is that, because they offer a very limited amount of functionality, we may find ourselves needing to install new components or switching frameworks very fast.
Best PHP Frameworks for Web Development
As we’ve seen, there’s really no such thing as the best framework for web development. What exists is the best framework for a specific use case. Consider three of the most common use cases:
- big enterprise platforms
- rapid prototyping
- REST APIs
We can say that, for big enterprise projects that have a lot of functionality and big teams working on them, frameworks like Laravel and Symfony are the best suited, as they provide a lot of functionality out of the box, a big community of users, top-level training, and reliable support.
In the case of rapid prototyping, frameworks like CakePHP and CodeIgniter are the best options, as they were created for that purpose. Prototypes and smaller web platforms benefit from the ease of use and direct approach from those frameworks.
And finally, in terms of REST APIs, microframeworks like Slim are the better suited, as they’re already lightweight and very quick and easy to use and understand. At the end of the day, components for routing, middleware and dependency injection are all we need to get a REST API going.
With this in mind make, we need to be sure what our project is all about before choosing a PHP framework, as each framework has its own strengths and weaknesses.
I hope you enjoyed this deep dive into the best PHP frameworks for 2023. Before I finish, I’d like to leave you with some quick thoughts to keep in mind when working with PHP frameworks:
There’s no such thing as the best framework for all projects. A framework is only good if it solves your problems.
When choosing a framework, before making a decision, make sure the framework is supported, updated regularly, and has a good community behind it.
Experiment! Make sure you’re comfortable and enjoy working with the framework you’ve selected. There’s no point working with “the best” framework if you’re miserable working with it.
Never stop learning! The more you experiment with frameworks and kick the tires, the more you’ll learn about PHP. To that end, have a look at SitePoint Premium, which has tons of learning resources and a range of plans starting from completely free!