[PHP] [Zend]致命错误:未捕获错误:类'Film \ Model \ Film'

问题描述:

我要学习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

从我看到的,我的假设是,你正在使用PSR-4规范自动加载你的类。 在“src/Film”下移动目录“Model”。所以你有src/Film/Model“。

+0

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