Since its appearance in 2011, Laravel has emerged among the panorama of open source PHP frameworks for its fresh approach to programming and the consistency of the patterns applied to server-side implementations.
Laravel’s architecture is built on top of the MVC (Model View Controller) paradigm and its implementation is based on extensive use of the Facade design pattern. A facade typically exposes a simplified, uniform API which hides from the user many implementation details when interfacing with a set of heterogeneous and inter-operable sub-systems.
As an example, Laravel integrates schema builders and migration APIs for database management that are designed to be used in agnostic contexts. Practically this means that you can configure and easily change the definitions of your back-end database using only the tools provided by the framework. No further knowledge of the particular DBMS component in use is required, therefore it can be easily replaced whenever needed, making your application portable to different platforms. Laravel’s support also covers noSQL stores like Redis and MongoDB.
Every modern web application needs a notification system to dispatch messages to its users. Christoph Rumpel
In addition, the Eloquent component for ORM (Object-Relational Mapping) provides a simple model abstraction to build the queries to the underlying database.
Laravel also has asynchronous queued job management and user authentication facilities built-in and ready to be used out-of-the-box. The presence of REstful controllers and routing abstractions contribute considerably to the design and implementation of modern applications.
Moreover, the framework exposes to the user a simple and effective project management sub-system through a single command line tool, artisan, whose syntax is even and consistent.
Probably one of the most relevant drawbacks deriving from the adoption of Laravel as your reference framework is the fact that the migration of legacy applications based on other PHP frameworks can be tricky. Nevertheless, thanks to a steep learning curve, it will provide an effective speed-up in the development of new web applications in many scenarios.
if you are starting a new PHP project and are looking for a solid and expandable solution, you should definitely consider Laravel as a valuable candidate to rely on for your development.
Christoph Rumpel
At Codemotion Milan 2018, Christoph Rumpel, PHP developer, showcased some of the potentials of the framework with reference to the built-in management of user notifications.
As Rumpel said, every modern web application needs a notification system to dispatch messages to its users. Notifications are not only used to drive one-direction communications from the server to the users as acknowledgments or exceptions. They are indeed an enabling factor for the implementation of audit and marketing strategies spanning over several degrees of complexity. As a matter of fact, modern notification systems make large use of CTA (Call To Action) elements that help in tracking user activities and interests.
For these reasons, it is crucial for a web application built on top of an extensive framework like Laravel to easily integrate an evolved notification system.
Laravel’s notification system can feed several channels out-of-the-box like email, SMS, and database. Aside from the standard channels, there is a community-driven development project that extends the notification capabilities to additional channels, eg. to social networks. Rumpel himself gave his contribution to the development of the Twitter notification channel.
This is possible because the Laravel feature set can be extended to support custom requirements with the definition of packages, both as stand-alone PHP components or framework dependent libraries.
There are, of course, alternatives to Laravel that are equally capable and flexible. Nevertheless, the growth in Laravel’s adoption rate over the last few years is a clear indication that if you are starting a new PHP project and are looking for a solid and expandable solution, you should definitely consider Laravel as a valuable candidate to rely on for your development.