オブジェクト(AuthServiceなど)のようなサービスを取得したいだけの場合は、それをサービスとして登録し(getAuthService()
コントローラーを呼び出してからすでに登録している可能性があります)、ServiceLocatorを使用して取得するか、単体テストにさらに適しています。工場経由でコントローラーに注入します。ZfcUserを見て、それがどのように行われるかを確認することをお勧めします。
何らかの理由で、このハードコードされたアプローチ(フレームワークに対して実際に機能している)の使用を主張する場合は、自動ロードを正しく設定していないか、ZfCommonsモジュールがアクティブ化されていないと思います。
初め
アクティブ化されたモジュールについては、application.config.phpを確認してください。ZfCommonsとApplicationは、少なくともアクティブ化する必要があります。
2番
オートローダーの初期化については、ZfCommonsのModule.phpを確認してください。
<?php
namespace ZfCommons;
use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
use Zend\Loader\StandardAutoloader;
class Module implements AutoloaderProviderInterface,
{
// snip
/**
* {@inheritDoc}
*/
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
// snip
}
これにより、名前空間ZfCommonsのクラス自動読み込みが初期化されます。
ファイル名がPSR-0に従ってクラスとインターフェイスに正しくマップされている場合は、これで機能するはずです。