define でのルートディレクトリの定義について・・・。パスが納得できません。
宜しくお願いします。
Smarty を使用して PHPを勉強しています。
Smartyのデフォルトを変更しようと、
「MySmarty」として新規にクラスを作成しました。
ソースの先頭で、
define("ROOT_DIR",$_SERVER['DOCUMENT_ROOT']."/..");
として、ROOT_DIRにルートディレクトリまでのパスを記憶させています。
全ソースは下記をごらんくらさい。
そこで、
define("ROOT_DIR",$_SERVER['DOCUMENT_ROOT']."/..");
にある、最後の ."/.."); が納得いきません。。。
最初の . ピリオドは連結のためのものだとわかりますが、
あとの/.. はディレクトリの階層をあげる指示ですよね?
てなると、クラスの定義のなかで使用するルートディレクトリへのパス
が、
おかしく思えてきます。書籍の通りにやっているので、
この通りにやるとうまくいっていますが、自分的になっとくがいかなく・・。
ソースは下記のようになってます。
特に $this->template_dir のテンプレートディレクトリへのパスを
再設定しているところですが、
ROOT_DIR."/templates"
ということは、ルート/../templates となりますよね?
作業フォルダの図はこの通りです。↓
C:\xampp
|
libs
|-MySmarty.class.php (下記のソースファイル)
|
|
templates
|-input.tpl
|
templates_c
<省略>
なんとなくですが、ルート/../templates ではなくて、
ルート/templates なようなきがします。
わかりにくい説明だったかもしてませんが、何卒宜しくお願いいたします。
______________________________
define("ROOT_DIR",$_SERVER['DOCUMENT_ROOT']."/..");
require_once("Smarty.class.php");
class MySmarty extends Smarty {
function MySmarty (){
$this->template_dir = ROOT_DIR."/templates";
$this->compile_dir = ROOT_DIR."/templates_c";
$this->left_delimiter = "{{";
$this->right_delimiter = "}}";
$this->default_modifiers = array('escape');
$this->Smarty();
}
}
____________________________
お礼
ベースネームですね。ルートと勘違いされてしまいそうな気がしますが、x-1919 さんが示してくれました「最後の要素」と含めて周りと相談してみます。 ありがとうございます。