0
首先,我想告訴你我的目錄結構自動加載的問題
- /var/www
|- /social_network/
|- index.php
|- /application/
|-/controllers/
|-user.php
|- /models/
|- framework.php
|-/tmp/
在我的index.php我包括應用/ framework.php 這裏是我的framework.php代碼
<?php
spl_autoload_register();
class Framework{
public function load($page, $data){
if(is_array($data)){
extract($data);
}
include "views/".$page;
}
}
$object = "controller\\$controller";
$object = new $object;
if(method_exists($object,"$method")){
$object->$method();
} else {
show_404();
}
?>
現在使用上面的代碼,自動加載我的類工作正常。 如果你想知道$方法和$控制器來自index.php取決於URI。
現在,我的一個朋友告訴我,這是錯誤的方式做到這一點,所以我改變了我的代碼
<?php
function autoload_controller($controller){
include "$controller.php";
}
spl_autoload_register('autoload_controller');
class Framework{
public function load($page, $data){
if(is_array($data)){
extract($data);
}
include "views/".$page;
}
}
$object = "controller\\$controller";
$object = new $object;
if(method_exists($object,"$method")){
$object->$method();
} else {
show_404();
}
?>
現在我得到這個錯誤低於
Warning: include(controller\User.php): failed to open stream: No such file or directory in /var/www/social_network/application/framework.php on line 3 Warning: include(): Failed opening 'controller\User.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/social_network/application/framework.php on line 3 Fatal error: Class 'controller\User' not found in /var/www/social_network/application/framework.php on line 16
我怎樣才能解決這個問題,我一直在這個小時,如果可能的話,請告訴我如何我可以調用模型目錄從控制器類內使用自動加載 謝謝