PHP/Zend: Schwerwiegender Fehler - Klasse nicht gefunden
Ich habe einen Zend-Projekt mit der folgenden Verzeichnisstruktur:
/myApp
/application
Bootstrap.php
/configs
application.ini
/layouts
/modules
/default
/controllers
MessageController.php
ErrorController.php
IndexController.php
/models
/DbTable
Message.php
Message.php
MessageMapper.php
/views
Bootstrap.php
/login
/controllers
/forms
/library/login
/models
/plugins
/views
Bootstrap.php
/data/db
/library/zend
/public
http://localhost/ - funktioniert gut, aber ich kann nicht das login-Modul und die Nachricht in das Standard-Modul zu arbeiten. Ich bekomme die folgende Fehlermeldung:
Fatal error: Class 'Application_Module_Default_Model_messagemapper' not found in /Library/WebServer/Documents/myApp/application/modules/default/controllers/MessageController.php auf der Linie 14
Ich bin sicher, ich bin nicht die Initialisierung etwas, was ich brauche. Hier ist, was mein code sieht aus wie..
Anwendung.ini
autoloaderNamespaces[] ="Message_"
autoloaderNamespaces[] ="Login_"
autoloadernamespaces.0 = "Zend_"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.moduleControllerDirectoryName = "controllers"
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultActionName = "index"
resources.frontController.params.displayExceptions = 0
resources.frontController.defaultModule = "default"
resources.frontController.params.prefixDefaultModule = "1"
resources.frontController.plugins[] = "Login_Plugin_SecurityCheck"
resources.modules = ""
/application/bootstrap.php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initDoctype()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('HTML5');
}
}
/public/index.php
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
require_once 'Zend/Application.php';
require_once('Zend/Loader/Autoloader.php');
$autoloader = Zend_Loader_Autoloader::getInstance();
/module/default/controllers/MessageController.php
$message = new Application_Module_Default_Model_MessageMapper();
$this->view->entries = $message->fetchAll();
Lassen Sie mich wissen, wenn noch mehr details würden helfen. Jede Hilfe wäre sehr geschätzt werden.
MessageMapper.php
?Ich habe Folgendes:
class Default_Model_MessageMapper
Es ist derzeit stecken, diese Zeile des Codes, die in einer Funktion zum abrufen aller Nachrichten aus der Datenbank: $entry = new Application_Model_Message();
ich habe versucht, andere Kombinationen wie Application_Module_Default_Model_Message();
immer Noch keine Freude, sondern kommentieren diese Linien macht die Seite zu laden, so dass Sie es fast geschafft!
InformationsquelleAutor | 2011-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht:
Außerdem sind Sie autoloading Ihr Modul in das Modul Bootstrap.php Datei? Ich bin mir nicht sicher, wie viel es hat sich verändert, seit ich verwendet, ZF, aber ich hatte auch diese:
Fatal error: Class 'Application_Module_Default_Model_Message' not found in /Library/WebServer/Documents/bollyme/application/modules/default/models/MessageMapper.php on line 56
Linie 56 von mein code ist:$entry = new Application_Module_Default_Model_Message();
Sie müssen aktualisieren, dass man auch dann neue Default_Model_Message(); (strip out "Application_Module_" aus Ihrer Klasse Namen)
BEHOBEN!Es funktioniert jetzt.. beide /message und /login - Jubel für all die Hilfe! Strippen aus Application_Module sicherlich geholfen!
Froh, es zu hören! Können Sie die Antwort akzeptieren? :]
InformationsquelleAutor Adrian Schneider
mir hatte auch das gleiche Problem, aber meine Sache war sehr einfach
hatte ich ein Formular Form_Template_Add & controller TemplateController.
Der controller rief ich die form - neue Form_Template_Add();
Meiner form befindet sich in einer Ordner template.
Problem wurde mit dem Namen des Ordners, finden Sie das " t " in der Vorlage ist der small-caps, während das 'T' für controller & Klassenname Kappen.
Ich verpasst Ordnernamen, um die Vorlage & es funktioniert... hooya
InformationsquelleAutor charles
Stellen Sie sicher, Sie haben eine Bootstrap.php in jedem Modul-Verzeichnis, das wie folgt aussieht:
In der Admin den Namen des Moduls. Auch, stellen Sie sicher, es ist tatsächlich eine Datei Login.php im inneren Verzeichnis modules/admin/Formen mit einer Klasse Admin_Form_Login
[Zend_Form][1.11.1] Fehlermeldung Fatal error: Class 'Admin_Form_Login' nicht gefunden in ...\modules\default\controllers\IndexController.php
InformationsquelleAutor user3576797