第13回 次世代のSmarty - Smarty3の紹介 - Smarty講座

PHP 中級 講座

yossy先生のSmarty講座

Lecutures on PHP

第13回 次世代のSmarty - Smarty3の紹介 (その3)

 このエントリーをはてなブックマークに追加

Smarty3の取得方法、ファイル構成

yossy先生
では実際にSmarty3を使ってみましょう。

Smarty3はSubversionでリポジトリが公開されており、誰でも取得することが可能です。
http://smarty-php.googlecode.com/svn/branches/Smarty3Alpha/ からチェックアウトができます。

svn checkout http://smarty-php.googlecode.com/svn/branches/Smarty3Alpha/

Subversionの使い方やインストール方法は各自調べてくださいね。

チェックアウトすると、以下のようなディレクトリ構成でファイルが取得されます。

|-- development                 開発用
|   |-- PHPunit                 PhpUnit(http://sourceforge.net/projects/phpunit/)用テストケース
|   |-- Smarty3Doc              phpDocumentor(http://www.phpdoc.org/)で生成したドキュメント
|   |-- TestScripts             テストコード
|   `-- lexer                   構文解析、字句解析クラス生成用
|
`-- distribution                配布用
    |-- README
    |-- change_log.txt
    |-- demo                    Smarty3のサンプルコード
    |   |-- cache
    |   |-- configs
    |   |-- templates
    |   `-- templates_c
    `-- libs
        |-- Smarty.class.php    Smartyクラス
        |-- debug.tpl           デバッギングコンソール用テンプレートファイル
        |-- plugins             プラグイン
        `-- sysplugins          組み込み関数やSmartyメソッドのクラス

サンプルコードが distribution/demo にあるので、アクセスできるようWebサーバーを設定してください。このディレクトリにindex.phpがあるのでアクセスしてみてください。

呼び出されるテンプレートはtemplatesの下にあるindex_view.phpです。PHPコードのテンプレートですね。<?= ?>形式のタグで記述されているので、short_open_tagが有効になるようphp.iniや.htaccessなどで設定してくださいね。
(index.php内でini_set()を使って書き換えようとしてますが、short_open_tagはPHPから設定し直しできないので注意してください)

前のページで説明した新しい文法も試してみたりして、是非色々新しいSmartyを体感してみてください。


yossy先生いかがでしたでしょうか? Smarty3はまだ開発途上のα版で、これから仕様ががらっと変わる可能性もあります。
逆に、Smartyで直してほしいと思ったところや仕様に組み入れてほしいことなどの要望なども、まだまだ通るかもしれません。

英語なので少し敷居は高いですが、開発フォーラムへ積極的に参加してみるのもオープンソースの醍醐味だと思いますので、是非いろいろな意見を出し合って次世代のSmartyを作り上げていきましょう。

  • yossy先生

本名:吉武 正史

パッケージ系ソフトウェア会社で、自然言語処理系の研究やWebアプリケーション、検索連動型広告などの開発に従事。 2006年末にフリーランスとして独立し、現在はPHPによるWeb開発の業務を中心に、コンサルティングや執筆活動などを展開。
サイトURL:http://freeative.jp/

ご意見・感想フォーム

今回の「yossy先生のSmarty講座」への評価・ご意見があればご記入下さい。

評価:
ご意見・感想:

  



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)