Zend Frameworkの導入

ZendFramework2のベータ版が出たみたいですが、正式版が出る前にZendFrameworkの事を少し、勉強してみたいと思います。下記サイトよりダウンロードします。

http://framework.zend.com/download/latest

1) 『Zend Framework Full Package』の『Free download』の文字をクリックします。

2) 『Zend Framework 1.11 full』のZipファイルをクリックします。

3) アカウントを持っている人は、EmailとPasswordを入力して、ログインします。アカウントを持っていない人は、新規にアカウントを取得する必要がありますので、右の『register』ボタンをクリックします。

4) 全部必須項目みたいですので、全て入力して、一番下の『register』ボタンをクリックします。

5) 登録が完了したら、My Accountのページへ移動しますので、『Download』アイコンをクリックします。

6) 一番下の方にある『ZendFramework』の『download』ボタンをクリックします。

7) 再度、2)のページに戻りますので、zipファイルをクリックして、ダウンロードします。

8) 解凍した『ZendFramework-1.11.11』フォルダを『ZendFramework』に変更して、Cドライブの直下に保存します(つまり、C:¥ZendFrameworkという形になります)。

9) 次に、『C:¥xampp¥php』フォルダのphp.iniファイルを開きます。

10) 794行目あたりにある『include_path = “.;C:¥xampp¥php¥PEAR”』に『;』記号をつけて、ZendFrameworkフォルダ内の『library』フォルダへのパスを追記します。

11) 修正したらファイルを保存し、Apacheを再起動します。

12) 最後に、『c:¥xampp¥apache¥conf』フォルダのhttpd.confファイルを開き、122行目あたりにある

LoadModule rewrite_module modules/mod_rewrite.so

の先頭に『#』(コメント記号)がついていた場合は、それを削除します。

13) 続いて、ファイルの最後に、下記のコードを追加します。今回は、htdocs内に『Zend』というフォルダを作成し、そこにアプリケーションを作成していくことにしまので、そのフォルダの設定を記述しておきます。

<Directory "C:/xampp/htdocs/Zend">
	Allow from all
</Directory>

14) 記述したら、ファイルを保存して、サーバーを再起動します。再起動後に設定が有効になります。

アプリケーションのファイル構成

15) 『htdocs』フォルダ内に、『Zend』フォルダを作成し、その中に、『application』フォルダを作成します。さらに、『application』フォルダ内に、『controllers』と『models』と『views』の3つのフォルダを作成します。

16) それでは、いつものようにDreamweaverを起動して、サイトの設定をクリックします。サイト名を『Zend』、ローカルサイトフォルダーを『C:¥xampp¥htdocs¥Zend¥』と入力します。

17) 左メニューのサーバーをクリックし、新規追加の『+』ボタンをクリックします。

18) サーバー名を『ZendFramework(任意)』、使用する接続を『ローカル/ネットワーク』、サーバーフォルダーを『C:¥xampp¥hodocs¥Zend』、Web URLを『http://localhost/Zend/』と入力して、保存をクリックします。

19) テストにもチェックを入れ、保存ボタンをクリックします。

20) Zendフォルダ内(つまり、applicationと同じ階層)に、『.htaccess』ファイルを作成し、下記のコードを記述します。これは、各種ファイルへのアクセスがあった場合、すべて『Zend』フォルダ直下の『index.php』にアクセスするようにするための設定です。

RewriteEngine on
RewriteRule !¥.(js|ico|gif|jpg|png|css)$ index.php

index.phpの作成

21) それでは、 『Zend』フォルダの直下、つまり、先程の『.htaccess』ファイルと同じ階層にindex.phpファイルを作成し、下記のコードを入力します。この『index.php』ファイルでZend Frameworkにあるフロントコントローラのクラスを読み込み、フロントコントローラの処理を実行します。つまり、全てのリクエストはこのindex.phpを経由して分岐される形になります。

<?php
require_once('Zend/Controller/Front.php');
Zend_Controller_Front::run('./application/controllers');

22) require_onceでフロントコントローラのクラスが記述されているFront.phpを読み込み、『run』メソッドで、『application』の『controllers』内にあるコントローラを読み込み実行します。

indexコントローラの作成

23) 『application/controllers』フォルダ内に、IndexController.phpファイルを作成し、下記のコードを記述します。

<?php
require_once('Zend/Controller/Action.php');

class IndexController extends Zend_Controller_Action
{
	public function indexAction()
	{
		//ここにアクションの処理を記述
	}
}

ビューファイルの作成

24) 次に、ビューファイルを作成します。『application/views』フォルダ内に、新たに、『scripts』フォルダと、その中に『index』フォルダを作成します。『index』フォルダの中に、『index.pthml』ファイルを作成し、下記のようなコードを作成します(というか普通のhtmlファイルをphtmlファイル名で保存しただけですが)。

25) おきまりの『Hello World』ですが、実際にブラウザで確認してみましょう。『http://localhost/Zend』と入力すると、『Hello World!!』が表示されました。

26) 現状のままでは、ちょっとアドレスを間違えただけで、かなり長々としたエラー表示がでます。

27) ちょっとみっともないので、エラー用のアクションコントローラを作成します。 『application/controllers』フォルダにErrorController.phpファイル名で下記のコードを保存します。

<?php
require_once('Zend/Controller/Action.php');

class ErrorController extends Zend_Controller_Action
{
    public function errorAction()
    {
    	$er=$this->getResponse()->getException();
		$msg="<h4>※エラーが発生しました。</h4>";
		foreach($er as $error)
		{
			$msg.="<div>".$error->getMessage()."</div>";
		}
		$this->view->assign('errors',$msg);
    }
	public function __call($action,$arg)
	{
		$this->render('error');
	}
}

28) 『application/views/scripts』フォルダ内に『error』というフォルダを作成し、そこに『error.phtml』ファイルを作成し、下記のコードを保存します。

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>error</title>
</head>

<body>
<h3>ERROR!!</h3>
<?=$this->errors?>
</body>
</html>

29) それでは、ブラウザに『http://localhost/Zend』の後に、適当にテキストを打ち込んでアクセスしてみます。

これで、エラーの見た目が少しましになりました。

※尚、現状のフォルダ構成では、libraryのZendフォルダとWebRootのZendフォルダを間違えやすいので、WebRootのZendフォルダをzapに変更しました。

 

ZendFrameworkを触ってみてわかったのですが、ZendFrameworkは自由度がかなり高いような気がします。私には向いていそうです。本日は以上です。

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

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

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

コメントをどうぞ

このページの先頭へ