ZF2: Zend framework 2.2-Controller nicht gefunden " - Fehler
Ich versuche zum erstellen neuer module im Zend-Skeleton-applictaion. Ich bin nach dem Zend framework-erste-Schritte-tutorial über das Album-Modul. Nur der Unterschied ist ich bin mit Projekt-Namen, anstatt Sie zu Album. Hier mein Modul-Struktur.
Den Inhalt module.config.php
ist als unten.
<?php
namespace Project;
return array(
'router' => array(
'routes' => array(
'project' => array(
'type' => 'segment',
'options' => array(
'route' => '/project[/:action][/:id]',
'contraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+'
),
'defaults' => array(
'controller' => __NAMESPACE__.'/Controller/'.__NAMESPACE__,
'action' => 'index'
)
)
)
)
),
'controllers' => array(
'invokables' => array(
'Project/Controller/Project' => 'Project/Controller/ProjectController',
)
),
'view_manager' => array(
'template_path_stack' => array(
'project' => __DIR__ . '../view',
)
),
);
Inhalt Module.php
ist als unten.
<?php
namespace Project;
class Module
{
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';
}
}
Die Datei autoload_classmap.php
Gegenzug nur ein leeres array.
<?php
return array()
Wenn ich versuche, Zugriff auf den url http://local.zf2/project/
, bekomme ich folgende Fehlermeldung.
Fatal error: Class 'Project/Controller/ProjectController' not found in
/home/bliss/public_html/local.zf2/vendor/zendframework/zendframework/library
/Zend/ServiceManager/AbstractPluginManager.php on line 170
Als ich sah auf die AbstractPluginManager.php
- Datei die Zeile 170 enthält $instance = new $invokable();
.
Ausgegeben ich $invokable
variable, um den Wert es hat. Er kehrte string(36) "Project/Controller/ProjectController"
Irgendwie ZF2 ist nicht in der Lage, das zu finden Datei. Kann jemand bitte helfen? Danke.
EDIT: Hier ist der Inhalt ProjectController.php
- Datei. Wenn Sie die Datei gefunden haben, wird es sterben, zeigt Sie den Namen der Datei.
<?php
namespace Project\Controller;
die(__FILE__);
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class ProjectController extends AbstractActionController
{
public function indexAction()
{
return array();
// return new ViewModel();
}
}
?>
Aktualisierte Frage, mit dem Inhalt
ProjectController
Sieht aus wie Sie die falsche Schrägstriche in den defaults & invokables Schlüssel in module.config.php
InformationsquelleAutor traditional | 2013-05-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie umgekehrte Schrägstriche verwenden, auf dass man !
Alle namespaces deklariert sind, mit backslashes. Das ist wahrscheinlich der Grund, warum die AbstractPluginManager nicht finden, Ihre ProjectController ;).
Gleichen hier
Was backslashes? Ich bin ein wenig verwirrt -> dein Beispiel scheint nicht umgekehrte Schrägstriche verwenden?
Waren Sie in der Lage, dieses Problem zu beheben? Ich habe genau das gleiche problem...
Denn dies ist nicht ein Beispiel :p. Müssen Sie umgekehrte Schrägstriche verwenden, in dem code, den ich zitierte.
Ok - in meinem Fall der Fehler war der gleiche, aber es stellte sich heraus, dass keine backslashes. Ich habe gegraben alle über Internet, die versuchen eine Antwort zu finden, ohne Erfolg, dann aber zufällig gemerkt, dass der Modul-code Ordner Berechtigungen anzeigen, als '????? ?? ??' in terminal. Da bin ich mit vagrant für die Entwicklung habe ich gerade getan habe 'vagrant destroy;vagrant up" - > und code-Ordner habe richtig montiert. dumm, dumm, Scheiße.
InformationsquelleAutor Tounu
Überprüfen Sie Ihre:
ProjectController.php
//deklariert die Klasse wie unten
InformationsquelleAutor user3955897