PHPフレームワークLaravelの導入

日本では、今FuelPHPが大人気ですが、アメリカでは、FuelPHPよりもLaravelというPHPフレームワークが人気みたいです。早速Laravelを導入してその使い心地を試してみたいと思います。

1. 以下の公式サイトへ行き、右上の『DOWNLOAD』ボタンをクリックしてダウンロードします。

http://laravel.com

2. ダウンロードしたZipファイルを解凍したら、フォルダ名をlaravelに変更して、c:/xammp/htdocs/内に保存します。

3. 以下はDreamweaverでの設定方法を説明いたします。Dreamweaverのメニューバーからサイト⇛新規サイトとクリックして、サイト設定のダイアログを開きます。

4. ①サイト名をLaravel(任意)、②ローカルサイトフォルダーをC:/xampp/htdocs/laravelと入力したら、左のメニューから③サーバーをクリックします。

5. 新規サーバーの追加アイコン(+のアイコン)をクリックして、①サーバー名をLaravel(任意)、使用する接続をローカル/ネットワーク、サーバーフォルダをC:/xampp/htdocs/laravel/、Web URLをhttp://localhost/laravel/pubic/に変更して②保存をクリックします。サイト設定の画面に戻ったら、③テストにもチェックを入れ、④保存をクリックします。

6. 下記のように保存されました。

7. ブラウザからhttp://localhost/laravel/public/と入力してみます。下記のように表示されたらとりあえずインストールOKです。

フォルダ構成

8. それでは、Laravelのフォルダ構成を見てみましょう。ルートフォルダに5つのフォルダがあります。それぞれ見てみましょう。

  • application
    ユーザープログラムを保存するフォルダがここだと思われます。 このフォルダの中にconfig、controllers、languag、libraries、migrations、models、tasks、tests、viewsフォルダとbundles.php、routes.php、start.phpファイルがあります。
  • bundles
    ここには、Laravelのモジュールを保存するようになっているのだと思われます。アプリケーションに対するリクエストをバンドルに処理させるように設定することが出来るみたいです。bundlesフォルダの中には、docsフォルダ、その中にlibrariesフォルダとviewsフォルダがあります。
  • laravel
    この中にLaravelのコアクラスが格納されていると思われます。
  • public
    ここが公開フォルダだと思われます。 この中にbundles、css、img、js、laravelフォルダがあります。
  • strage
    ストレージとは、コンピュータ内でデータやプログラムを記憶する装置のことですので、ここにログやその他の情報を保存しているのだと思われますが、詳細な使い方は後日調べてみます。このフォルダの中にcache、database、logs、sessions、views、workフォルダがあります。

基本的な設定

9. それではいつもの『Hello Word!』を表示したいと思ったのですが、その前に基本的な設定を行っておきましょう。application.phpを開き下記の修正を加えます。

laravel/application/config/application.php

  • 42行目の’index’ => ‘index.php’,をindex’=>”;に修正します。
  • 56行目の’key’ => ‘YourSecretKeyGoesHere!’,を32文字程度のランダムな文字に修正します。
    例:”key’ => ‘ikjuol985kmjiloqlim!$9lilm4kolm’,
  • 72行目のfalseをtrueに修正します。’profiler’ => true,
  • 96行目の’en’を’ja’に修正します。 ‘language’ => ‘ja’,
  • 140行目のタイムゾーンを修正します。’timezone’ => ‘Asia/Tokyo’,

routes.phpでプログラムを動かす

10. Laravelで私が面白いと思ったのは、controllerが無くてもプログラムが動くところです。それでは、controllerを使わずに『Hello World!』を表示してみましょう。routes.phpに下記のコードを追加します。

laravel/application/routes.php

Route::get('/',function(){
 echo 'Hello World!';
 });

11. ブラウザを開いてみます。先程まで、Laravelのトップページが表示されていたアドレスに『Hello World!』が表示されました。とても面白いですね。

http://localhost/laravel/public

コントローラでHello World!

12. 次は、コントローラを使って『Hello World!』を表示してみましょう。controllersフォルダにhello.phpを作成して、下記のように記述します。

laravel/application/controllers/hello.php

<?php
class Hello_Controller extends Base_Controller{
 public function action_index(){
 echo "Hello World!";
 }
}

13. Laravelのコントローラは基本的にBase_Controllerを継承して作成します。それでは試しに、ブラウザでアドレスを打ち込んでみます。

http://localhost/laravel/public/hello

