queues to email to caching, are made simpler by the components Laravel provides. But Laravel’s
components aren’t just great on their own; they provide a consistent API and predictable structures
across the entire framework. That means that, when you’re trying something new in Laravel, you’re
more than likely going to end up saying, “… and it just works.”
This doesn’t end at the framework itself, either. Laravel provides an entire ecosystem of tools for
building and launching applications. You have Homestead and Valet for local development, Forge for
server management, and Envoyer for advanced deployment. And there’s a suite of add-on packages:
Cashier for payments and subscriptions, Echo for WebSockets, Scout for search, Passport for API
authentication, Socialite for social login, and Spark to bootstrap your SaaS. Laravel is trying to take
the repetitive work out of developers’ jobs so they can do something unique.
Next, Laravel focuses on “convention over configuration” — meaning that if you’re willing to use
Laravel’s defaults, you’ll have to do much less work than with other frameworks that require you to
declare all of your settings even if you’re using the recommended configuration. Projects built on
Laravel take less time than those built on most other PHP frameworks.
Laravel also focuses deeply on simplicity. It’s possible to use dependency injection and mocking and
the Data Mapper pattern and repositories and Command Query Responsibility Segregation and all
sorts of other more complex architectural patterns with Laravel, if you want. But while other
frameworks might suggest using those tools and structures on every project, Laravel and its
documentation and community lean toward starting with the simplest possible implementation — a
global function here, a facade there, ActiveRecord over there. This allows developers to create the
simplest possible application to solve for their needs.
An interesting source of how Laravel is different is that its creator and its community are more
connected to and inspired by Ruby and Rails and functional programming languages than by Java.
There’s a strong current in modern PHP to lean toward verbosity and complexity, embracing the more
Java-esque aspects of PHP. But Laravel tends to be on the other side, embracing expressive, dynamic,
and simple coding practices and language features.
The Laravel Community
If this book is your first exposure to the Laravel community, you have something special to look
forward to. One of the distinguishing elements of Laravel, which has contributed to its growth and
success, is the welcoming, teaching community that surrounds it. From Jeffrey Way’s Laracasts video
tutorials to Laravel News to Slack and IRC channels, from Twitter friends to bloggers to the Laracon
conferences, Laravel has a rich and vibrant community full of folks who’ve been around since day
one and folks who are on their own day one. And this isn’t an accident:
From the very beginning of Laravel, I’ve had this idea that all people want to feel like they are part
of something. It’s a natural human instinct to want to belong and be accepted into a group of other
like-minded people. So, by injecting personality into a web framework and being really active
with the community, that type of feeling can grow in the community.
Taylor Otwell, Product and Support interview