#初めての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ファイルを作成し、echo
でhello 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
##Laravel artisanコマンド
ArtisanとはLaravel専用のコマンドです。
アーティザン(アルティザン)と読み、『職人』という意味。Artisanコマンドを実行するとLaravelのコントローラやモデルの作成、マイグレーションの実行などが行えます。
(マイグレーションとは)
データベースに変更を加える開発者が多い場合、チームの人はローカルでそのクエリ実行しなければなりません。開発者たちが更新事項を忘れることもあり得ます。
そういう場合にマイグレーションを使うと、全ての変更はファイルとして保存されます。なので、開発者がその更新を反映させるためには、コードの変更をフェッチしてphp artisan migrateを実行するだけで済むのです。こうすることで開発者全員が常に同じデータベースを使って作業することができます。
プロジェクト作成後、
php以下のコマンドでビルトインサーバーで動作を確認する事ができる
php artisan serve
##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に相当します)
##ルーティングの設定
どの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
モデルとして全要素を取り出し、content
viewテンプレートに、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の環境構築、サンプルアプリ作成、ローカル環境で動作確認ができます!
面白い!!
では良いエンジニアライフを!!