BLOG ENTRY

XAMPPにSmartyをインストールして、HelloWorldを出力させるまで(PHP)

Smarty


windowsのXAMPPにPHPのテンプレートエンジンのSmartyをインストールして、HelloWorldを出力させるまでを行います。


php.iniにインクルードパスを書く方法と書かない方法の2パターンを紹介します。xamppフォルダはCドライブ直下に設置(インストール)されているものとします。(c\:xamppね。)


※Smartyクラスはインクルードパスさえ合っていれば呼び出せるようなので、特にこの通りにしないと動かないというものではなくあくまで一例ですのであしからず。




1、C:\xampp\apache\bin\php.iniにインクルードパスを書かない方法(C:\xampp\htdocs以下にインストールする方法)


1、smartyをダウンロード&解凍します。


2、c\:xampp\htdocs以下に適当な名前でフォルダを新規作成します。
※ここではsampleにしました。

c\:xampp\htdocs\sample


3、解凍フォルダの中からlibsフォルダだけをc\:xampp\htdocs\sample以下にコピーします。


4、c\:xampp\htdocs\sample\以下に、以下の2フォルダを新規作成します。

templates
templates_c


5、c\:xampp\htdocs\sample\templates以下にindex.tplという名前でファイルを新規作成して、エディタで以下を記述します。

<html>
<head>
<title>smartyのテスト</title>
</head>
<body>
ようこそ、{$name}さん<br />
HelloWorld!
</body>


6、c\:xampp\htdocs\sample
以下にindex.phpという名前でファイルを新規作成して、以下を記述します。


<?php
require_once "Smarty.class.php";

$smarty = new Smarty;
$smarty->assign('name', '桃太郎');
$smarty->;display('index.tpl');

ブラウザでhttp://localhost/sample/
にアクセスして、

ようこそ、桃太郎さん
HelloWorld!

が表示されればOKです。



2、C:\xampp\apache\bin\php.iniにインクルードパスを書く方法(C:\xampp\php以下にインストールする方法)


1、smartyをダウンロード&解凍します。
フォルダ名をSmartyに変更します。


2、c\:xampp\php以下にincludesフォルダを新規作成します。


3、解凍フォルダの中からlibsフォルダだけをC:\xampp\php\includes以下にコピーします。


4、smartyのパスをapacheフォルダのphp.iniに追記します。

C:\xampp\apache\bin\php.ini
をエディタで開き、447行目付近のデフォルトの状態では

include_path = “.;
もしくは
include_path = “.;C:\xampp\php\pear\”

となっているところを

include_path = ".;C:\xampp\php\pear\;C:\xampp\php\includes\libs\"

に変更して、apacheを再起動します。
※Smartyフォルダをコピーするディレクトリ位置によって、パスの記載は変わります。



これでPHPソース内で

<?php
require_once('Smarty.class.php');

と記載すればSmarty.class.phpをインクルードできます。

5、c\:xampp\php\Smarty以下に、以下の2フォルダを新規作成します。

templates
templates_c


6、C:\xampp\php\Smarty\templates
以下にindex.tplという名前でファイルを新規作成して、以下を記述します。

<html>
<head>
<title>smartyのテスト</title>
</head>
<body>
ようこそ、{$name}さん<br />
HelloWorld!
</body>
</html>


7、c\:xampp\htdocs以下にsample.phpという名前でファイルを新規作成して、エディタで以下を記述します。

<?php
require_once "Smarty.class.php";

$smarty = new Smarty;
$smarty->assign('name', '桃太郎');
$smarty->display('index.tpl');

ブラウザでhttp://localhost/sample.php
にアクセスして、

ようこそ、桃太郎さん
HelloWorld!

が表示されればOKです。


もし
templatesフォルダ、
templates_cフォルダ
が存在しません、というPHPエラーが出る場合は

Smarty.class.php内の80行目付近の

var $template_dir    =  'templates';
var $compile_dir     =  'templates_c';

をそれぞれ

var $template_dir    =  '/xampp/php/Smarty/templates/';
var $compile_dir     =  '/xampp/php/Smarty/templates_c/';