14. 404エラーが表示されました。これは何故でしょう。先程のroutes.phpで『Hello World!』が表示されたのと関係があります。つまり、Laravelではroutes.phpでコントローラのルーティングを登録する必要があるのです。それでは、routes.phpに下記のコードを追加します。

laravel/application/routes.php

Route::controller(array('hello'));

15. これで、Hello World!が表示されるようになります。

http://localhost/laravel/public/hello

アプリケーションの全てのコントローラを登録する

16. このようにLaravelは使用するコントローラごとにルーティングを登録する必要があります。これはセキュリティリスクを減らすための仕様だと思いますが、毎回毎回コントローラを登録するのが面倒な人には、一度に全てのコントローラを登録する方法も用意されています。下記のコードを記述すれば、アプリケーション中のControllersフォルダに含まれている全てのコントローラを一度に登録できます。只、出来ればコントローラごとにルーティングを登録した方がいいと思いますが。

laravel/application/routes.php

 Route::controller(Controller::detect());

ビューファイルを表示する

17.  次にビューファイルを表示してみましょう。下記のようなビューファイルを作成します。

laravel/application/views/home/index.php

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>index.php</title>
</head>
<body>
<h1>ビューファイル</h1>
これはviews/home/index.phpファイルを表示しています。
</body>
</html>

18.  それでは、ルートファイルでビューを表示してみましょう。routes.phpに下記のコードを追加します。

laravel/application/routes.php

Route::get('/', function(){
return View::make('home.index');
});

19. ブラウザで表示してみます。

20. 最後にコントローラからビューファイルを表示してみます。home.phpを作成して、下記のコードを記述します。

laravel/application/controllers/home.php

<?php
class Home_Controller extends Base_Controller {
public function action_index()
{
 return View::make('home.index');
 }

21. routes.phpにhomeコントローラのルーティングを登録します。

laravel/application/routes.php

Route::controller(array('hello','home'));

22.  これで、http://localhost/laravel/public/homeと入力すると、上記と同じページが表示されます。

今日初めてLaravelを触ったばかりですが、とても面白いPHPフレームワークだと思います。尚、Laravelはコレ1serverの管理人である川瀬氏が英語の公式サイトを日本語に翻訳して公開しています。ありがちな直訳では無く、きちんと意訳していますので、かなり分かり易いです。Laravelに興味のある方は下記のサイトを是非覗いてみて下さい。

Web職人のためのフレームワーク

又、川瀬氏による電子書籍も発売されています。内容は上記のサイトと同じですが、料金はかなり安く設定されていますので、興味のある方は是非購入して下さい。私も早速購入しました。

Laravel 3公式ドキュメント日本語版

次回は、『Laravelのルーティング』について調べてみたいと思います。

本日は以上です。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

トラックバック&コメント

この投稿のトラックバックURL:

トラックバック

コメント

  1. HiroKws より:

    ご紹介頂いてありがとうございます。ドキュメントを翻訳している川瀬です。
    Laravelは面白いですよね。
    残念ながら、日本では盛り上がりに欠けるところがありますので、こうしたグラフィカルなチュートリアル記事は、多くのユーザーを呼び寄せる機動力になってくれることを願っています。
    WinRoad徒然草さんは以前から参考にさせていただいておりますが、これからも楽しみに読ませて頂きます。

    川瀬

    • nakada より:

      川瀬 様
      コメントありがとうございます。
      アメリカでは、FuelPHPよりもLaravelがはやっているという情報だけでは、Laravelを調べてみる気にはならなかったと思います。
      やはり川瀬様の日本語ドキュメントがかなり読みやすかったのが、Laravelを調べてみようと思ったきっかけです。
      私は英語があまり得意ではないので、FuelPHPの勉強にはかなり苦戦しました。
      ところが今回の、Laravelは川瀬様の日本語ドキュメントのおかげで、今のところほとんど躓かなくて済んでいます。
      これからも川瀬様のご活躍を期待しております。
      WinRoad徒然草管理人 中田

  2. こんにちは。 より:

    42行目の’index’ => ‘index.php’,をindex’=>”;に修正します。

    この部分に違和感があるのですが正確でしょうか?

    • nakada より:

      コメントありがとうございます。

      この設定は、Laravel日本語公式ドキュメントのWeb職人のためのフレームワークのインストールと準備の中にあるクリーンURLという項目に記述されています。これは、URLの中にindex.phpという表記がされないようにするための設定です。


コメントをどうぞ

このページの先頭へ