当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

PHP Laravel framework入門(3) – テンプレートエンジンを理解する。

PHP Laravel framework入門(3) – テンプレートエンジンを理解する。


Laravelのテンプレートエンジンは標準でBladeというエンジンを使用しています。このテンプレートエンジンは比較的よくあるテンプレートエンジンの記法に近いのですんなり覚える事ができると思います。bladeもまたよくあるテンプレートエンジン同様にマスターレイアウトがあって、その上にパーツ&ブロック単位のテンプレートがある仕組みになっています。ヘッダとフッタはよくある共通部分ですから簡単振り分けて構築できそうです。

◯ resources/views/layout/master.blade.php

ちょっと見た感じでは他のテンプレートよりも見たことがないインクルードする幾つもの記法があることがわかりますね。マスターレイアウトはアウトラインを作るものです。

  • @yield  @yieldは継承ができませんが変数のデフォルト値が使えます。
  • @section  @sectionは最も使い勝手が良い変数等を継承できるのが特徴です。尚、記法に親テンプレと小テンプレでブロックの終わり方が異なるので注意しましょう。親の方では終了が@showで終わります。小テンプレは@stopや@endsectionを使用します。
  • @include @includeは最もシンプルなものでベーシックな変数の渡しのみ可能でその他はできません。

それでは次にHTMLのBODY部分を形成するテンプレートを見てみましょう。

◯ resources/views/page.blade.php

タグ: , , ,

PHP Laravel framework入門(2) – 簡単なプログラムを作る


本章では最初に簡単なhello worldを表示するプログラムを作成し基本的なLaravelの使い方を学んできます。まず最初にLaravelの環境構築で欠かせないコマンドartisanコマンドの機能のコレクションを確認してみましょう。

artisanコマンド

artisanがサポートするコマンド機能の一覧を確認してみましょう。artisanコマンドは機能が豊富で特に便利なのは他のフレームワークでも出てくるscaffoldな機能です。つまりコントローラやモデル、ビューをある程度雛形で用意してくれる機能を持っています。ゼロから作業するとMVCの関係性をもたせてプログラムを編んでゆく必要があり骨の折れる仕事ですがこの機能を使うと自動生成で雛形を生成するため作業が楽になります。また必要とするデータベースの定義をするとモデルやDB操作を簡単にするORMの機能、DB&テーブルを自動生成してくれます。

helloを出力するコントローラを作成する

コントローラはサイトの基本プログラムロジックを処理するバックグランドの要のエースとも言えるプログラムです。どのプログラムも考え始めるスタートをルーティングとコントローラを合わせるところから始めると理解しやすくなります。

この処理を実施したことでコントローラの雛形が作られています。 プロジェクト直下のappフォルダーの配下には既にhello用コントローラのboilerplate(雛形)が存在します。 正確には「app/Http/Controllers/Hello.php」と言う設置パスでファイルが生成されているので確認してみましょう。

無事にhelloのクラスができましたね。雛形なので中身の処理はありませんが器はできたことが確認できました。次にルーティングを考えます。結局大本の呼び出しはルータの記述から行われそこにしてしているコントローラが呼び出されます。次の処理はいきなりコントローラを呼び出すのではなくルーターから直接ブラウザへ出力を渡します。表示確認を取ってみましょう。

◯ routes/web.php

◯ サーバの起動

ブラウザから http://xxx.xxx.xxx.xxx:7500/hello と入力しアクセスしてみましょう。

問題なければブラウザ画面に「Hello World!」と表示されたはずです。今度は直接ブラウザへ返却するのではなく、先程作ったコントローラを経由して返却してみましょう。先程の記述はコメントアウトにします。代わりにhelloコントローラのクラス名とクラスで定義されている処理をさせるターゲット関数を記述します。「クラス名@関数名」のような表現で記述を行います。尚、反転箇所は記述の追加の部分です。

◯ routes/web.php

◯ app/Http/cintrollers/Hello.php

再度サーバを起動してhttp://xxx.xxx.xxx.xxx:7500/hello へアクセスすると「hello world from controller : )」が表示されましたか?表示されたら成功です。

コントローラからViewを通じて表示させる。

◯ app/Http/Controllers/hello.php

