Edited at

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


初めてのPHP(Laravel)

普段はモバイルアプリの開発をしています😊

興味からPHP(Laravel)を触り、簡単なアプリケーションを作成した際にやったこと、調べたことをまとめました。

この記事ではアプリケーション作成は行いませんが、

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


今回Laravelを学習する際にUdemyを利用しました!

【2日でできる】はじめての PHP 7 x Laravel 5.5 入門

【学べること】


  • 最新のPHP(バージョン7)を実行する環境をローカル(OS XまたはWindows)に作成できるようになる

  • PHPの動作の仕組みを理解し、かんたんなPHPスクリプトが書けるようになる。

  • Webアプリフレームワーク(Laravel)を使って、書籍管理システムを作成し、オリジナルのWebサービスを作れるようになる

  • データベースインスタンスを作成し、テーブルを作成できるようになる

わかりやすくてオススメの講座ですのでぜひ!!



コンポーザーて何?

まず、コンポーザーのインストールからはじめました。

コンポーザーとは、必要なライブラリをいい感じにダウンロードしてくれるものです!


例えば以下の状況を考えてみましょう

便利そうなライブラリ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の環境構築、サンプルアプリ作成、ローカル環境で動作確認ができます!

面白い!!

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