ホーム > 技術系 > Laravel

Laravelのアーカイブ

Laravel勉強メモ

PHPのフレームワークの「Laravel」の勉強メモです。

Laravelとは

PHPのフレームワーク。
日本でも人気が上がってきているが、海外で特に人気がある。
モダンな要素が取り入れられている?

フレームワークを勉強するに渡って有名な「Cake PHP」も良いと思ったのですが、最近人気があるというLaravelについて学習してみることにしました。

Laravelを使用するにあたって

PHPの5.4以上が必要で、「mcrypt」のライブラリをインストール必要がある。

インストールするために「Composer」が必要になる。
ComposerとはPHPのライブラリの依存関係を管理するためのもの。
通常はライブラリはPHP全体に影響するため依存関係の管理が大変だが、コンポーザーの場合プロジェクトごとにライブラリを管理するため依存関係について対処しやすい。

Laravelのインストールと初期設定

インストール時してプロジェクトを作成する。
プロジェクト名のフォルダができ、その中にLaravelの必要なファイル一式がダウンロードされる。

最初にやること

プロジェクトで必要となるデータベースとデータベースユーザを作成する。
データベースが必要ない場合は必要なし。

データベースを作った場合はプロジェクト内のコンフィグファイル内にデータベースへの接続情報を追記する。

「.env 」が環境ファイルなので開いてデータベース情報を追記する。

artisan(アルチザン)のマイグレーションコマンドを使って、テーブルを作成する。
アルチザンというのは、Laravelに予め準備されたシェルスクリプトのようなもので、コマンドラインで様々な処理を実行することができる。

php artisan make:migration マイグレーション名 –create=テーブル名

上記のコマンドを実行することで、/database/migrations/ 内にマイグレーション用のPHPファイルが作成される。

作成されたマイグレーションファイルを開いて、テーブルのカラム名などを追記する。
デフォルトでは主キーと、タイムスタンプのカラムが設定されている。

php artisan migrate

コマンドで、マイグレーションが実行され、上記マイグレーションフォルダ内に入ったマイグレーションPHPファイルが実行される。

一般的な方法であれば、phpmyadminからテーブルを作成したり管理するが、Laravelではマイグレーションコマンドと設定ファイルでテーブル構造を管理できるかんじといったところ。

しかし、見た感じややこしい。
こんなマイグレーションを使ってコマンドラインでどうこうするより、phpmyadminを使って管理するほうが簡単な気がしてならない。
このあたりはLaravel使う恩恵は微妙といったところかな…。
いろいろやってると「php artisan migrate」実行時によく分からないエラーが

Base table or view not found:

なんだこれ

php artisan migrate:refresh

これで全部解決しました。すべてのマイグレーションを再実行するかんじかな。

php artisan migrate:rollback

上記はロールバック用のコマンドで、最後に行ったマイグレーションをロールバックする

php artisan migrate:reset

すべてのマイグレーションをロールバックする
まあいずれにしてもややこしい。phpmyadminがシンプルでいいです・・・。

モデルの作成

php artisan make:model モデル名
これでモデルを作成

これで app ディレクトリ以下に、作成したモデル名のPHPファイルができている。

tinkerコマンドでモデルのオブジェクトを作成して、コマンド形式を使ってテーブルに値を挿入できる。

php artisan tinker

このあたりの命名規則やらなんやらで完全に混乱状態・・・。

ルーティング

このあたりからようやく面白くなってきた。

ルーティングとは、指定したURLに対してどういった動作をするかをphpファイルの中に書き込んでいくこと。

設定方法はLaravelのバージョンによって異なってくる。
自分の環境はlaravelのバージョンが5.3系なので、サイトのルーティングは

/routes/web.php

に行う。
ここに指定したURLに対しての処理を書き込んでいくと、URLにアクセスしたときに指定した処理を行う。
テンプレートを読み込ます場合は、viewファイルを読み込む。

ここで、URLにIDなどの動的なパラメータ(変数)を渡すこともできるのだが、テスト環境(Mac、Appache)では動作しなかった。
確認してみると、 /private/etc/apache2/httpd.conf の AllowOverride All にすべて変更すると
動作するようになった。(.htaccessはLaraberl上にあるので、サーバの設定が許可する設定になっていないといけない)

view

viewというのは要はテンプレートファイルのこと。

/resources/views/

以下に追加していく。

このテンプレートファイルにhtmlやphpのロジック部分を基本は記述していき、ルーティングファイルから読み込むという流れ。

共通部分のviewファイルは別に作成しておき、個別ページごとのテンプレートファイルから読み込んで変数や動的な部分を埋め込んでいくイメージにしていくと効率が良い。

コントローラー

コントローラーは、サイトの処理を担当する部分。
viewでHTMLのテンプレートを担当し、コントローラーでは処理を担当する。

artisan make:controller コントローラー名

でコントローラーを作成することで、 app/Http/Controllers

以下にファイルが生成されるので、編集することで処理を追加できる。

laravel5.3系の場合、web.phpで、ルーティングでURLで指定した処理で呼び出すコントローラを指定する。

viewとコントローラーを切り分けることで、デザイン(デザイナ担当)の部分と処理の部分(プログラマ担当)を切り分けることができる。

ホーム > 技術系 > Laravel

フィード

ページの上部に戻る