SUPってなに?
SUPってなに?
2010.05.13

Zend Framework + Smarty

鳥よし

仕事でZend Framework + Smartyが必要になってくるので、環境を整えてみました。
その際の手順をメモ。

僕の端末にはXAMPPが入っているため、PHPの動作環境は一通り揃っていました。

まずはZend Frameworkをダウンロード

ダウンロードしたファイルを解凍して好きな場所に配置
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 &#039;Zend/Version.php&#039;;
echo &#039;バージョン情報 : &#039; . Zend_Version::VERSION;

調べたところ、PEARの中にもデフォルトでZendが入っており、include_pathの順番的に先に読み込まれているようでした。
なので、PEAR内のZendディレクトリを一先ず退避させました。

さて、ここまででZend Frameworkの設定が完了です。

次はSmarty

Zend Framework上でSmartyを使用するために下記のサイトに書かれていることを行いました。
SmartyとZend Framework

これでようやく環境が整いました。

最後が投げやりですって? ・・・すみません。