に変更すれば大丈夫だと思います。(templatesフォルダ、templates_cフォルダの絶対パスか相対パス)

関連記事

  1. apache2.2.15をCentOSにソースからインストール[Linux]
  2. [PHP][PEAR]Services_Twitterを使ってタイムラインを取得
  3. 埋め込みフォントを単体の一括管理クラスで行う[as3]
  4. $_SERVER['PATH_INFO']でやる擬似rewrite[PHP]
  5. AS3で画像を読み込み表示と埋め込み表示させる違い[AS3]
  • name:ajiji
  • date:2008/04/02
  • 情報どうもです。
    まさにピンポイントな環境なので助かりました。

    ※URLはダミーです^^;

  • type:コメント [ ]

  • name:admin
  • date:2008/04/02
  • 役立ったみたいでよかったす。

    はじめのHelloWorldさえ出せれば後は使っていけばなんとかなりますもんね。

  • type:コメント [ ]

  • name:Jhalak
  • date:2009/07/02
  • 情報ありがとうございます。
    2.インクルードを書く方法で実行して見ましたが、以下のエラーがでます。

    Warning: Smarty error: unable to read resource: “index.tpl” in C:\xampp\php\includes\libs\Smarty.class.php on line 1095

    いくつか情報を見たんですが、quallnetの情報が正解の近いと思ってます。時間があれば、よろしくお願いいたします。

  • type:コメント [ ]

  • name:admin
  • date:2009/07/02
  • すみません。。

    smartyは開発でもあまり使ってなくて、インストールしてそれっきりなんです;;

    あまり参考にならないと思いますけど、index.tplがない、というエラー内容のような気がします。

    index.tplが間違いなく置いてあるなら、php.iniのincludeパスの書式が間違っているのかもしれません。。

    あまり参考にならずに申し訳ありません。よろしくお願いいたします。

  • type:コメント [ ]

  • name:jhalak
  • date:2009/07/03
  • ありがとうございます。
    Smarty.class.php on line 1095 の
    @parm String $typeあたりの問題は何でしょうか。。。

  • type:コメント [ ]

  • name:Jhalak
  • date:2009/07/05
  • もう一つ聞きたいですが、apache friendsのページにもquallnetのページでもパスはapache\binのphp.iniを編集せてから…と書いてありますがC:\xampp\apache\binにはphp.iniがありません。

    C:\xampp\php\にあるphp.ini-distをphp.iniとリネームしてapache\binにコピーするんでしょうか。何度もですけれども、お願いいたします。

  • type:コメント [ ]

  • name:admin
  • date:2009/07/05
  • 今確認してみたんですけど、
    (Cドライブにxamppをインストールしてる場合なら)C:\xampp\apache\binにphp.iniがあります。。

    windowsのエクスプローラーを開いて、
    上段メニューの
    ツール>フォルダオプション>表示で
    ・「すべてのファイルとフォルダ」にチェック
    ・「登録されている拡張子は表示しない」のチェックをはずす
    になってますよね?

    それであれば、php.iniが表示されると思うのですが。。。

  • type:コメント [ ]

  • name:Jhalak
  • date:2009/07/08
  • 相談ありがとうございます。

    どうしてもapachi\bin\にはphp.iniが見つかってないです。SmartyをやめてほかのTemplate Engineをつかいます。

  • type:コメント [ ]

  • name:jhalak
  • date:2009/07/19
  • c:xampp\php\pearにSmartyをインストールして、require_once(”Smarty/libs/Smarty.class.php”);だけでphp.iniをいじらずにSmartyの利用できました。
    ご相談ありがとうございます。

  • type:コメント [ ]

  • name:yamablo » Blog Archive » XAMPP for LinuxにSmartyをインストールする。
  • date:2009/08/10
  • [...] XAMPPにSmartyをインストールして、HelloWorldを出力させるまで(PHP) | Web&MUSICブログ QUALL [...]

  • type:ピンバック [ ]

    WRITE COMMENT


    (required)


    (required)


    (required)

    MENU