Zend 1: Indexcontroller nicht gefunden

Yugeen

Erfahrenes Mitglied
Hi,
vielleicht kann mir hier jemand helfen, hab auch vor Kurzem angefangen mich in ZF 1 einzuarbeiten, hab auch ein gutes Tutorial gefunden wo alles ziemlich gut erklärt wird.
Allerdings habe ich ein kleines Problem, ich stecke fest. Und zwar wenn ich versuche einem Controller über die Eingabekonsole eine Action hinzuzufügen. Also
Code:
zf create action show Index 1 myblog

Wenn ich diesen Befehl ausführe kommt die Meldung das der Index Controller nicht gefunden wurde, was ich nicht nachvollziehen kann da dieser Vorhanden ist
Die Controller habe ich auch alle über die Eingabekonsole erstellt, da gab es keine Probleme.

PS Wusste jetzt nicht ob es sich lohnt einen Thread zu öffnen, deshalb habe ich hier mal gepostet. ^^

Gruß
Eugen
 
Hi,
muss ich hier so rein kopieren da ich hier keine XMLs anhängen kann.

Code:
<?xml version="1.0"?>
<projectProfile type="default" version="1.12.11">
  <projectDirectory>
    <projectProfileFile filesystemName=".zfproject.xml"/>
    <applicationDirectory classNamePrefix="Application_">
      <configsDirectory>
        <applicationConfigFile type="ini"/>
      </configsDirectory>
      <controllersDirectory>
        <controllerFile controllerName="Index">
          <actionMethod actionName="index"/>
        </controllerFile>
        <controllerFile controllerName="Error"/>
      </controllersDirectory>
      <formsDirectory enabled="false"/>
      <layoutsDirectory>
        <layoutScriptsDirectory>
          <layoutScriptFile layoutName="layout"/>
        </layoutScriptsDirectory>
      </layoutsDirectory>
      <modelsDirectory/>
      <modulesDirectory>
        <moduleDirectory moduleName="myblog">
          <configsDirectory enabled="false"/>
          <controllersDirectory/>
          <formsDirectory enabled="false"/>
          <layoutsDirectory enabled="false">
            <layoutScriptsDirectory enabled="false"/>
          </layoutsDirectory>
          <modelsDirectory/>
          <servicesDirectory enabled="false"/>
          <viewsDirectory>
            <viewScriptsDirectory/>
            <viewHelpersDirectory/>
            <viewFiltersDirectory/>
          </viewsDirectory>
        </moduleDirectory>
      </modulesDirectory>
      <servicesDirectory enabled="false"/>
      <viewsDirectory>
        <viewScriptsDirectory>
          <viewControllerScriptsDirectory forControllerName="Index">
            <viewScriptFile forActionName="index"/>
          </viewControllerScriptsDirectory>
          <viewControllerScriptsDirectory forControllerName="Error">
            <viewScriptFile forActionName="error"/>
          </viewControllerScriptsDirectory>
        </viewScriptsDirectory>
        <viewHelpersDirectory/>
        <viewFiltersDirectory enabled="false"/>
      </viewsDirectory>
      <bootstrapFile filesystemName="Bootstrap.php"/>
    </applicationDirectory>
    <dataDirectory enabled="false">
      <cacheDirectory enabled="false"/>
      <searchIndexesDirectory enabled="false"/>
      <localesDirectory enabled="false"/>
      <logsDirectory enabled="false"/>
      <sessionsDirectory enabled="false"/>
      <uploadsDirectory enabled="false"/>
    </dataDirectory>
    <docsDirectory>
      <file filesystemName="README.txt"/>
    </docsDirectory>
    <libraryDirectory>
      <zfStandardLibraryDirectory enabled="false"/>
    </libraryDirectory>
    <publicDirectory>
      <publicStylesheetsDirectory enabled="false"/>
      <publicScriptsDirectory enabled="false"/>
      <publicImagesDirectory enabled="false"/>
      <publicIndexFile filesystemName="index.php"/>
      <htaccessFile filesystemName=".htaccess"/>
    </publicDirectory>
    <projectProvidersDirectory enabled="false"/>
    <temporaryDirectory enabled="false"/>
    <testsDirectory>
      <testPHPUnitConfigFile filesystemName="phpunit.xml"/>
      <testPHPUnitBootstrapFile filesystemName="bootstrap.php"/>
      <testApplicationDirectory>
        <testApplicationControllerDirectory>
          <testApplicationControllerFile forControllerName="Index">
            <testApplicationActionMethod forActionName="index"/>
          </testApplicationControllerFile>
        </testApplicationControllerDirectory>
      </testApplicationDirectory>
      <testLibraryDirectory/>
    </testsDirectory>
  </projectDirectory>
</projectProfile>
 
Ok, das hier ist das Problem:

XML:
      <modulesDirectory>
        <moduleDirectory moduleName="myblog">
          <configsDirectory enabled="false"/>
          <controllersDirectory/>

Du hast zwar ein Modul mit dem Namen myblog erstellt, aber darin keinen Controller Index angelegt. Das hier sollte funktionieren:

Bash:
$ ./vendor/zendframework/zendframework1/bin/zf.sh create controller Index 1 myblog

$  ./vendor/zendframework/zendframework1/bin/zf.sh create action show Index 1 myblog

Dann sollte die xml dieses beinhalten:

XML:
  <modulesDirectory>
  <moduleDirectory moduleName="myblog">
  <configsDirectory enabled="false"/>
  <controllersDirectory>
  <controllerFile controllerName="Index">
  <actionMethod actionName="index"/>
  <actionMethod actionName="show"/>
  </controllerFile>
  </controllersDirectory>
 
Danke, aber das ist ja das witzige an der Geschichte, der Controller ist ja vorhanden, aber irgendwie scheint er wohl den Pfad in die xml nicht einzutragen.
 

Anhänge

  • cont.jpg
    cont.jpg
    31,7 KB · Aufrufe: 4
Einfach noch mal anlegen? Vorher Backup machen und Modul noch mal leeren und alle Controller neu erstellen, die Ausgabe genau lesen.
 
Nee hat auch nicht geklappt. Hab das ganze nochmal unter ubuntu probiert, also habs genau so gemacht wie auch unter win. da klappt es tadellos. Kann es an den Apache Einstellungen liegen?
 
Nein eigentlich nicht. zf.sh ändert Dateien direkt im Dateisystem, da kommt Apache und dessen Konfiguration noch nicht ins Spiel. Passt die zf.sh/cmd/bat (ZendTool) eigentlich zu deinem Zendframework? Ich würde zum Testen einfach mal ein neues Projekt anlegen (siehe den Thread über Zend Grundlagen), dann das Modul, den IndexController für das Modul und anschließend die Action. Ich würde jetzt davon ausgehen, dass irgendwo in der Kette deines ersten Versuchs was schief gelaufen ist, du den Fehler nicht bemerkt und einfach weiter gemacht hast.

Vorgangsweise:

- Ordner für das anlegen
- Mittels zf das Projekt erzeugen
- VirtualHost für das public-Directory im Apache konfigurieren & Dienst neu starten
- Mittels zf Datasource konfigurieren
- zf Modul erzeugen (testen)
- zf Controller im Modul erzeugen (testen, indexAction wird immer angelegt)
- zf Action erzeugen, erstellt gleichzeitig auch die View (testen)
- zf Models erzeugen
- Business-Logik in der Action schreiben
- Testen
 
Zurück