ZendFramework2のnamespaceの罠

ZendFramework1で書いた、自作のソースを、全く同じ内容で、ZendFramework2で書き直そうと思って、元ソースをコピーした。

ライブラリの使い方などは当然変わっているので修正は完了し、動作は問題ないはずであった。

modules.config.phpにコントローラも登録した。ルーティングはデフォルトが適用される(はず)で、追加する必要はない、はずであった。

でも、Controllerが見つからない、というエラーが消えない。理由がわからない。

当然、ググっても見つからない。

結論:namespace行を追加するのを忘れていた

という、単純なミスだった。ZendFramework2での基本なので、ZF1からのControllerソースをそのままコピーしてきたらこの部分が当然ない。

namespaceが指定されていないので、Controllerが「ないもの」として扱われていた、ということだった。これを解決した後はルーティングはデフォルトの設定で動作し(パラメータを使用しないので)、modules.config.phpはコントローラの登録だけで済んだ。

いろいろと覚えることが多い。今回はZend\Authentication周りを使ったのであるが、これもZF1からかなり変わっていた。認証内容はZF1の時と同じなのであるが、ほぼ書き直しになった。そのあたりは改めて。

コメント