LoginSignup
287
320

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-06-11

初めての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の環境構築、サンプルアプリ作成、ローカル環境で動作確認ができます!

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

287
320
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
287
320