以下のコードを使用して、クラスを自動的にロードして宣言しているので、クラスファイルをclassesという名前のフォルダーに配置するだけで済みます。spl_autoload_regsister()の部分は不要に思えるかもしれませんが、エラーなしでWordPressプラグインとして機能する必要があります。
それは使用してeval()
おり、使用について話している非常に多くのWebページeval()
が悪く、セキュリティホールを作成する可能性があるのを見てきました。では、これはどのように危険でしょうか?
$strDirPath = dirname(__FILE__) . '\\classes\\';
$arrClassFiles = array_map(create_function( '$a', 'return basename($a, ".php");' ), glob($strDirPath . '*.php'));
spl_autoload_register(
create_function('$class_name', '
global $arrClassFiles, $strDirPath;
if (in_array($class_name, $arrClassFiles))
include($strDirPath . $class_name . ".php");' )
);
foreach ($arrClassFiles as $strClassName) {
$strClassName_alpha = $strClassName . "_Alpha";
eval("class $strClassName_alpha extends $strClassName {};");
}
print_r(get_declared_classes());
たぶん、誰かがphpコードのファイル名をフォルダに入れることができますか?しかし、それがシステムを危険にさらす可能性があるとは思いません。