【发布时间】:2014-03-17 01:01:11
【问题描述】:
我正在尝试在 PHP 中自动加载存储在 classes 文件夹内的子文件夹中的类。这是目录和文件结构:
htdocs
SANDBOX
index.php
classes
app
app1.php
utlity
utility1.php
这里是index.php的内容:
<!DOCTYPE HTML>
<html>
<?php
//autoload classes
# first attempt
spl_autoload_register(function($class) {
require_once 'classes/' . $class . '.php';
});
# second attempt
// spl_autoload_extensions(".php");
// spl_autoload_register();
//render stuff in browser
echo '<p>this is the test page</p><br>';
echo Utility1::greeting();
echo App1::greeting();
?>
</html>
这里是app1.php的内容:
<?php
namespace classes/app;
class App1
{
public static function greeting()
{
return 'app<br>';
}
}
?>
这里是utility1.php的内容:
<?php
namespace classes/utility;
class Utility1
{
public static function greeting()
{
return 'utility<br>';
}
}
?>
index.php 中的尝试 1 和尝试 2 均未成功自动加载类。需要进行哪些修改才能使自动加载与此文件结构一起使用?理想的自动加载方法将允许将来将额外的子文件夹添加到类文件夹中,并且不需要修改自动加载代码。
【问题讨论】:
标签: php namespaces autoloader