不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『Laravel入門編1: Laravelの基本を理解しよう (全9回)』を受講してみた

2021-02-19 22:29:17 | paiza

『Laravel入門編1: Laravelの基本を理解しよう (全9回)』


どうやらLaravelというPHPのWebフレームワークをインストールする必要があるらしい。
それには、前回の講座(Webアプリ開発入門 PHP-Web編)のEloquentと同様に、Composerを使うみたいだが、
インストールの仕方がちょっと違うようだ。

以下のサイトを参考にインストールしてみた。

Linuxの場合には、いくつかの始め方が示されているが、
このうち、「Composerでのインストール」の「Laravelインストーラ」
を試してみた。

まずは、Laravelインストーラのインストール。

composer global require laravel/installer

前回のEloquentの場合、globalオプションなしで、
プロジェクトフォルダごとに、インストールしていたけど、
Laravelの場合は、グローバルなComposerのパッケージとしてインストールするのがいいのかもしれない。

ただ、この場合、Composerのシステム全体のvendor/binディレクトリを$PATHに配置する必要がある。
Ubuntuの場合は、$HOME/.config/composer/vendor/binにあるようだから、
カレントのターミナルで一時的にPATHを通すだけなら、以下のコマンドを実行する。

export PATH="$PATH:$HOME/.config/composer/vendor/bin"

ただ、それだとターミナルを起動する度に、上記のコマンドを入力するのが面倒だから、
上記のコマンドを.bashrcに書いておくとターミナル起動時に自動的にパスが設定される。

その後、以下のコマンドを実行して、Laravel Installerのバージョンが表示されれば、ちゃんとインストールとパスの設定ができていることが確認できる。

laravel -V

メモ

#01:Laravelの基本を理解しよう

#02:アプリケーションを用意しよう

  • Laravelを使う準備として、アプリケーション用ディレクトリを用意する。このディレクトリを用意するだけで、Webサーバーを起動して、動作を確認できる。
  • アプリケーション用ディレクトリを自動生成する
    $ laravel new bbs
  • ディレクトリ作成を高速化するには
    • "laravel new"コマンドの実行前に以下のような設定をしておけば、コマンドの実行時間を短くできる。

      $ composer config -g repositories.packagist composer 'https://packagist.jp'
      $ composer global require hirak/prestissimo
※ とりあえず自分の環境だとそんなに時間は掛からないから、これは試していない。動画では5分かかる場合もあるって言ってたけど。通信速度が十分速ければ問題ないのかな?
  • Webサーバーを起動
    $ cd bbs
    $ php artisan serve
  • Artisanとは
    ターミナルで「artisan」(アーティサン)コマンドを使ってLaravelの機能を呼び出すことができる。LaravelでWebアプリケーションを開発するときに役に立つ、数多くのコマンドを提供している。

#03:Laravel で HelloWorld

全然、演習課題のジャッジが進まないから、日を改めて再チャレンジ!😠 
これ、問題も問題で、タイトルを表示って表現が紛らわしいな😡 
この表現だと、ページのタイトルかと勘違いしちゃうよな!😤 

#04:1行掲示板を作ろう

  • 1行掲示板のルーティング
ルートメソッド関数表示するページ
/articlesGETindex()一覧画面
/article/<id>GETshow()詳細画面
/article/newGETnew()新規フォーム
/articlePOSTcreate()新規作成
/article/edit/<id>GETedit()編集フォーム
/article/update/<id>POSTupdate()更新
/article/<id>DELETEdelete()削除
  • データベース構成
    - データベース : mybbs
    - テーブル : articles
    - カラム : id, content, created_at, updated_at
  • 上記のデータベースにアクセスするため.envファイルを修正する
    DB_DATABASE=mybbs
    DB_USERNAME=root
    DB_PASSWORD=****

#05:モデルとコントローラを用意する

  • Laravelから1行掲示板のデータベースを操作するモデルを用意する。
    モデルを使うと、PHPのオブジェクトとして、データベースのレコードを操作できるようになる。
  • モデルとマイグレーション、コントローラを作成
    $ php artisan make:model Article -m -c -r
    • 動画では、appフォルダにArticle.phpファイルができているが、
      こちらの環境では、app/Models/Article.phpとなっている。
  • contentカラムを追加
    database/migrations/20xx_xx_xx_xxxxxxxx_create_articles_table.phpを編集
  • マイグレーション実行
    $ php artisan migrate

#06:ルーティングを定義しよう

  • 1行掲示板のルーティング(一覧画面、詳細画面)
    bbs/routes/web.php
    • Route::get('/articles', 'ArticleController@index')->name('article.list');
      Route::get('/article/{id}', 'ArticleController@show')->name('article.show');

#07:コントローラとビューを作成しよう

  • コントローラからデータを渡す
    /bbs/app/Http/Controllers/ArticleController.phpを編集
  • ビューでデータを表示する
    /bbs/resources/views/index.blade.phpを作成
※ ここで(というか前回から)、こちらの環境では、動作なかった。
ちなみに、paizaからダウンロードしたファイルだと問題なく動作した。
PHPやLaravelのバージョンが違うようだから、その影響なのかな?😖 
→ 以下のサイトを参考に、App/Providers/RouteServiceProvider.php の$namespace のコメントアウトを外すことで動くようになった。
#08:記事一覧を作成しよう
  • コントローラで、記事一覧を取得する
    /bbs/app/Http/Controllers/ArticleController.phpの修正
  • ビューで記事一覧を表示する
    /bbs/resources/views/index.blade.phpの修正

#09:詳細画面を作ろう

  • コントローラのshowメソッドで、特定の記事を取り出す
    /bbs/app/Http/Controllers/ArticleController.phpの修正
  • showビューで、指定の記事を表示する
    /bbs/resources/views/show.blade.phpの修正
  • 記事一覧から個別の記事にリンクする
    /bbs/resources/views/index.blade.phpの修正

※ ここもうまく動作せず、「安全な接続ができませんでした」というエラーメッセージが表示された。

個別記事のリンクに飛んだときにhttpsが使われるようだが、これの影響か?
これはpaizaからダウンロードしたコードと自分で1から作成したコードのどちらも同様であった。

認定証

Laravel確かに便利だな!😊 
Apacheを使わずに直でWebサーバーを立ち上げられるしな。
でも、かなり難しい😟 


学習ステータス

見習いアーチャーから駆け出しアーチャーに進化した。



最新の画像もっと見る

コメントを投稿