Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Intro to Laravel and getting started in the Laravel Ecosystem MidwestPHP 2018

Intro to Laravel and getting started in the Laravel Ecosystem MidwestPHP 2018

Join us for an evening to take a tour around the Laravel PHP Framework. We'll explore the basics of getting started and tour around the Laravel Ecosystem including local development with Homestead, deployment with Envoy, and building your next great application idea. We'll explore the basics of databases, routing, views, and then into the deep end with model relationships, form requests, testing, and more!

Joe Ferguson

March 09, 2018
Tweet

More Decks by Joe Ferguson

Other Decks in Technology

Transcript

  1. Intro to Laravel and
    getting started in the
    Laravel Ecosystem
    Joe Ferguson

    View Slide

  2. Who Am I?
    Joe Ferguson
    PHP Developer
    PHP Architect @ Ministry Brands
    Twitter: @JoePFerguson
    Organizer of @MemphisPHP
    OSMI Board Member
    Certified Laravel Developer
    Drone Racing Pilot

    View Slide

  3. For Further Reading
    laravelupandrunning.com easylaravelbook.com

    View Slide

  4. What exactly is Laravel?

    View Slide

  5. Laravel Ecosystem
    Framework
    Tools
    Learning &
    Community

    View Slide

  6. Quick note on versions
    5.5 LTS bug fixes for 2 years, security fixes for 3 years
    Non LTS: bug fixes for 6 months, security fixes for 1 year

    View Slide

  7. 5.5 is the current LTS

    View Slide

  8. Which version should you use?
    https://www.reddit.com/r/laravel/comments/5v5mo8/
    laravel_55_will_be_the_next_lts_release/ddzwwf9/

    View Slide

  9. LaravelShift.com

    View Slide

  10. Getting Laravel
    composer global require “laravel/installer”

    View Slide

  11. Installing Laravel
    laravel new quickstart-basic-5.5

    View Slide

  12. Install via Composer
    composer create-project --prefer-dist laravel/laravel quickstart-5.5

    View Slide

  13. Local Dev Environment

    View Slide

  14. What’s in Homestead
    •Ubuntu 16.04
    •PHP 5.6
    •PHP 7.0
    •PHP 7.1
    •PHP 7.2
    •Nginx
    •MySQL
    •MariaDB
    •Sqlite3
    •Postgres
    •MailHog
    •Composer
    •NodeJS
    •Bower
    •Grunt
    •Gulp
    •Beanstalkd
    •Memcached

    View Slide

  15. Getting Homestead
    git clone https://github.com/laravel/homestead.git Homestead

    View Slide

  16. Getting Homestead
    cd Homestead && bash init.sh

    View Slide

  17. How I use Homestead
    composer require —dev laravel/homestead

    View Slide

  18. Make Homestead
    ./vendor/bin/homested make

    View Slide

  19. Configuring Homestead

    View Slide

  20. Starting Homestead

    View Slide

  21. Inspecting Homestead

    View Slide

  22. Edit /etc/hosts
    Optional for per project Homestead

    View Slide

  23. Inspecting Homestead

    View Slide

  24. Inspecting Homestead

    View Slide

  25. Stopping Homestead

    View Slide

  26. Don’t version control
    Homestead.yaml

    View Slide

  27. Getting Started with Laravel

    View Slide

  28. Project Structure

    View Slide

  29. app Folder

    View Slide

  30. config Folder

    View Slide

  31. database Folder

    View Slide

  32. public Folder

    View Slide

  33. resources Folder

    View Slide

  34. routes Folder

    View Slide

  35. Model Factories
    database/factories/UserFactory.php

    View Slide

  36. User Migration up()
    database/migrations

    View Slide

  37. User Migration down()
    database/migrations

    View Slide

  38. Database Seeders

    View Slide

  39. Artisan Commands

    View Slide

  40. Artisan Commands

    View Slide

  41. Create Migration
    artisan make:migration create_widgets_table

    View Slide

  42. Create Migration

    View Slide

  43. Create Migration

    View Slide

  44. Run Migration(s)
    artisan migrate

    View Slide

  45. Inspect the Database
    Password is “secret”

    View Slide

  46. Inspect the Database

    View Slide

  47. Create a model
    artisan make:model Widget

    View Slide

  48. Widget model

    View Slide

  49. Add Widget ModelFactory

    View Slide

  50. Create a seeder
    artisan make:seeder WidgetSeeder

    View Slide

  51. WidgetSeeder

    View Slide

  52. DatabaseSeeder

    View Slide

  53. Run Database Seeders
    artisan db:seed

    View Slide

  54. Users Table

    View Slide

  55. Widgets Table

    View Slide

  56. Routing
    routes/web.php

    View Slide

  57. Why 4 route files?!

    View Slide

  58. Add /widgets Route

    View Slide

  59. localhost:8000/widgets

    View Slide

  60. Frontend Development

    View Slide

  61. Run: npm install

    View Slide

  62. npm run dev

    View Slide

  63. Compiled Assets

    View Slide

  64. Layouts

    View Slide

  65. Example View

    View Slide

  66. Return a view()
    routes/web.php

    View Slide

  67. Refresh /widgets
    localhost:8000/widgets

    View Slide

  68. Clean up our layout

    View Slide

  69. Widgets Index View

    View Slide

  70. Pass data to a view
    routes/web.php

    View Slide

  71. localhost:8000/widgets

    View Slide

  72. Joe Ferguson
    Twitter: @JoePFerguson
    Email: [email protected]
    Freenode: joepferguson
    Contact Info:
    Feedback!
    https://joind.in/talk/cef75

    View Slide