基本的に、私はphpクラスをmyclass
配置しroot/lib/php/
ていて、それらを呼び出すたびに、そこからクラスを自動ロードしたいと思っています。
今、私はメインのindex.phpファイルでこれを行おうとしています。spl_autoload_register
静的クラスに使用できるように、どこでどのように適切に定義する必要がありますmyclass::mymethod()
か?
通常、コード化されたオートロードは、各ページロードに含まれる構成ファイルまたはその他のファイルに含まれ、サイトの実行に必要な共通コードが含まれています。
クラスメソッドへの静的呼び出しは、自動ロードに関する限り、クラスをインスタンス化してメソッドを呼び出すのと同じです。
例:
/*** nullify any existing autoloads ***/
spl_autoload_register(null, false);
/*** specify extensions that may be loaded ***/
spl_autoload_extensions('.Class.php');
/*** class Loader ***/
define('BASE_APP_PATH', '/path/to/root/web/');
function classLoader($class){
$filename = $class . '.Class.php';
$file = BASE_APP_PATH.'classes/' . $filename;
if (file_exists($file)){
include $file;
}
}
/*** register the loader functions ***/
spl_autoload_register('classLoader');
その後、クラスのファイルを明示的に要求せずにこれを行うことができます。
echo SomeClass::staticCall();