September 6, 2016 · PHP Laravel

Laravel Ecosystem: From Learning to Deployment


(Update 1 to include Laravel 5.3)

Having a strong community can be an important part for the adoption and development of a programming framework. And Laravel's community is very strong, as a result of that, new tools are popping up regularly that are tuned for Laravel. Furthermore, the core developer(s) are quickly developing and releasing new modules and services. Here I want to provide an overview of the Laravel ecosystem. If anything important is missing, feel free to write to oliver@adria.io.

Laracasts: Learn Laravel (and PHP) the screencast way

The video-/programming podcasts called Laracasts by Jeffrey Way can really increase your Laravel and PHP skills. Jeffrey Way used to work at Tutsplus (an online learning resource) and it shows - the videos are well-made and easy to follow. The focus is on Laravel, but it also goes into other PHP and developer areas, such as OOP, PHP in general or even IDEs (development environments).

If you use PhpStorm or IntelliJ for your PHP development, I highly recommend you check out Be Awesome in PhpStorm.

Actually, if you are someone who can learn by listening / code-watching and are at least semi-serious about PHP, I would recommend to pick up a Laracasts subscription for a while.

Laravel News

Eric Barnes uses Laravel News to showcase and link to new developments in Laravel. If you want to keep up to date with Laravel developments, subscribing to the Laravel News Newsletter is an easy way to do so. Recently it's also been named the official news channel.

Laracon EU & US

There's 2 official Laravel conferences, one in the US and one in the EU. I haven't been to any of them (at 399 EUR for the EU one, it's a bit out of my price range currently, if you include travel, etc). They also provide the talks afterwards on YouTube (EU and US).

Forge: Provisioning of PHP Servers

All the new stuff that you need! With Forge you can create your own SSD-based Cloud App. Currently (September 2016) it can help you set up a Digital Ocean cloud server with nginx, PHP7, MySQL / MariaDB, Redis. You can alternatively also spin up a server somewhere else (e.g. perhaps Amazon AWS) and provision it with Forge afterwards.

Envoyer.io: (Laravel) Deployment as a Service

If you use Github and Forge to do some Laravel development, then it's quite easy to deploy your app with Envoyer.io. Where Forge sets up the servers for you (mostly a one-time thing, except when you need to edit some settings such as SSL certificates or server configuration), Envoyer automates your deployment process. You can even tell Envoyer to trigger a build and deploy every time something is pushed into your GitHub repository. I even use it now for some of my Symfony work (at least for the first stage, when I want to push a prototype to show the client).

Homestead: Vagrant Development Box, all included

With Homestead it's easy to set up a development environment. As of now, I run about 5 apps within Homestead (several Laravel instances and a couple of Symfony things). It also really plays well when you use Forge servers. I learned to really appreciate a good Vagrant Box, ever since when I was working for a client, the maintainer of the Vagrant Box we were using just turned it off and we received a 404 error. We had to move all the developers to a new Box, without really any notice beforehand. As of early September 2016, it includes Ubuntu 16.04 (LTS version), PHP 7.0, the basic (Nginx, MySQL, Composer, Git) but also the (semi-)fancy (MariaDB, Redis, Node) stuff.

Lumen: Micro-Framework by Laravel

Micro-Frameworks like Lumen don't have all the features that a full-blown framework might have, but it does excel in performance and keeps a low overhead. I've played around with it, but in the end always ended up moving to Laravel. Having features and extending more easily was more important to me and I've yet to develop an app which needed to squeeze every percent of performance out of it.

Blade: HTML Templating

Laravel uses Blade for HTML templating out-of-the-box. It helps you organize your code better (e.g. footers, headers, partials and so on) and it's compiled to plain PHP code later, so there's no real overhead. You can actually also include PHP snippets in Blade. Though being »near-PHP« does improve performance, it might also support bad practice by including too much logic in the views - I know I've done this when I just started learning about MVC (Model-View-Controller) separation.

Laravel Spark: Laravel + Saas features

Laravel tries to be a bit more "open", so the author of Laravel decided to develop Spark, which is geared more towards web app development and includes features like billing subscriptions, teams, team billing, invoices or even two-factor authentication. As of September 2016 it costs 99$ per site or 299$ for unlimited sites.

Laravel Echo

This new product still lacks documentation, but the idea behind Laravel Echo is that it would simplify WebSocket operations, subscribing to channels and listening to event broadcasts.

For the backend, the event broadcasting system is built-in in Laravel 5.3, for the frontend you can use the Echo JavaScript Library. Matt Stauffer wrote a lengthy introduction or you can also check out the Laracasts for Echo. As of now, I would still wait to fully commit to it in a production system, though.

Elixir: Assets compiling

Laravel's Elixir is an API for gulp tasks and supports JavaScript pre-processors like Sass, Less and Webpack. I think you can get the most out of it, if you stick to Laravel's defaults (e.g. regarding where your assets are located).

Envoy

Envoy is a task runner for remote servers using Blade style syntax. It's not full of features, but can organize your server tasks a bit more. It also supports notifications to Slack. Looks like a good »starter kit«, but as your code and server grows, it might be a good idea to look for a more fully-featured solution.

Cashier

Laravel Cashier provides an interface to Stripe and Braintree subscription services. Cashier also supports coupons, cancellation »grace periods« or generating PDF invoices. For one-off charges, it recommends to use the Stripe or Braintree SDKs directly.

Socialite

Laravel Socialite provides an OAuth interface for Facebook, Twitter, Google, LinkedIn, GitHub and Bitbucket.

Scout (introduced in 5.3)

Laravel Scout gives you full-text search abilities for the Eloquent models. It uses observers to keep the search index synced. Certainly a nice addition to more easily add search to your app. My current go-to solution was the php client Elastica (for elastic, formerly ElasticSearch).

Passport (introduced in 5.3)

Introduced in 5.3, Passport gives you simpler OAuth2 authentication for your Laravel apps / APIs. It's based on The League's OAuth 2.0 Server.

Blogs

There are many people writing on Laravel, here I want to highlight some writers who go a bit more in-depth and whose blogs I go back to for reference purposes:


So, this is a just a short write-up of some of the popular tools that are strongly connected to Laravel. I will regularly update this page as new tools or features come in.

  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket
Comments powered by Disqus