「Laravel 9実践入門 for Mac」の感想・備忘録1

スポンサーリンク

点数

74点

感想

「読み進めていけばLravel9を使ったサイトを作ることができる」といった感じで、あまり勉強にはならない内容だった。

それでも、短時間でCRUDを実装したいという場合は本書の内容で十分だと思う。

基本

Laravel Sailとは

  • Dockerを操作するためのCLIであり、SailコマンドでDocker環境を構築することができる。
  • composer, artisan, node, npm, phpなどのコマンドもsailコマンドで実行できる。
    ex) sail artisan -V; sail node --version; sail npm intall; sail php --versionなど
  • Laravel Sailを使わないとComposer, MySQL, Node.jsなどを手動でインストールする必要があるので、特に理由がない限りはLaravel Sailを使うべき。

環境構築

  1. curl -s https://laravel.build/backend | bash
  2. cd backend
  3. ./vendor/bin/sail up -dで起動(http://localhostで確認)、./vendor/bin/sail downで停止
  4. alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail' で以降は./vendor/bin/sailではなくsailで実行できる(セッション内のみ有効)
  5. sail artisan migrateでテーブル作成(接続情報は.envにある)

PHPバージョンの指定

docker-compose.ymlのcontext: ./vendor/laravel/sail/runtimes/8.2の部分で指定する。
変更後はsail build --no-cacheでビルドが必要。

phpMyAdminを使う場合

1. docker-compose.ymlのservicesに追加

phpmyadmin:
    image: 'phpmyadmin/phpmyadmin'
    links:
        - mysql:mysql
    ports:
        - 8080:80
    environment:
        PMA_HOST: mysql
        PMA_USER: "${DB_USERNAME}" # 認証をスキップしない場合は不要
        PMA_PASSWORD: "${DB_PASSWORD}" # 認証をスキップしない場合は不要
    networks:
        - sail

2. sail down; sail up -d

3. http://localhost:8080でアクセス

認証機能

LaravelではBreezeというパッケージが提供されている。

  1. sail composer require laravel/breeze --dev
  2. sail artisan breeze:install
  3. sail artisan migrate
  4. sail npm install
  5. sail npm run dev
    /loginや/registerでアクセス可能。

Laravel-AdminLTEの導入

  1. sail composer require jeroennoten/laravel-adminlte
  2. sail artisan adminlte:install
    で本体のインストール
  3. sail artisan adminlte:install --only=auth_views
    で認証系画面のbladeテンプレートのインストール
  4. sail artisan adminlte:status
    で導入状況を確認できる。

サンプルページの作成

  1. route/web.phpに追加
    Route::get('/adminlte', function () {
      return view('adminlte');
    });
  2. touch resources/views/adminlte.blade.php
@extends('adminlte::page')

@section('title', 'サンプルページ')

@section('content_header')
<h1>サンプルページ</h1>
@stop

@section('content')
<p>コンテンツがここに入ります。</p>
@stop

@section('css')
    {{-- ページ毎のCSS
    <link rel="stylesheet" href="/css/xxx.css">
    --}}
@stop

@section('js')
    {{-- ページ毎のjs
    <script>console.log('hoge');</script>
    --}}
@stop

コメント