에 주입 표 참고 :이 ZF 베타 1이었다 나는이 난 그냥 내 수업의 일부에 종속성을 주입하려고 시도했습니다 현재 릴리스ZF2 의존성 삽입 (Dependency Injection) - 클래스
에 대해 동일 의심한다. 나는 이미 database configurations
, DB adapters
및 auth adapters
을 내 UserMapper
클래스에 주입하는 것과 같은 몇 가지 작업으로 이미 이것을 관리하고 있었기 때문에 이것을 생각했습니다.
다른 클래스와 동일한 작업을 수행하려고했는데 전혀 작동하지 않아서 내 UserMapper
클래스가 작동하지 않는 이유가 무엇인지 알 수 없었습니다. 이제 UserMapper
클래스가 설정 파일의 맨 위에 별칭이 설정된 컨트롤러에 주입되고있는 것을 볼 수 있습니다.
컨트롤러를 사용하여 처음으로 주입하지 않고도 추측 할 수 있습니다. 어떻게하면 모델에 주입 할 수 있습니까?
이Application\Model\
Application\Model\DbTable
내 설정은 현재 같은 같습니다 : I 표준 ZF2 Skeleton by EvanDotPro
내 모델에 사용하고,
<?php
return array(
'bootstrap_class' => 'Application\Bootstrap',
'layout' => 'layouts/layout.phtml',
'di' => array(
'instance' => array(
'alias' => array(
'index' => 'Application\Controller\IndexController',
'view' => 'Zend\View\PhpRenderer'
),
'Zend\View\HelperLoader' => array(
'parameters' => array(
'map' => array(
'url' => 'Application\View\Helper\Url',
),
),
),
'Zend\View\HelperBroker' => array(
'parameters' => array(
'loader' => 'Zend\View\HelperLoader',
),
),
'Application\Controller\IndexController' => array(
'parameters' => array(
'userMapper' => 'Application\Model\UserMapper',
'flashMessenger' => 'Zend\Mvc\Controller\Plugin\FlashMessenger'
)
),
'Application\Model\UserMapper' => array(
'parameters' => array(
'db' => 'Zend\Db\Adapter\PdoMysql',
'authAdapter' => 'Zend\Authentication\Adapter\DbTable',
'userTable' => 'Application\Model\DbTable\UserTable'
)
),
'Application\Model\DbTable\UserTable' => array(
'parameters' => array(
'config' => 'Zend\Db\Adapter\PdoMysql',
)
),
// Auth adapter
'Zend\Authentication\Adapter\DbTable' => array(
'parameters' => array(
'zendDb' => 'Zend\Db\Adapter\PdoMysql',
'tableName' => 'users',
'identityColumn' => 'username',
'credentialColumn' => 'password',
'credentialTreatment' => 'MD5(CONCAT(?,"OSalTyr$"))'
)
),
// DB Adapter
'Zend\Db\Adapter\PdoMysql' => array(
'parameters' => array(
'config' => array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'blahblah',
),
),
),
// View
'Zend\View\PhpRenderer' => array(
'parameters' => array(
'resolver' => 'Zend\View\TemplatePathStack',
'options' => array(
'script_paths' => array(
'application' => __DIR__ . '/../views',
),
),
'broker' => 'Zend\View\HelperBroker',
),
),
),
),
'routes' => array(
'default' => array(
'type' => 'Zend\Mvc\Router\Http\Regex',
'options' => array(
'regex' => '/(?P<controller>[^/]+)(/(?P<action>[^/]+)?)?',
'spec' => '/%controller%/%action%',
'defaults' => array(
'controller' => 'error',
'action' => 'index',
),
),
),
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'index',
'action' => 'index',
),
),
),
),
);
감사 도미닉