使用SplClassLoader我總是收到class not found
錯誤。我試過各種sources,複製了他們確切的文件夾結構和命名,但仍然not found
。PHP SplClassLoader類未找到
我的結構
application
- Router
- Exceptions
- HttpException.php
- Klein.php
index.php
SplClassLoader.php
的index.php
$loader = new SplClassLoader('application', 'application');
$loader->register();
$klein = new \router\Klein();
Klein.php
namespace application\router;
class Klein{
__construct()
HttpException.php
namespace Klein\Exceptions;
use RuntimeException;
class HttpException extends RuntimeException implements HttpExceptionInterface
{
如何將這些與classLoader一起使用?
確切的錯誤是:
線44 $klein = new \router\Klein();
建議:
$loader = new SplClassLoader('application', 'application');
$loader->register();
$klein = new application\Router\Klein();
給錯誤:
Warning: require(application/application/Router/Klein.php): failed to open stream: No such file or directory in /home/i366963/domains/[domain]/private_html/SplClassLoader.php on line 140
Fatal error: require(): Failed opening required 'application/application/Router/Klein.php' (include_path='.:/usr/local/lib/php') in /home/i366963/domains/[domain]/private_html/SplClassLoader.php on line 140
請在其中發佈確切的錯誤消息。 – Augwa
@Augwa在底部添加了錯誤。 –
你的命名空間是\ application \ router,而不是\ router。更改爲新的\應用程序\路由器\。如果你在Unix上運行這個目錄,你的目錄名是區分大小寫的,這意味着你需要將目錄名改爲'router'或者將你的命名空間更新爲'application \ Router' – Augwa