gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

小技

小枝ぢゃありません小技です。
自分用とかの共通クラスとかのpathとかを使ってincludeだのrequireだのするときに。
よくみなさんこんな風に書いてるです。

require_once($include_dir . "/.." . HTML2DATA_DIR . "conf/conf.php");
require_once($include_dir . "/.." . HTML2DATA_DIR . "conf/mobile_conf.php");
require_once($include_dir . "/.." . HTML2DATA_DIR . "include/module.inc");
require_once($include_dir . "/.." . HTML2DATA_DIR . "include/mobile.inc");
require_once($include_dir . "/.." . HTML2DATA_DIR . "lib/glib.php");
require_once($include_dir . "/.." . HTML2DATA_DIR . "lib/slib.php");

えと…手前一緒のずらずらと面倒くない?
これ、こんな風に書き換えられるです。

$dir = $include_dir . "/.." . HTML2DATA_DIR;
set_include_path(get_include_path() . ":" . $dir);

require_once("conf/conf.php");
require_once("conf/mobile_conf.php");
require_once("include/module.inc");
require_once("include/mobile.inc");
require_once("lib/glib.php");
require_once("lib/slib.php");

ほらすっきり。
コピペが出来る世の中だとは言っても。出来るだけ、タイピング量減らしたほうが楽だし、見やすいと思うです。


上小技でした。

2008/01/22追記
id:msakamoto-sf さんからのステキな情報。
':'ではなくてPATH_SEPARATORを使うことで「Winodwsでもいけまっせ」な実装になるです。

set_include_path(get_include_path() . PATH_SEPARATOR . $dir);

4系は、どこかのバージョン以下で未実装の可能性があるとのことなので、4系の古いの使ってる人は要注意(そも、ンなバージョン使ってる人はそれ以前のところで要注意なのですがB-P)。