2017-02-19 148 views
0

我要學習Zend Framework,並且當我嘗試創建一個新模塊時必須從中讀取一些信息DB,我卡住了這個錯誤:[PHP] [Zend]致命錯誤:未捕獲錯誤:類'Film Model Film'

Fatal error: 
Uncaught Error: Class 'Film\Model\Film' not found in /Applications/XAMPP/xamppfiles/htdocs/provaVicky/provaVicky/module/Film/Module.php:41 Stack trace: #0 [internal function]: Film\Module->Film\{closure}(Object(Zend\ServiceManager\ServiceManager), 'filmtablegatewa...', 'FilmTableGatewa...') 
#1 /Applications/XAMPP/xamppfiles/htdocs/provaVicky/provaVicky/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(939): call_user_func(Object(Closure), Object(Zend\ServiceManager\ServiceManager), 'filmtablegatewa...', 'FilmTableGatewa...') 
#2 /Applications/XAMPP/xamppfiles/htdocs/provaVicky/provaVicky/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(1099): Zend\ServiceManager\ServiceManager->createServiceViaCallback(Object(Closure), 'filmtablegatewa...', 'FilmTableGatewa...') 
#3 /Applications/XAMPP/xamppfiles/htdocs/provaVicky/provaVicky/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(638): Zend\ServiceManager\ServiceManager-> in /Applications/XAMPP/xamppfiles/htdocs/provaVicky/provaVicky/module/Film/Module.php on line 41 

這裏的文件「Module.php」

<?php 
namespace Film; 

use Film\Model\Film; 
use Film\Model\FilmTable; 
use Zend\ModuleManager\Feature\AutoloaderProviderInterface; 
use Zend\ModuleManager\Feature\ConfigProviderInterface; 
use Zend\Db\ResultSet\ResultSet; 
use Zend\Db\TableGateway\TableGateway; 

class Module implements AutoloaderProviderInterface, ConfigProviderInterface{ 

    public function getAutoloaderConfig() { 
     return array(
      'Zend\Loader\ClassMapAutoloader' => array(
       __DIR__ . '/autoload_classmap.php', 
      ), 
      'Zend\Loader\StandardAutoloader' => array(
       'namespaces' => array(
        __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 
       ), 
      ), 
     ); 
    } 

    public function getConfig() { 
     return include __DIR__ . '/config/module.config.php'; 
    } 

    public function getServiceConfig() { 
     return array(
      'factories' => array(
       'Film\Model\FilmTable' => function($sm) { 
        $tableGateway = $sm->get('FilmTableGateway'); 
        $table = new FilmTable($tableGateway); 
        return $table; 
       }, 
       'FilmTableGateway' => function ($sm) { 
        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); 
        $resultSetPrototype = new ResultSet(); 
        $resultSetPrototype->setArrayObjectPrototype(new Film()); 
        return new TableGateway('film', $dbAdapter, null, $resultSetPrototype); 
       }, 
      ), 
     ); 
    } 
} 

,他不能發現只是變量的一個實例,以檢查他們的文件'是空的還是不空。

我跟着這Tutorial,但我不明白我做錯了什麼。

如果你有人可以幫助我,我會非常高興:d

謝謝你的建議, 羅伯特·蘭扎

@ - 雅尼布提斯 這裏是目錄結構。

- config 
|--- module.config.php 
- Model 
|--- Film.php 
|--- FilmTable.php 
- src 
|--- Film 
|--- |--- Controller 
|--- |--- |--- FilmController.php 
- tests 
|--- Film 
|--- |--- Framework 
|--- |--- |--- TestCase.php 
|--- |--- SampleTest.php 
|--- Bootsrap.php 
|--- phpunit.xml 
|--- TestConfiguration.php.dist 
- view 
|--- film 
|--- |--- film 
|--- |--- |--- foo.phtml 
|--- |--- |--- index.phtml 
- autoload_classmap.php 
- autoload_function.php 
- autoload_register.php 
- license.txt 
- Module.php 
- README.md 
+0

你能提供目錄結構和」/ module/Film「下的所有文件嗎? –

+0

嗨,詹姆斯,我剛剛編輯過這個帖子 謝謝你的回答 – Narak

回答

0

從我看到的,我的假設是,你正在使用PSR-4規範自動加載你的類。 在「src/Film」下移動目錄「Model」。所以你有src/Film/Model「。

+0

它的工作,非常感謝你!:D – Narak

相關問題