根據(jù)psr-0規(guī)則編寫的,回調(diào)類無法自動載入,怎么解決?
代碼如下:
index.php
<?php use?App\Route; use?App\Controller\HomeController; define('BASEDIR',?__DIR__); include?BASEDIR?.?'/App/Loader.php'; spl_autoload_register('\\App\\Loader::autoload'); HomeController::index(); call_user_func('HomeController::index');
App\Controller\HomeController.php
<?php namespace?App\Controller; class?HomeController{ ????public?static?function?index(){ ????????echo?__METHOD__; ????} }
App\loader.php
<?php namespace?App; class?Loader{ ????public?static?function?autoload($class){ ????????$class?=?str_replace('\\',?'/',?$class); ????????require?BASEDIR?.?'/'?.$class?.?'.php'; ????} }
運行結果:
App\Controller\HomeController::index
Warning: ?require(D:\wwwroot\htdocs\dd/HomeController.php): failed to open stream: No such file or directory in D:\wwwroot\htdocs\dd\App\Loader.php on line 10
Fatal error: ?require(): Failed opening required 'D:\wwwroot\htdocs\dd/HomeController.php' (include_path='.;C:\php\pear') in D:\wwwroot\htdocs\dd\App\Loader.php on line 10我知道寫成call_user_func('App\Controller\HomeController::index');是可以解決問題的。
但是采用簡單的call_user_func('HomeController::index');寫法,應該怎么解決
2016-01-26
index.php沒定義BASEDIR
2016-01-26
index.php沒定義BASEDIR