◯ routes/web.php

◯ resources/views/hello.blade.php

以上の作業が終わったらブラウザから「http://xxx.xxx.xxx.xxx:7500/hello/[あなたの名前]」でアクセスして見てください。画面上に大きな文字であなたの名前で表示されるはずです。

タグ: , , ,

PHP Laravel framework入門(1) – 準備編


LaravelはいまやSymfonyと人気を2分するPHPのフレームワーク。といってもSymfonyと全く異なるものではない。Symfonyの派生フレームワークと位置づけられている。良質なライブラリーで使いやすいのが人気。恐らく学習するコストが従来のフレームワークより少ない点が良いのだと思う。

それでは最初に準備に取り掛かろう。laravelを使用するにはPHPが必要だ。PHPはOSにバンドルされている最新のものを使うと良いだろう。LaravelはPHP7にも対応している。また様々なOSプラットフォームに対応しているがやはり定番のLinuxに導入し使うのが最も良いパフォーマンスを発揮するのは間違いない。

インストール前の準備

Laravelを導入する前には必要最低限の導入が事前に必要です。現在の最新バージョンは5.4になっており一番気をつける部分はPHPのバージョンです。

【PHP関連のコンディション】

  • PHP >= 5.6.4
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension

次に重要な事はcomposerモジュールが導入されていることです。入っていない場合は下記に従ってインストールを行いましょう。

ダウンロードしたセットアップファイルが問題ないか確認します。

一気にインストールを行います。

laravelのインストール

Composerはモジュールインストールのツールとしてphp関連のインストールでよく使われるツールです。laravelではプロジェクトの雛形やモジュールのインストール更新にはComposerを標準で使用しています。下記のコマンドを実行することでlaravelがインストールされます。

laravelのインストール

laravelの開発環境を用意するにはやり方が2種類あります。デフォルトの標準的なシステムの雛形をインストールする方法とある程度利用指向に合わせた雛形のインストールです。この開発環境の雛形を作ることをプロジェクトを作るといいます。下記は結果的に同じ処理を行っていますが2つ目の方法ではすでにある別のプロジェクトの雛形を使用して導入することもできます.

その1

その2

ローカルWEBサーバの起動

laravelの場合も最近のフレームワーク同様デフォルトでローカルWEBサーバを起動して開発中のものをモニターできます。例えばブラウザのアクセスならhttp://xxx.xxx.xxx.xxx:8000/でアクセスすると表示することができます。ホストの部分はデフォルトでローカルホストを指しています。そのため他の端末からモニターするにはホスト指定が必要です。

ホストとポート番号の変更については下記のように指定ができます。下記2つは最初の起動はサーバのIPアドレスを指定してリッスンするケース。2つ目はインターネット上のどのアドレスから来たものでも受け付ける起動です。

各フォルダーの役割について

【public】Public Directory

このフォルダーがlaravalのドキュメントルートフォルダーになります。Apacheサーバやnjinx等使用する場合にはここを起点(ROOTフォルダー)とするように設定を行います。

【config】Configuration Files

各種フレームワークの根幹の設定を行うファイル群が集まっているフォルダー

【app】Applicatipn program

プログラムロジックが集まっているフォルダーでコントローラや各種イベント処理、例外処理、ミドルウェア等のファイルが設置されるフォルダー

【bootstrap】

このフォルダーは、フレームワークの初期起動やオートローディングの設定を行うファイルを含んでいます。

【database】

このフォルダーは、データベースのマイグレーションとDBの初期データ(シーディング)を配置します。モデルの作成等を行うとDBの雛形が生成されます。

【resources】

このフォルダーは、ビューやアセットの元ファイル(LESS、SASS、CoffeeScript)、「言語」ファイルを配置します。

【storage】

コンパイルされたBladeテンプレート、ファイルベースのセッション、ファイルキャッシュなど、フレームワークにより生成されるファイルが保存されます。

【vendor】

Composer依存パッケージが配置されます。

【routes】

ユーザがアクセスした際に、指しているURLに対してサーバ側ではルータに記述されたパスと連動してコントローラやView,モデルが起動します

【tests】

自動テストを配置します。

タグ: , , ,