addictionwhite’s diary

考え中のことを整理と忘備録のために綴ります。ここに書かれている考えは翌日には変わる可能性があります

Lravel5.3 忘備録1

ちょっと前から海外で流行っていると聞き、ようやく最近身近でも名前をよく聞くようになったPHPフレームワークLaravelを勉強することになったので忘備録。

バージョンは5.3。この記事を書いてる時点で最新。

 

とりあえずWin環境で簡単に動きを見たかったのでXammp導入

(本当は仮想環境でやりたいけれど、また今度)。

Xammpを入れたあと、XammpのPHPを環境パスに設定

(このときのPHPのバージョンPHP 7.0.8)。

Laravel5,3を使うにはPHP5.6.4以上が要求されるとのこと。

 

Compserを導入

Composer

(Win用にもインストーラが用意されているので簡単に導入できる)

 

htdocs配下にディレクトリ作成(今回は適当にlaravelStudyとした)。

そこから以下のコマンドを叩く。

composer create-project laravel/laravel:5.3 C:\xampp\htdocs\laravelStudy
( 公式ドキュメントでは --prefer-dist が付随しているがプロジェクトのcompser.json内に指定されているので不要らしい)

これでlaravelStudyディレクトリ配下にフレームワーク一式が生成される。

以下のURLでLaravelの画面が開けば成功。

http://localhost/laravelStudy/public

 

qiita.com

 

localhostだけで表示されるよう修正

C:\Windows\System32\drivers\etc\hosts

127.0.0.1 laravelStudy

 

C:\xampp\apache\conf\extra\httpd-vhosts.conf

<VirtualHost *:80>
DocumentRoot C:\xampp\htdocs\laravelStudy\public
ServerName laravelStudy
</VirtualHost>

<Directory "C:\xampp\htdocs\laravelStudy\public">
order deny,allow
allow from ALL
</Directory>

 

次にDBに接続(今回はMySQL)

ルートディレクトリ直下にある.envファイルを修正

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=

*ローカルで最低限の挙動見るための設定

この.envファイルはバージョン管理から外しておくこと

(プロジェクト生成された際に用意される.gitignoreでデフォルトで管理外にされている)。

 

とりあえず適当な登録更新画面を作りたい(MVC一通り触りたい)と考える。

ドキュメントをみてわかりづらいと思ったら、現時点では5,3にはチュートリアル的なものはないらしい。

ので5,2のチュートリアルを試す。

基本のタスクリスト 5.2 Laravel

 

nabeen.hatenablog.jp

 

 

5.1の情報がある程度見つかる中、最初に躓くのはroutes.phpの配置場所が異なっていることだと思う。

laravel.com

これでLaravelのRouting(ルーティング)は完璧だ! | Reffect Blog -

引用

これまでは、\app\Http\routes.phpファイルにルーティングを記述していましたが、Laravel 5.3からはディレクトリ構造が変わって、 \routesディレクトリの中にルーティングのファイルが格納されています。

3つのファイルがありますが、主に\routes\web.phpにルーティング情報を記述していきます。

 

とりあえずweb.phpにルーティング情報を記載する形でチュートリアルを進めると、

最後までいけた。動くこと優先で確認したのでもう少しコードを振り返りたいと思う。

また、上記のチュートリアルだとすべてコントローラとしての振る舞いをweb.phpに書かれてしまっているので、コントローラに分ける方法を調べたい。

 

用語メモ

artisan(アルチザン)…Laravelアプリケーションを操作するコマンドラインツール

クエリビルダー…メソッドチェーンを使ってSQLを組み立てる。

Bladeテンプレート…PHP公文のラッパー。テンプレートエンジン。

マイグレーション…直接DDLを描くのでなく、PHPのソースとしてテーブル作成、変更を管理する仕組み。

 

備考

XammpのPHPでないPHPのパスが通っていて、Composerのコマンド実行時にOpenSSLのモジュールがないとエラーが出た。

こういうモジュールがあらかた揃っているのでXammpは楽。