
windowsのXAMPPにPHPのテンプレートエンジンのSmartyをインストールして、HelloWorldを出力させるまでを行います。
php.iniにインクルードパスを書く方法と書かない方法の2パターンを紹介します。xamppフォルダはCドライブ直下に設置(インストール)されているものとします。(c\:xamppね。)
※Smartyクラスはインクルードパスさえ合っていれば呼び出せるようなので、特にこの通りにしないと動かないというものではなくあくまで一例ですのであしからず。
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/
にアクセスして、
が表示されればOKです。
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 = ".;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
にアクセスして、
が表示されれば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フォルダの絶対パスか相対パス)
情報ありがとうございます。
2.インクルードを書く方法で実行して見ましたが、以下のエラーがでます。
Warning: Smarty error: unable to read resource: “index.tpl” in C:\xampp\php\includes\libs\Smarty.class.php on line 1095
いくつか情報を見たんですが、quallnetの情報が正解の近いと思ってます。時間があれば、よろしくお願いいたします。
type:コメント [ ]
すみません。。
smartyは開発でもあまり使ってなくて、インストールしてそれっきりなんです;;
あまり参考にならないと思いますけど、index.tplがない、というエラー内容のような気がします。
index.tplが間違いなく置いてあるなら、php.iniのincludeパスの書式が間違っているのかもしれません。。
あまり参考にならずに申し訳ありません。よろしくお願いいたします。
type:コメント [ ]
ありがとうございます。
Smarty.class.php on line 1095 の
@parm String $typeあたりの問題は何でしょうか。。。
type:コメント [ ]
もう一つ聞きたいですが、apache friendsのページにもquallnetのページでもパスはapache\binのphp.iniを編集せてから…と書いてありますがC:\xampp\apache\binにはphp.iniがありません。
C:\xampp\php\にあるphp.ini-distをphp.iniとリネームしてapache\binにコピーするんでしょうか。何度もですけれども、お願いいたします。
type:コメント [ ]
今確認してみたんですけど、
(Cドライブにxamppをインストールしてる場合なら)C:\xampp\apache\binにphp.iniがあります。。
windowsのエクスプローラーを開いて、
上段メニューの
ツール>フォルダオプション>表示で
・「すべてのファイルとフォルダ」にチェック
・「登録されている拡張子は表示しない」のチェックをはずす
になってますよね?
それであれば、php.iniが表示されると思うのですが。。。
type:コメント [ ]
相談ありがとうございます。
どうしてもapachi\bin\にはphp.iniが見つかってないです。SmartyをやめてほかのTemplate Engineをつかいます。
type:コメント [ ]
c:xampp\php\pearにSmartyをインストールして、require_once(”Smarty/libs/Smarty.class.php”);だけでphp.iniをいじらずにSmartyの利用できました。
ご相談ありがとうございます。
type:コメント [ ]
[...] XAMPPにSmartyをインストールして、HelloWorldを出力させるまで(PHP) | Web&MUSICブログ QUALL [...]
type:ピンバック [ ]