2017-02-19 5 views
0

Ich werde Zend Framework lernen, und als ich versuchte, ein neues Modul zu erstellen, das einige Informationen aus der DB, habe ich mit diesem Fehler fest:[PHP] [Zend] Fataler Fehler: Uncaught Fehler: Klasse '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 

hier die Datei „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); 
       }, 
      ), 
     ); 
    } 
} 

die Datei, die er nicht gefunden kann, ist nur eine Instanz der Variablen zu überprüfen, ob sie sind leer oder nicht.

Ich folgte diesem Tutorial, aber ich kann nicht verstehen, was ich falsch gemacht habe.

Wenn jemand von euch mir helfen könnte werde ich sehr froh sein: D

danken Ihnen in der Beratung, Roberto Lanza

@ - Jannes Botis Hier ist die Verzeichnisstruktur.

+0

Können Sie die Verzeichnisstruktur zur Verfügung stellen und alle Dateien unter‚/ module/Film‘? –

+0

Hallo James, ich habe die Post gerade bearbeitet. Dank für Ihre Antwort danken. – Narak

Antwort

0

Von was ich sehe, ist meine Annahme, dass Sie PSR-4-Spezifikation für das Autoloading Ihrer Klassen verwenden. Verschieben Sie das Verzeichnis "Model" unter "src/Film". Damit Sie src/Film/Model haben“.

+0

Es hat funktioniert, vielen Dank!: D – Narak

Verwandte Themen