仕事でZend Framework + Smartyが必要になってくるので、環境を整えてみました。
その際の手順をメモ。
僕の端末にはXAMPPが入っているため、PHPの動作環境は一通り揃っていました。
ダウンロードしたファイルを解凍して好きな場所に配置
php.iniのinclude_pathパラメータに以下のようにパスを追記(僕の環境の場合PEARのパスが既に入っているので、後ろに追記しました。)
include_path = ".;C:xamppphpPEAR;C:[配置したディレクトリ]ZendFramework-1.10.4library"
次にApache側の環境設定
httpd.conf内のmod_rewriteモジュールを有効にする。(XAMPP入れたときにデフォルトで有効でした。)
LoadModule rewrite_module modules/mod_rewrite.so
さらに、ドキュメントフォルダ内の.htaccessの設定を有効にする。(こちらもXAMPP入れたときにデフォルトで有効でした。)
#
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks Includes ExecCGI
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All
    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all
.htaccessの設定
RewriteEngine on
   RewriteBase /zendtest
   RewriteRule !.(js|ico|gif|jpg|png|css)$ index.php
RewriteBaseは各々の環境に合わせてください。
ちなみに、RewriteRuleの記述の意味は「js、ico、gif、jpg、png、css」以外の名前のパスを全て、index.phpに飛ばすと言うことです。
index.phpをフロントコントローラにする為に記述しています。
ここで、動作確認の為に新しいプロジェクトを作って、Zendのバージョン情報を確認しようとしたところ、
自分がダウンロードしたバージョンと違うバージョンが出力されるという問題が発生しました。
【実行コード】
<?php
require_once 'Zend/Version.php';
echo 'バージョン情報 : ' . Zend_Version::VERSION;
調べたところ、PEARの中にもデフォルトでZendが入っており、include_pathの順番的に先に読み込まれているようでした。
なので、PEAR内のZendディレクトリを一先ず退避させました。
さて、ここまででZend Frameworkの設定が完了です。
次はSmarty
Zend Framework上でSmartyを使用するために下記のサイトに書かれていることを行いました。
SmartyとZend Framework
これでようやく環境が整いました。
最後が投げやりですって? ・・・すみません。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。