Too many PHP frameworks out there and it is too much of a confusion isn't it it?
It is difficult to have an objective opinion and that's why I'm reviewing the
ones that I have more experience with!
More specifically.... Codeigniter... Laravel
Phalcon... Symphony... Zend framework... Slim and finally the ones that are using only
composer packages!
First of all before starting comparing the frameworks that
I've used the most, I know that there are plenty other PHP frameworks but the list
is huge and it is impossible to compare all of them! That's why I believe that if
we compared just the frameworks that I have experience with, it will also help you
decide which framework fits better for your needs!
I'm getting lot of questions to say my opinion about which one is the best but
there is not a straightforward answer on that question
as it is not something objective! I will give you an example... if the questions
were a bit more specific then maybe I could reply with the more specific
answer. For example which is the most famous PHP framework?
The answer is Laravel! Which is the most fast to learn? The answer is CodeIgniter!
Which is the best for performance? Easy answer as well Phalcon! Which is the most
extendable? The answer is Symfony framework! The main thing that is difficult for me
to explain to other developers is that different frameworks will solve
different problems so for example questions like "Okay Johnny I get it but
let's say that you have to choose only one framework for your project at work! Which
one this should be? For me this type of questions are very difficult to answer
So the answer is always... "it depends" and that's the main reason that I did create
this video as a video answer to many people that have the same question out
there! I will go through the frameworks alphabetically so I will not have to
choose which one is the number one have in mind that the review is coming mainly
from my experience with them with the ten years working on PHP and
PHP frameworks! Everything that I'm about to say is my personal opinion so if you
disagree with something that's fine! Just make sure that you live a gentle comment
at the description below. With that said we can finally start! So let's
start with one of my favorite frameworks out there that also come first
alphabetically, this is... Codeigniter. Chances are that
you've already heard Codeigniter before as it is one of the simplest PHP
frameworks out there that you can use! That's true because the documentation is
just huge and as it's been a while that this framework wasn't bitten refactored
you can find many questions answered on Stack Overflow
you can literally find anything you have problem with Codeigniter
with just googling it! I'm suggesting CodeIgniter mainly for beginners to
simply see the power of using libraries that are easy to use. Although powerful
you have to be a little bit more careful as it is very easy to create too many
lines of code for something that could be handled differently. Last but not
least CodeIgniter has really fast rendering
and performance as it has smaller footprint when the libraries are called
in comparison with other frameworks! So as a summary use Codeigniter... if you are a
beginner and you really need to learn a framework very fast. If you don't want to
install composer in your local machine to start coding! For example I've noticed
that many Windows users hate the console!! If you want a fast website without
spending too much time investigating on the performance. And lastly if you have a
small to medium-sized business and you really need to have a fast start of your
project. You can literally start delivering value the fastest possible
and actually have a full complete functionality in CodeIgniter. Just have
in mind that it will be more difficult to extend the framework at the future if
the development team is getting bigger and bigger. Personally I love CodeIgniter
because it is a stable and a fast framework and I'm suggesting it all the
times. However I am really struggling most of the times if I would like to change a
default behavior of the framework. Next framework is Laravel or else the
framework that you will either love either hate! Usually people are loving it
because the code is clean and it follows good practices! It is also the most
famous framework out there and hence you can find plenty libraries that you can
use and it is also a preferable framework from companies. On the other
hand people hate it because it is more difficult to learn and because they
believe it is slow! The slow part is kind of true to be honest but have in mind
that if you use PHP 7 and start using good practices in Laravel such as
caching with OP cache and caching the slow responses, you will see big
improvements on the performance of Laravel. Also if you would like a lighter version
of Laravel I would also definitely suggest the mini framework of Laravel
with named Lumen! I don't want to extend my opinion for Laravel, as you can
find plenty of articles talking about it. As a summary in my opinion use Laravel
if your business can afford the learning curve of Laravel! If you would like clean
code and you care about what is on the background that's running! If you would
like to see how it is to use the latest technologies and best practices on
programming. If you are a big team and the project is getting bigger and bigger.
Have in mind that Laravel will also help bigger teams as there are plenty of
very good tutorials to learn it. And lastly use Laravel if you know that you
can configure the server with the best possible way in order to use latest PHP
versions and caching. If you are using a simple cheap hosting I wouldn't
suggest it as you will probably struggle with the performance of Laravel. Next
framework on our list is Phalcon or else one of the fastest framework out there!
The framework is built with C and that's the main reason that it's super super
fast! People that will see some benchmarks can't skip the fact that it's really a
fast framework! On the other hand I personally find it really difficult to
use it as the documentation is not as easy in comparison with other frameworks.
I'm not sure if it is the documentation that is not good or the syntax to use it
but I couldn't get used to it to write to Phalcon. The main problem that you may
experience is that if you are creating a product for lot of customers - for example
let's say that you are a Web Agency - you will need to make sure that your customer's
server is configurable to install PHP extensions like Phalcon. And lastly I
couldn't find too many extensions of Phalcon! I guess it doesn't fit very well
for a PHP developer to write extension in C? Who knows? Now don't get
me wrong! Phalcon is a fantastic framework and it
does the work very very well and very fast! And it is a very stable framework
as well. From the people that use it for a while it seems that they never had big
issues with the framework. It is just that in my personal taste I never liked
it so much and I was struggling to configure it. If the performance of your
server is the number one priority for you then I think Phalcon is the best
solution that you can get as an MVC PHP framework! Now let's go to Slim! If you
are an experienced Web Developer in PHP you will probably heard about Slim
framework, although it is very possible that you've never probably worked in a
company asking you to know Slim or using them extensively! To be honest Slim is
not so famous as a framework as in my personal opinion is a too abstract framework!
On the other hand is a very good framework to use if you want to start
fast and you have plans that you will have a unique architecture of your
project! So I would suggest Slim mainly to be used by more experienced
developers as it is giving you the complete freedom to use it with your way!
That simply means that if you don't know what you are doing you will probably end
up with too much lines of code. Slim is a very good and light framework but I
wouldn't suggest it for Junior developers! I would suggest Slim for
experienced PHP developers that will like a more simple and a light framework at
the same time... or to create a very fast demo project at the beginning! Next one
in our list is Symfony framework! I have to be honest here that's the only framework
that I don't have a full opinion as I've never used it as a primary framework. On
the other hand I am always using their awesome
composer libraries! I'm using Symfony libraries for a while now and the
main feedback that I have for Symfony is that they are doing a really great
work when they are creating libraries! Really the best libraries and with very
good documentation! However to use Symfony as your primary framework is not that
simple as it is a huge framework in my opinion.
If you would like a simple framework to start is their mini framework with name
Silex. Some friends of mine are using Silex and they are very impressed about
the power of the mini framework. As I don't have a full opinion about Symphony don't
forget to leave some comments below if you have some good or bad experience
about Symfony! Next one in our list is Zend Framework!
Always when I'm referring to Zend Framework as one of my favourite
frameworks people go like.... whaaaat? Seriously man this is the most complicated
framework I've ever used! I prefer to write my code in Java! So many lines of
code for one simple thing .... and so on... well people are... right! It is complicated, there
is no good documentation and Zend framework is a huge monster! However the
libraries are unique and fully extendable and that's why I'm using it!
In fact Grocery CRUD Enterprise using it primarily for the database
connections and so far it's been a great choice!
The only flaw really is the documentation that I think is really really poor! I was
using Zend Framework V1 extensively and I am using Zend Framework 2 and I'm
very impressed about the stability that their libraries have! I would suggest Zend
Framework only to very experienced developers... and just because you asked it
YES it is very close like writing Java! And finally we have the way to not use
any PHP framework and just use composer packages! For this I have to say only one
thing! You have to be really careful as your project may become huge. I will
explain you what I mean! Usually people are starting with a white
canvas of no code at all and start adding composer libraries on the go. This
is theoretically very good as an idea as you can use any library
you love. On the other hand it is very possible that the best composer
libraries usually are coming from the development of frameworks. So in the long
run you may end up with 4 frameworks into your project without a really good
reason. This is making it more difficult to extend it with new developers at the
team so you have to be careful if you are going to follow this path! In my
opinion it is better to choose a framework that you love and use any
external libraries from composer if it's necessary. With this way at least you
will have a consistency on how you and your team will write code. Also you are
making sure that your code is not too heavy with the extra libraries that you
call. As a summary use whatever framework fits to YOU and don't listen the trends
if you are happy with the framework that you are using. For me the important rule
to follow is that don't stay to... "it works" but also have the extendability
of the project in mind. Usually most of the projects are starting small and they are
getting bigger and bigger so you have to be careful that you know what you are
doing when you are choosing a framework. That's it guys! I hope you did enjoy the
video. If you did don't forget to thumbs up 👍 . If you would like to see more videos
like that don't forget to subscribe... and speak to you guys to the next video! Bye 👋