『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の基本を理解しよう
- Laravelの特徴
- テンプレートエンジン(Blade)
- データベース(O/Rマッパー:Eloquent)
- 対話型コンソール(artisan tinker)
- ユーザー認証 など - 参考になるWebページ
- ### 公式・総論
- Laravel - The PHP Framework For Web Artisans
https://laravel.com/ - Laravel - ウェブ職人のためのPHPフレームワーク
http://laravel.jp/ - Laravel ドキュメント
https://readouble.com/laravel/
- Laravel - The PHP Framework For Web Artisans
- ### チュートリアル
- Laravel入門: 初心者でも10分でWebサービスを作れる!
PHPフレームワークLaravelとPaizaCloudの使い方 - paiza開発日誌
https://paiza.hatenablog.com/entry/2018/02/16/paizacloud_laravel - Laravel学習帳 - はじめてのLaravel入門サイト -
http://laraweb.net/ - Laravel5でシンプルなCRUDアプリを開発する - アシアルブログ
http://blog.asial.co.jp/1360
- Laravel入門: 初心者でも10分でWebサービスを作れる!
- ### 評価
- Laravelのここがすごい - Qiita
https://qiita.com/nunulk/items/78d70ac809948b470bbc - Laravelの開発で感じたメリットとデメリットをまとめてみた
ぐるなびをちょっと良くするエンジニアブログ
http://developers.gnavi.co.jp/entry/laravel-2 - Laravelでウェブアプリケーションをつくるときのベストプラクティスを探る - Qiita
https://qiita.com/nunulk/items/b1e2da51b5dabab92da0
- Laravelのここがすごい - Qiita
- ### 公式・総論
#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行掲示板のルーティング
ルート | メソッド | 関数 | 表示するページ |
---|---|---|---|
/articles | GET | index() | 一覧画面 |
/article/<id> | GET | show() | 詳細画面 |
/article/new | GET | new() | 新規フォーム |
/article | POST | create() | 新規作成 |
/article/edit/<id> | GET | edit() | 編集フォーム |
/article/update/<id> | POST | update() | 更新 |
/article/<id> | DELETE | delete() | 削除 |
- データベース構成
- データベース : 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');
- Route::get('/articles', 'ArticleController@index')->name('article.list');
#07:コントローラとビューを作成しよう
- コントローラからデータを渡す
/bbs/app/Http/Controllers/ArticleController.phpを編集 - ビューでデータを表示する
/bbs/resources/views/index.blade.phpを作成
※ ここで(というか前回から)、こちらの環境では、動作なかった。
ちなみに、paizaからダウンロードしたファイルだと問題なく動作した。
ちなみに、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サーバーを立ち上げられるしな。
でも、かなり難しい😟
学習ステータス
見習いアーチャーから駆け出しアーチャーに進化した。
※コメント投稿者のブログIDはブログ作成者のみに通知されます