Zend Frameworkを使って、Hello World!を表示するWebアプリケーションを作成してみます。
ディレクトリ構成
ディレクトリ構成は、だいたい次のようにしています。
BASEDIR/
html/
.htaccess
index.php
lib
ZendFramework
ZendFramework-1.0.1/
webapp/
modules/
default/
controllers/
views/
scripts/
BASEDIRは、ドキュメントルートの一個上のディレクトリです。
htmlは、ドキュメントルートです。
lib/ZendFrameworkは、lib/ZendFramework-1.0.1へのシンボリックリンクにしています。
Zend Frameworkインストール
Zend Frameworkは、Zend Frameworkからダウンロードできます。
2007/08/25現在、1.0.1が最新安定版でした。
$ cd BASEDIR/lib
$ tar xvzf ZendFramework-1.0.1.tar.gz
$ ln -s ZendFramework-1.0.1 ZendFramework
ZendFramework-1.0.0の場合、解凍したユーザー以外読み込みできない状態となりましたので、次のように読み込み権限を追加しました。
$ find ZendFramework-1.0.0/ -type d -print0 | xargs -0 -t chmod 755
$ find ZendFramework-1.0.0/ -type f -print0 | xargs -0 -t chmod 644
あとは、php.ini.htaccess等で、BASEDIR/lib/ZendFramework/libraryをインクルードパスに含めます。
(絶対パスで、Zend FrameworkのPHPファイルをインクルードしてもよいです。)
サンプルでは、ソースコード内からインクルードパスを設定しています。
サンプル
Hello Worldを表示するサンプルコードのリストです。
.htaccessも含めて、7ファイルです。
BASEDIR/html/index.php
PHP:
-
<?php
-
$lib_dirpath = $base_dir . '/lib';
-
$include_path . ':' . $lib_dirpath . '/ZendFramework/library' .
-
':' . $lib_dirpath . '/smarty');
-
-
$webapp_dirpath = $base_dir . '/webapp01';
-
require_once $webapp_dirpath . '/bootstrap.php';
-
-
bootstrap($webapp_dirpath);
BASEDIR/webapp01/bootstrap.php
PHP:
-
function bootstrap($webapp_dir)
-
{
-
require 'Zend/Controller/Front.php';
-
$front = Zend_Controller_Front::getInstance();
-
-
$modules_dir = $webapp_dir . '/modules';
-
-
'default' => $modules_dir . '/default/controllers',
-
);
-
$front->setControllerDirectory($ctrl_dirs);
-
-
try {
-
$front->dispatch();
-
}
-
catch (Exception $exception) {
-
v($exception);
-
}
-
}
BASEDIR/webapp01/modules/default/controllers/IndexController.php
PHP:
-
<?php
-
class IndexController extends Zend_Controller_Action
-
{
-
public function indexAction()
-
{
-
$this->view->testMsg = "テストメッセージです。";
-
}
-
}
BASEDIR/webapp01/modules/default/controllers/ErrorController.php
PHP:
-
<?php
-
class ErrorController extends Zend_Controller_Action
-
{
-
public function errorAction()
-
{
-
}
-
}
BASEDIR/webapp01/modules/default/views/scripts/index/index.phtml
HTML:
BASEDIR/webapp01/modules/default/views/scripts/error/error.phtml
HTML:
その他、ドキュメントルートに.htaccessを置きます。
サンプルの.htacessは次のような内容にしています。
php_flag display_errors "On"
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
php_flag session.use_trans_sid off
php_flag session.use_only_cookies on
php_flag session.use_cookies "On"
php_value default_charset UTF-8
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_flag mbstring.encoding_translation OFF
php_value mbstring.http_input auto
php_value mbstring.http_output pass
php_value memory_limit 64M
サンプルダウンロード
ダウンロードページにアーカイブしたファイルを置きました。
ZendFrameworkを使ってみる。
仕事でPHPを使うかも知れないので、せっかくなのでZendFrameworkをはじめました。
こちらやこちらあたりを参考にサンプルを動かしてみました。
DB周りのサンプルもさくっと動かしました。
…
Zend Frameworkに・・・触れ損ねた
z_developerのみではさまざまなPHPの機能を使えないので、Zend F