請教個問題:
yaf. use_namespace=1的情況下,controller怎麼使用namespace?
比如:Index.php的內容
use Yaf\Controller_Abstract;use Yaf\Dispatcher;class IndexController extends Controller_Abstract{ public function indexAction() { Dispatcher::getInstance()->disableView(0); echo 'Great,It Works!'; }}
沒法加namespace了,檔案名稱是Index.php
路過的怎麼處理的,說說
回複內容:
請教個問題:
yaf. use_namespace=1的情況下,controller怎麼使用namespace?
比如:Index.php的內容
use Yaf\Controller_Abstract;use Yaf\Dispatcher;class IndexController extends Controller_Abstract{ public function indexAction() { Dispatcher::getInstance()->disableView(0); echo 'Great,It Works!'; }}
沒法加namespace了,檔案名稱是Index.php
路過的怎麼處理的,說說
我也想知道答案。 原本想
一直報錯。去掉namespace App\Controllers
就行。不知道怎麼辦了。
php.ini 開啟
yaf.use_namespace = 1yaf.use_spl_autoload = 1
定義載入器 可以在公用function中
/** 自動載入器 modules */function autoload_modules($class){ $class = str_replace('\\', DIRECTORY_SEPARATOR, $class); ... $file = APPLICATION_PATH . DIRECTORY_SEPARATOR . 'xxxx' . $class . '.php'; if( file_exists($file) ) Loader::import($file);}
然後在 Bootstrap 檔案中用 spl_autoload_register 自訂載入器
不過開啟 use_spl_autoload 會影響效率
開啟的情況下, Yaf在載入不成功的情況下, 會繼續讓PHP的自動載入函數載入, 從效能考慮, 除非特殊情況, 否則保持這個選項關閉
use_spl_autoload
也是一直報錯,原來是index裡加了 namesapce App\Controllers