2017-02-19 5 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

спасибо в совет, Roberto Lanza

@ - Ианний Botis Вот структура каталога.

- 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». Так что у вас есть src/Film/Model ».

+0

Это сработало, большое спасибо!: D – Narak