Zend Framework

Windows Zend Framework

Windows10(64bit)環境へZend Framework1.x(1.12.17)をインストールしてみる

2016/05/31

今更ですが Zend Framework 1系統の環境が必要になったので、インストールしてみました。未来への遺産ということで、そのインストール手順を備忘録としてポストします。

Zend Frameworkダウンロード

まずはダウンロード。
下記ページより行います。

20160122_zf_01

↑ 1系統、2系統を選べます。
今回は現段階の1系統最新版である、バージョン 1.12.17 を選択。

20160122_zf_02

↑ ダウンロードするには(会員)登録を行えとのことなので、面倒ですが登録してみます。「Register Now」ボタンをクリック。

20160122_zf_03

下記項目を入力。メールアドレス以外は適当に入力しても大丈夫そうです。

  • First Name:名
  • Last Name :姓
  • Company:会社名
    I'm not associated witha a company:無職です(会社には )就職していません
  • Phone:電話番号
    090-1234-5678 の場合、国番号(日本:+81)、最初の0を省いた90からあとの番号となり、最終的には「+81-90-1234-5678」のように記述します。
  • Country:国名
  • What is your role?:あなたの役割は何ですか?→選択肢を見ると、開発者やら生徒とあるので、役職とか、立場のようです。

20160122_zf_05

↑ 任意のバージョンを選択、ダウンロードします。

20160122_zf_08

↑ zipファイルでダウンロードした ZendFramework-1.12.17

Zend Framework1.x のインストール方法

今回は現段階の1系統最新版である、バージョン 1.12.17 を設置します。
サーバ環境は以下のとおり。

  • OS : Windows10(64bit)
  • Apache : 2.4
  • PHP : 5.6.xx

ちなみに、この環境で古いバージョンの ZendFramework 1.7 も動作したことを備忘録として明記しておきます。

Apache2.4

バーチャルホスト作成

apache24/conf/extra/httpd-vhosts.conf

[default]

ServerAdmin toogie@hoge.com
DocumentRoot "I:/website_data/SAMPLESITE.COM/sample-site.com/public_html"
ServerName sample-site.localhost
ServerAlias sample-site.localhost
ErrorLog "| bin/rotatelogs.exe I:/website_data/SAMPLESITE.COM/sample-site.com/logs/firsttest.lh-error_%Y%m.log 86400"
CustomLog "| bin/rotatelogs.exe I:/website_data/SAMPLESITE.COM/sample-site.com/logs/firsttest.lh-access_%Y%m.log 86400" combined

AllowOverride All
Require all granted


[/default]

必ず、AllowOverride All で .haccess を使用出来るようにしてください。
詳細は過去記事を参照。

mod_rewriteを有効に

mod_rewriteを有効にする必要があるので、Apache24/conf/httpd.conf の、下記モジュールのコメントアウトを外してください。

[default]
LoadModule rewrite_module modules/mod_rewrite.so
[/default]

詳しくは、過去記事を参照

Zend Framework展開、ディレクトリ構成の例

例として

  • indexコントローラー、indexアクション
  • Messageコントローラー、helloアクション

を設置する例とします。

ルートディレクトリ(sample-site.com)下に、以下のように展開します。

[default]
[sample-site.com] ←ルートディレクトリ

├[application] ←(非公開ディレクトリ)
│ ├[controllers]
│ │ ├IndexController.php
│ │ └MessageController.php
│ ├[models]
│ └9,349 views
│ └[scripts]
│ ├[index]
│ │ └index.phtml
│ └[message]
│ └hello.phtml

├[public_html] ←ドキュメントルート(公開ディレクトリ)
│ ├.htaccess
│ └index.php

├[ZendFramework-1.12.17] ←ZF本体(非公開ディレクトリ)

└[logs] ←ログ(非公開ディレクトリ)
[/default]

※規約であるファイル/ディレクトリの大文字、小文字に気をつけてください

ルートディレクトリ

ルートディレクトリ以下、ドキュメントルートと同列の"非公開エリア"に展開した ZendFramework を配置。
同列に、MVCのコントローラーやビューファイルを設置する application ディレクトリを作成。
モデルはディレクトリだけで、ファイルが無いのがよくわかりませんがw

ドキュメントルート

.htaccessと、index.php を設置。
この index.php を特に「フロントコントローラー」と呼ぶようです。

.htaccess

[default]
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
[/default]

index.php

[php]
SetControllerDirectory('../application/controllers');

// コントローラ実行
$response = $front->dispatch();

// デバッグ関数
function pr($val) {
echo '<pre>';
print_r($val);
echo '</pre>';
}
[/php]

若干、クセのある書き方ですが、概ね上記のような形になると思います。

デバッグ関数は CakePHP でお馴染みのデバッグ関数 pr(); を使いたいがために記述しているだけです。

application(IndexController 関係)

まずは IndexController 関係から。

controllres, models, views という、複数形でそれそれ、コントローラー、モデル、ビュー用のディレクトリを作成。

controllersディレクトリ下に、今回用の IndexController.php を作成。

IndexController.php

[php]
view->setEncoding("utf-8");
$this->view->message = 'Hello world'; // ビュースクリプト側変数へ代入
}
}
[/php]

viewsディレクトリ下に scripts ディレクトリを作成、scripts下に、コントローラーと対比するように indexディレクトリを作成し、その中にアクションと同名の index.phtml を作成します。

index.phtml

[php]

インデックス


';
echo $this->escape($this->message);
?>


[/php]

http://sample-site.localhost/ にアクセス

20160122_zf_06

↑ 成功すると、上記のようになると思います。
バージョンもきちんと表示されています。

application(MessageController 関係)

同様に、MessageController関係を作成します。

MessageController.php

[php]
view->setEncoding("utf-8");
$this->view->message = 'Hello world2'; // ビュースクリプト側変数へ代入
}
}
[/php]

hello.phtml

[php]

ハロー!


escape($this->message);?>


[/php]

http://sample-site.localhost/message/hello/ にアクセス。

20160122_zf_07

↑ 成功すると、上記のようになると思います。
「Hello world2」と、メッセージも変わっています。

ひとまずはここまで。

-Windows, Zend Framework
-, , , , ,