name: inverse layout: true class: center, middle, inverse --- # Laravel Ecosystem --- layout: false ## What is Laravel? ### PHP MVC Framework This allows for good separation of concerns so that your view code doesn't become conflated with your main app/business code. But this talk is not about Laravel, and is more about the Ecosystem Laravel provides that makes development a little more convenient. --- ### The Ecosystem - Community * Laravel-news.com (https://laravel-news.com) * News about Laravel related activity, tutorials, links * Larachat.co (https://larachat.co) * (Laravel Slack Channel) * Laracasts.com (https://laracasts.com) * Forum, Screencasts * Conference - Laracon EU & US --- ### The Ecosystem - CLI * Artisan (https://laravel.com/docs/5.3/artisan) * Command Line interface with Laravel. * Easily create a command you can run in a shell or schedule with Cron. * `$ php artisan` * Migrations (https://laravel.com/docs/5.3/migrations) * Part of Artisan, but keeps track of database changes in your Git repo and keeps track of which have been run in different environments allowing you to keep environments in sync easily. * `$ php artisan migrate` * Elixir (5.3), Mix (5.4) (https://laravel.com/docs/5.3/elixir) * Wrapper around Gulp/Webpack that assists in making asset pre-processing simple. * Compile Less/Sass * Minimize CSS/JS * Much More --- While Laravel does provide these things, there are existing packages that you can add to non-Laravel Projects. Command Line based Apps/Commands: https://github.com/mnapoli/silly Migrations: https://phinx.org/ Pre-processing: Gulp/Webpack and use as normal --- ### The Ecosystem - Development Running your app/site locally * Homestead * Vagrant Box setup for Laravel development, but can run other frameworks as well * Host one or many sites on a single box * Valet * Mac users only, no Vagrant, no hosts file edits, * Minimal resources * Runs Laravel as well as other projects. * are some existing projects to make it work on Windows -- Again, you could use the Scotch box provided by Scotch.io (https://scotch.io/bar-talk/announcing-scotch-box-2-5). Should be similar to Homestead Don't know of anything equivalent to Valet. Maybe MAMP, WAMP, AMPPS, XAMPP? --- ### The Ecosystem - ORM * Eloquent - Active Record ORM * https://laravel.com/docs/5.3/eloquent * Supports MySQL, Postgres, SQLite, SQL Server * Pagination of Data -- Alternative, have to name Doctrine (http://www.doctrine-project.org/projects/orm.html), although uses Data Mapper Pattern. --- ### The Ecosystem - Add On Packages Officially Supported Packages * Cashier (https://laravel.com/docs/5.3/billing) * Billing, Coupons, subscriptions, generate invoice PDFs * Socialite (https://github.com/laravel/socialite) * Connect to oAuth servers with ease * Social Login with Facebook, Twitter, Github, many many more * Passport (https://laravel.com/docs/5.3/passport) * Full oAuth2 server implementation you can add to your Laravel sites. * Scout (https://laravel.com/docs/5.3/scout) * Full text search to your Eloquent Models, keep your search indexes in sync with Eloquent records. --- ### The Ecosystem - Add On Packages Unoffically Supported * Socialite Providers (https://socialiteproviders.github.io/) * Almost any service that provides oAuth authentication, might be supported by this package. If not, you can create a new driver and submit it! 100+ services supported. * Laravel Debugbar (https://github.com/barryvdh/laravel-debugbar) * Sweet way to inspect data, number of queries and other debugging information. * Based on (http://phpdebugbar.com/) so that is an alternative --- ### The Ecosystem - MicroFramework * Lumen (https://lumen.laravel.com/) * A microframework, great for api's. Very similar to full Laravel, minus the Blade system, and slightly different way to handle routing, but for additional speed. -- * Alternative is Slim (https://www.slimframework.com/) * Or Silex (http://silex.sensiolabs.org/) --- ### The Ecosystem - Paid Services * Forge (https://forge.laravel.com/) * PHP Server deployment on DigitalOcean, Linode & AWS. * Not limited to Laravel projects * Envoyer (https://envoyer.io/) * Zero Downtime Deployments * Not limited to Laravel projects * Spark (https://spark.laravel.com/) * SaaS bootstrap --- ### The Ecosystem - Testing * Dusk - Coming Laravel 5.4 (https://github.com/laravel/dusk) * Browser automation testing with JS --- layout: false name: last-page template: inverse ## Andrew Huggins ### @andy_huggins ### andrewhuggins@gmail.com Slides: https://ahuggins.github.io/laravel-ecosystem-presentation/ .footnote[ Slideshow created using http://github.com/gnab/remark ]