[PHP] [Zend] Фатальная ошибка: необученная ошибка: класс ‘Film \ Model \ Film’

Я собираюсь изучить Zend Framework, и когда я пытался создать новый модуль, который должен считывать некоторую информацию из БД, я застрял с этой ошибкой:

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);
},
),
);
}
}

Файл, который он не может найти, является просто экземпляром переменных, чтобы проверить, являются ли они пустыми или нет.

Я следил за этим Руководство, но я не могу понять, что я сделал неправильно.

Если кто-то из вас может помочь мне, я буду очень рад: 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

Решение

Из того, что я вижу, я предполагаю, что вы используете спецификацию PSR-4 для автозагрузки ваших классов.
Переместить каталог «Модель» в «src / Film». Так что у вас есть src / Film / Model «.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector