2014-02-23 32 views
0

我想構建自己的MVC框架,但是我遇到了自動加載器的問題。超類中的自動加載類

我有以下目錄佈局:

-application 
--Model 
---RegiserUser.php 
--Libs 
---Base.php 
---Model.php 
---Model 
--Controller 
---Login.php 

Model_RegiserUser延伸,其延伸基地

自動裝方法是在基類模型。我試圖模仿你的Zend加載類的方法:

protected function __autoload($class_name) 
    { 
     echo 'test'; 
     $filename = str_replace('_', DIRECTORY_SEPARATOR, strtolower($class_name)) . '.php'; 

     $file = ROOT . $filename; 

     echo $file; 

     if(!file_exists($file)) { 
      return FALSE; 
     } 
     include $file; 
    } 

我得到這個錯誤:

Fatal error: Class 'Model_RegisterUser' not found in C:\EasyPHP\data\localweb\application\controller\Login.php on line 31

+0

「我試圖模擬你在Zend加載類的方式」 - Zend \ Loader是一個獨立的組件,所以如果你需要相同的行爲,不需要重新發明輪子:http://framework.zend.com/manual/2.2/en/modules/zen d.loader.standard-autoloader.html –

+0

更多的是學習練習 – user3343171

回答

1

用strtolower是你的問題...... 類似Unix的嘗試在系統上加載文件「registeruser.php」而不是「RegiserUser.php」(區分大小寫))