今日は小規模もくもく会に参加しLaravelに入門しました。
- Laravelを学ぶきっかけ
- 開発環境構築が始まったと思ったら終わっていた、何を言っているかわからないと思うが、何をされたのかわからなかった
- 入門内容
- 学習内容や備忘録
- 感想:Laravel入門について
- 感想:勉強会全体
Laravelを学ぶきっかけ
先日、ITプロラボもくもく会(Web系)#2(https://itpropartners.connpass.com/event/76807/)に、友人とユーキャンくんと一緒に参加したのですが、LaravelやVueをやってる人の話を聞いて、楽しそうだと感じたためです。
開発環境構築が始まったと思ったら終わっていた、何を言っているかわからないと思うが、何をされたのかわからなかった
Laravelを学びたいということをユーキャン君に伝えたところ、数日も経たないうちに
vagrant環境を構築してくれました。
仕事早すぎる・・・! ありがたくこの環境を利用させてもらうことにしました。
- vagrant: 2.02
- 仮想環境
- CentOS7
- MySQL5.7
- Composer1.6.3
入門内容
入門するにあたって、下記のガイドをやってみると良いよとオススメされたので、
中級者向けという言葉にビビりながら、試してみることにしました。
学習内容や備忘録
インストールについて
- https://github.com/ucan-lab/vagrant-laravel55の手順に従う
- any_dir/vagrant-laravel55で作業
- その1つ上に今回作成するアプリのプロジェクト名のディレクトリを作成する
- quickstartにした
ディレクトリ構成のイメージ any_dir | |`vagrant-laravel55 | |`quickstart
- ホスト環境でquickstartディレクトリを作成
- vagrant-laravel55環境(以下ゲスト環境)
- Vagrantfileの共有フォルダ設定に以下を追加
# vagrant-laravel55/Vagrantfileの11行目付近のコメントアウトを解除し、project_name部分を変更 config.vm.synced_folder '../quickstart', '/home/vagrant/quickstart'
- vagrant reloadで再起動
- vagrant ssh
- /home/vagrant/quickstartにフォルダが作成される
- composerでlaravelプロジェクトの作成(ここでは空のディレクトリを指定する必要があるとのこと)
$ composer create-project laravel/laravel quickstart
データベース設定
- .envファイルのmysqlに関係する部分をゲスト環境の情報にあわせる
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=quickstart DB_USERNAME=vagrant DB_PASSWORD=MySQL5.7
- MySQLデータベースの作成
- マイグレーションファイルを作成
$ php artisan make:migration create_tasks_table --create=tasks # タスクテーブルを作成するためのマイグレーション情報が記載されたファイルが作成される # app/migrations:yyyy_mm_dd_hhmiss_create_tasks_table.php
ユーキャンくんが、artisanの読み方について、「アルチザン」だよ、「アーチさん」じゃないよって教えてくれた
ガイドに従って、nameやuser_id等の項目をyyyy_mm_dd_hhmiss_create_tasks_table.phpに追加
- 認証関連画面の作成
$ php artisan make:auth
- マイグレーション実行
$ php artisan migrate
画面確認
- 開発サーバーを起動し、ホストから接続確認
$ php artisan serve --host 0.0.0.0
- 右上にLoginやRegisterが表示され、Registerからユーザの登録ができるか確認する
モデル作成
php artisan make:model ModelName # 今回はTaskを指定
作成したモデルを検証
$ php artisan tinker # phpソースコードが入力可能になる
// エイリアスを作成し、Taskという記述だけでクラスにアクセスできるようにする use \App\Task // \App\Taskでも記述可能 $task = new Task() $task->name = "ブログを書く"; $task->user_id = 1; $task->save(); // ここでDBにタスク情報がINSERTされる $task->find(1) // タスク情報が取得される
ここのfindやsaveは、Eloquent ORMによるもの。
Eloquent ORMはLaravelに含まれている、美しくシンプルなアクティブレコードによるデーター操作の実装です。
select文やinsert文を発行する代わりに、Eloquent ORMが便利な操作方法を提供してくるような感じ。 (DjangoのQuerySet APIみたいなもの?)
感想:Laravel入門について
認証機能が2つのコマンドを実行するだけで作成できたり、 tinkerによる対話的シェルによるコードの実行、 artisan (CLI?)が充実しており、楽しく勉強できたように思います。
フレームワークの経験としては、数年前に趣味で DjangoでWebアプリを書いたことがあるくらいなのですが、 考え方として流用できた部分もあり、とっかかりやすい感じがしました。
感想:勉強会全体
ステッカーもらったり、「ニードルフェルトでねこあつめ」で作った可愛い写真を見せてもらったり、 色々と楽しい時間を過ごすことができました。