toma-stkのCakePHP自習室

2008-01-25cake/configure.php - 初期化 (CakePHP解析 #5) このエントリーを含むブックマーク

前回の続きです。「cake/bootstrap.php」が「cake/configure.php」を読み込んでConfigureインスタンス(Singleton)を作っていますので、今日はこのConfigureインスタンスの動きをちょこっと解析。

bootstrap.phpから、&getInstanceメソッドが呼び出されていますね。このメソッドの中身は下記のとおり。

(※<?phpハイライトカラーを有効にするために記述しています)

<?php
function &getInstance() {
	static $instance = array();
	if (!$instance) {
		$instance[0] =& new Configure;
		$instance[0]->__loadBootstrap();
	}
	return $instance[0];
}
?>

PHP4のSingletonの挙動については、前回のエントリーで書いたので省略。ちょっと分からないのは、呼び出し元が次のようにしているところ。

<?php
$paths = Configure::getInstance();
?>

「::」はインスタンス化無しでstaticなメソッドを実行ということなんだろうけど、PHP4の場合は戻り値変数がstatic宣言されていれば、そのメソッドはstaticなメソッドでみなされるのかな?

うーん、よく分からん。次に進めちゃいます。


次は「__loadBootstrap()」ですが、これはConfigureクラスの一番下に定義されています。中身をみると自分で自分を初期化しているって感じかな。途中で「app/config/bootstrap.php」を読み込んでいますね。

この「app/config/bootstrap.php」ファイルはどうやら、作り手に対して「アプリケーション全体のグローバルな定数や関数を定義したり、または、それらが定義されているファイルを読み込みなよっ」て言っているんだと思います。

次回はConfigureクラスをもうちょっと突っ込んで解析してみたいと思います。

qjdjeophedqjdjeophed2013/07/26 07:16jspdstuvezsppn, <a href="http://www.ytoyjvkxqk.com/">vkpkdidjhk</a> , [url=http://www.lerzvwkvde.com/]iikdmemgqs[/url], http://www.tanuzceqoo.com/ vkpkdidjhk

rftokdguxcrftokdguxc2014/01/20 08:17rngewtuvezsppn, <a href="http://www.qpjhmlthou.com/">vlzogukklz</a>

wgkqwbzcitwgkqwbzcit2014/01/22 23:47mtpxktuvezsppn, <a href="http://www.ohmjtshgfb.com/">frtnameiem</a>

flzifyczckflzifyczck2014/01/26 02:12mnldttuvezsppn, http://www.vzqpmkirhr.com/ gsqssvepow