Laravel, why do programmers love it
Laravel is a PHP framework. It was released in 2011 and has very quickly become one of the most popular solutions.
Laravel
Laravel is a PHP framework. It was released in 2011 and has very quickly become one of the most popular solutions of its kind. It is an open-source software (MIT licence) based on the popular MVC (Model-View-Controller) pattern.
Despite its huge popularity, many programmers believe that Laravel is a framework not worth trusting. And what is it really like? At Code Apps we alternate between Laravel and Symfony, and we know both frameworks very well. So I decided to write down some of the most important advantages of this framework and dispel some myths.
Feel free to read the text!
What is a framework?
Let's start with explaining what a framework in general is. It is a framework used to create applications. There are different frameworks, those that are simply a set of libraries that we can use and those that dictate how we build projects.
Most applications consist of the same elements. For example, every web application must include:
- Router operation
- Database operation
- User authentication
- Email library
- etc.
If we had to do it all over again when working on each project, we would lose a lot of time. And this is when frameworks come to the rescue. They allow programmers to focus on creating the actual functions of the application.
Of course, there are applications that require dedicated solutions. However, we can confidently build most applications on a framework.
Model-View-Controller
Model-View-Controller (MVC) is a software architectural pattern that helps the programmers to structure the application.
The MVC pattern consists of 3 parts:
- Model – A model is some definition of the application logic. The most common form of model in web applications is what the application receives from the database.
- View – This element defines what our application looks like or what it offers.
- Controller – The main logic of an application that accepts output data from the user and reacts to it (transfers to a model, view or, for example, validates the received data).
Advantages of the Laravel PHP framework
Popularity
Laravel and Symfony are currently the most popular PHP frameworks, which is why programmers have access to a large community and knowledge. Additionally, a lot of companies look for programmers who are familiar with this framework.
Documentation and laracast
The authors are keen to make it as easy as possible to learn about their product. Laravel has very extensive documentation and video tutorials.
Simplicity
In my opinion, Laravel's biggest advantage is its simplicity and intuitiveness. Usually programmers who encounter a problem don't even have to look at the documentation. They write the way they „think” it should be and suddenly it turns out that it works. In addition, the people working on this tool took care of a lot of different functions or options that make the programmers' work much easier. An example is the back()
function that takes us back to the previous page. Normally, we would have to manually save the previous page in a session, read from a session and redirect the user. Laravel will do it all for us.
Authentication
A huge part of web applications is the ability for users to create an account and log in to the application. Laravel has built-in user authentication, which we add to our application with a single command. With a built-in support for registration, login and permissions, programmers gain a lot of time.
Eloquent
Laravel has a built-in system for handling databases thanks to the models we write as part of the application. A cool and easy to use solution that makes it very easy to create simple queries.
Query builder
In addition, Laravel has a so-called Query Builder that allows us to build very advanced queries without knowing the database. Using the appropriate methods, we are able to retrieve data from the database without writing a piece of SQL query.
Artisan
Artisan is a command line that makes the work of programmers very easy. Instead of doing everything manually, all we have to do is write the appropriate command and Laravel will do the task for you.
Blade
To be honest, I'm not a fan of the Blade template engine. I much prefer the Twig system that is available in the Symfony framework. However, Blade has one feature that programmers highly praise. Namely, Blade is really just an overlay for PHP. This allows us to use PHP in templates what makes Blade much more powerful. As I mentioned, I am not a fan of this solution but it is worth mentioning.
Migrations
Migrations are classes that define the structure of a database. This is a great option to not only keep order but also to keep a history of changes in the structure of a database that changes with subsequent versions of the application.
Laravel environment
Laravel is not just a framework, it is a whole ecosystem of plugins and software related to the framework. There are currently 18 components in the Laravel ecosystem such as:
- Nova – Admin panel generator for our application.
- Lumen – Microframework for small applications.
- Cashier – Module for subscription payments.
- Dusk – Module for testing the application.
- Passport – OAuth2 implementations.
- Scout – Full-text database search.
- Socialite – Login to the application using accounts from Facebook, Twitter, LinkedIn, Google, GitHub, GitLab and Bitbucket.
Some of the above plugins are paid but the time we can gain is often worth the extra money.
Laravel vs Symfony
Both Laravel and Symfony are very popular but they differ quite significantly. Laravel is easier to learn and has a lot more automated things. In Symfony we would have to write much longer code to get the same effect as in Laravel. The advantage of Symfony is definitely Doctrine and the fact that Symfony doesn’t force us to structure the application. We can do it our own way by just using components from Symfony.
A discussion on the pros and cons of both solutions is a topic for a separate article that will surely be written soon.
Which side are you on? Do you use Laravel or do you prefer other solutions?
Recommended posts
Comments (0)
Add comment