2011.
12.
11
23:08:38
まぁ好みの問題もあるしなー(--)と思っていたので
今まで書いていなかったのですが、色んなお仕事に携わった結果
やっぱりベストな気がするので書いておこう。
require、includeする時は「dirname(__FILE__) 」つけるべしっ!
require_once dirname(__FILE__) . '/hoge.php';
とかそんな書き方ね。
理由(--)b
まず相対パスでの指定の場合の困ったちゃんな点。
require_once './hoge.php';
とかそんな書き方ね。
これ、階層構造考えるのがめんどくさい(;´A`)
例えば、
■test01.php
<?php
require_once("./bbb/inc/aaa.php");
print "test01.php<br />";
?>
■bbb/test02.php
<?php
require_once("./inc/aaa.php");
print "test02.php<br />";
?>
■bbb/inc/aaa.php
<?php
require_once("./inc/bbb.php");
print "aaa.php<br />";
?>
■bbb/inc/bbb.php
<?php
print "bbb.php<br />";
?>
とかあった場合test01.phpを実行するとエラーになります(--)b
requireしている「./bbb/inc/aaa.php」内で
requireしている「./inc/bbb.php」がみつからねーよと怒られる。
理由は簡単でtest01.phpのパスを基準にbbb.phpを探しに行くからです。
ちなみにbbb/test02.phpを実行すると正常に動くよ(--)b
そんな感じで、同じ「bbb/inc/aaa.php」を呼んでいるのに
ちゃんと動いたりエラーになったりするのです。
じゃあ絶対パスで書けばいーじゃん!
require_once '/hoge.php';
これはこれで個人的には嫌いです。
だって他の場所に動かせないじゃん。
test/フォルダ配下で動作確認したいときとか
複製して比較したいときとかに不便です。
と言う訳で
require_once dirname(__FILE__) . '/hoge.php';
がオススメ。
「dirname(__FILE__)」はそのコードが書かれているファイルのあるパス。
なもんで
require_once dirname(__FILE__) . '/../hoge.php';
とか書いたりしてOK。
要は、記述するときは相対パス的な解釈でファイルを指定しつつ
動作する時は絶対パス指定な動作をするので
相対パスで記述したときのような煩わしいこと考えなくていーのです。
うん、人の書いたコードではあんま見かけないけど
やっぱりこの書き方は最強だと思う。
今まで書いていなかったのですが、色んなお仕事に携わった結果
やっぱりベストな気がするので書いておこう。
require、includeする時は「dirname(__FILE__) 」つけるべしっ!
require_once dirname(__FILE__) . '/hoge.php';
とかそんな書き方ね。
理由(--)b
まず相対パスでの指定の場合の困ったちゃんな点。
require_once './hoge.php';
とかそんな書き方ね。
これ、階層構造考えるのがめんどくさい(;´A`)
例えば、
■test01.php
<?php
require_once("./bbb/inc/aaa.php");
print "test01.php<br />";
?>
■bbb/test02.php
<?php
require_once("./inc/aaa.php");
print "test02.php<br />";
?>
■bbb/inc/aaa.php
<?php
require_once("./inc/bbb.php");
print "aaa.php<br />";
?>
■bbb/inc/bbb.php
<?php
print "bbb.php<br />";
?>
とかあった場合test01.phpを実行するとエラーになります(--)b
requireしている「./bbb/inc/aaa.php」内で
requireしている「./inc/bbb.php」がみつからねーよと怒られる。
理由は簡単でtest01.phpのパスを基準にbbb.phpを探しに行くからです。
ちなみにbbb/test02.phpを実行すると正常に動くよ(--)b
そんな感じで、同じ「bbb/inc/aaa.php」を呼んでいるのに
ちゃんと動いたりエラーになったりするのです。
じゃあ絶対パスで書けばいーじゃん!
require_once '/hoge.php';
これはこれで個人的には嫌いです。
だって他の場所に動かせないじゃん。
test/フォルダ配下で動作確認したいときとか
複製して比較したいときとかに不便です。
と言う訳で
require_once dirname(__FILE__) . '/hoge.php';
がオススメ。
「dirname(__FILE__)」はそのコードが書かれているファイルのあるパス。
なもんで
require_once dirname(__FILE__) . '/../hoge.php';
とか書いたりしてOK。
要は、記述するときは相対パス的な解釈でファイルを指定しつつ
動作する時は絶対パス指定な動作をするので
相対パスで記述したときのような煩わしいこと考えなくていーのです。
うん、人の書いたコードではあんま見かけないけど
やっぱりこの書き方は最強だと思う。