気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM等について、学んだことや備忘録をアウトプットとして残し、情報を必要としている誰かにとって「かゆいところに手が届く」ブログとなることを願いながら記事を書いています。

【Laravel5.5】超人気PHPフレームワークLaravelに入門してきました!-part1

スポンサーリンク

今日は小規模もくもく会に参加しLaravelに入門しました。

Laravelを学ぶきっかけ

先日、ITプロラボもくもく会(Web系)#2(https://itpropartners.connpass.com/event/76807/)に、友人とユーキャンくんと一緒に参加したのですが、LaravelやVueをやってる人の話を聞いて、楽しそうだと感じたためです。

開発環境構築が始まったと思ったら終わっていた、何を言っているかわからないと思うが、何をされたのかわからなかった

Laravelを学びたいということをユーキャン君に伝えたところ、数日も経たないうちに

vagrant環境を構築してくれました。

仕事早すぎる・・・! ありがたくこの環境を利用させてもらうことにしました。

github.com

  • vagrant: 2.02
  • 仮想環境
    • CentOS7
    • MySQL5.7
    • Composer1.6.3

入門内容

入門するにあたって、下記のガイドをやってみると良いよとオススメされたので、

中級者向けという言葉にビビりながら、試してみることにしました。

中級者向けタスクリスト 5.1 Laravel

学習内容や備忘録

インストールについて

ディレクトリ構成のイメージ
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:利用の開始 5.5 Laravel

Eloquent ORMはLaravelに含まれている、美しくシンプルなアクティブレコードによるデーター操作の実装です。

select文やinsert文を発行する代わりに、Eloquent ORMが便利な操作方法を提供してくるような感じ。 (DjangoのQuerySet APIみたいなもの?)

感想:Laravel入門について

認証機能が2つのコマンドを実行するだけで作成できたり、 tinkerによる対話的シェルによるコードの実行、 artisan (CLI?)が充実しており、楽しく勉強できたように思います。

フレームワークの経験としては、数年前に趣味で DjangoでWebアプリを書いたことがあるくらいなのですが、 考え方として流用できた部分もあり、とっかかりやすい感じがしました。

感想:勉強会全体

ステッカーもらったり、「ニードルフェルトでねこあつめ」で作った可愛い写真を見せてもらったり、 色々と楽しい時間を過ごすことができました。

www.rinsymbol.net