PHP
初心者
laravel
入門

PHP(Laravel)入門者のための要点まとめ

初めてのPHP(Laravel)

普段はモバイルアプリの開発をしています😊
興味からPHP(Laravel)を触り、簡単なアプリケーションを作成した際にやったこと、調べたことをまとめました。

この記事ではアプリケーション作成は行いませんが、
アプリケーションを作成する際の手順に沿って、Larabel入門者なら知っておきたい基本事項をまとめましたので、ご参考ください😎

コンポーザーて何?

まず、コンポーザーのインストールからはじめました。
コンポーザーとは、必要なライブラリをいい感じにダウンロードしてくれるものです!

例えば以下の状況を考えてみましょう
便利そうなライブラリAを使用したいのだが、このライブラリは更に別のライブラリB, Cを必要としている。さらに、ライブラリBはライブラリD, Eを。。。
ライブラリの依存性地獄です。
使用したいのはAなのに、そのために必要なライブラリがボコボコ必要になる
こんなのは日常茶飯事です。
でもcomposerがあればどうでしょう。
ライブラリAが欲しいなぁ、と思ったらその場で
composer require A
と打てば、Aと同時に必要なライブラリ群を参照して一緒にダウンロードしてくれるのです

引用:PHP開発でComposerを使わないなんてありえない!基礎編

インストールはここから
Introduction Composer

Laravelの環境を整える

Laravelを使用するにはPHPの拡張モジュールが必要となるので、それらをインストールします。

参考:【最新】PHPフレームワークLaravelのインストール入門編[5.6/5.5]

ブラウザで動作を確認する

環境ができたら、適当に.phpファイルを作成し、echohello worldと出力してしましょう!

実行したいphpフォルダがあるディレクトリにて以下のコマンドを実行します。

php -S 127.0.0.1:8000

→ ブラウザで127.0.0.1:8000/{.phpのフォルダ名}をたたくと実行されているのが確認できます。

・localhostを起動する方法

php -S localhost:8000

Laravelプロジェクト作成

アプリケーションを作成していくために、プロジェクトを作成しま。

laravelをインストールし、hogeappというプロジェクトを生成する

 composer create-project laravel/laravel hogeapp

いろいろ作られます😳
スクリーンショット 2018-06-09 22.34.49.png

Laravel artisanコマンド

ArtisanとはLaravel専用のコマンドです。
アーティザン(アルティザン)と読み、『職人』という意味。Artisanコマンドを実行するとLaravelのコントローラやモデルの作成、マイグレーションの実行などが行えます。

(マイグレーションとは)
データベースに変更を加える開発者が多い場合、チームの人はローカルでそのクエリ実行しなければなりません。開発者たちが更新事項を忘れることもあり得ます。
そういう場合にマイグレーションを使うと、全ての変更はファイルとして保存されます。なので、開発者がその更新を反映させるためには、コードの変更をフェッチしてphp artisan migrateを実行するだけで済むのです。こうすることで開発者全員が常に同じデータベースを使って作業することができます。

プロジェクト作成後、
php以下のコマンドでビルトインサーバーで動作を確認する事ができる

php artisan serve

初期状態ではこのような画面となる
スクリーンショット 2018-06-09 13.38.36.png

DB設定

マイグレーションファイルの生成(新規テーブル作成)

 php artisan make:migration create_hoges_table --create=hoges

空のDBファイルを生成

touch database.sqlite

マイグレーションファイルを元にDBファイルを作成

php artisan migrate

モデル作成

これで先ほど作成したhogesテーブルと紐づくモデルが作成できます。

php artisan make:model hoge

ORM

モデルを単数系、DBのテーブル名を複数系として定義することで、モデルとテーブルが自動的に紐づいて処理できます。

(ex)
Animalモデル:animalsテーブル
Bookモデル:booksテーブル

LaravelでのViewについて

blade

Laravelのviewではbladeというテンプレートエンジンが使えます。ブレードはクラスのように階層化したテンプレートエンジンです。階層化されているので、たとえばフッターとかの決まりきった部分は基底クラスに定義して、bodyの中だけを書いたbladeを読みこむ、という使い方ができます。
Laravelのbladeってやつをまとめてみた

ここまでのイメージはこんな感じです(routes.phpは現在のlaravelのバージョンではweb.phpに相当します)
スクリーンショット 2018-06-09 17.08.34.png

ルーティングの設定

どのurlが叩かれたときにどんな処理をするか(どのviewを表示するか)を設定していきます。
プロジェクト名/routes/web.phpにて記述

Route::group(['middleware' => ['web']], function(){
  Route::get('/', function(){
    // 処理
  });

  Route::post('/hoge', function(Request $request){
    // 処理
  });

  Route::delete('/hoge/{hoge}', function(Book $book){
    // 処理
  });
});

例えば、以下のようにすると、hogeテーブルからhogeモデルとして全要素を取り出し、contentviewテンプレートに、hogesという名前で値を渡してviewを表示することができます。

Route::group(['middleware' => ['web']], function(){

  Route::get('/', function(){
    $hoges = hoge::all();
    return view('content', [
      'hoges' => $hoge
    ]);

  });

ここまでの手順のようにして、簡単なアプリケーションを作成することができるようになります。

ログイン機能の実装

 artisanコマンドを使用することで容易にログイン機能を実装できます。

ログイン関係のviewを生成。artisanコマンドを使用します、便利!!

php artisan make:auth --views

「ログイン状態の場合〜する」という処理を入れる場合は以下のようにします。

Route::get('/', ['middleware' => 'auth', function(){
    $hoges = hoge::all();
    return view('hoges', [
      'hoges' => $hoges
    ]);
  }]);

このように'middleware' => 'auth'をクロージャーの前に挿入することで、認証チェックを入れることができます。

豆知識

phpにおける ::->に違いについて

アロー(->)演算子を使う場合
インスタンスプロパティとインスタントメソッドにアクセスする

スコープ定義(::)演算子を使う場合
静的プロパティと静的メソッドにアクセスする

おわり

こんな感じの流れで、Laravelの環境構築、サンプルアプリ作成、ローカル環境で動作確認ができます!

面白い!!
では良いエンジニアライフを!!