doctrine 2.10에서 zend framework 1.10을 사용하고 있습니다. 내 (doctrine) 모델 클래스에서 내 응용 프로그램이 설정 한 변수를 참조하는 것이 좋습니다. bootstrap.php, Zend_Registry
에 저장된 변수, 나는 그 전역 변수와 같은 것 같아)모델에서 응용 프로그램에 의해 변수 참조 설정
교리 entityManager는 무엇인가에 접근하려고합니다. 또한 난의 ID를 원하는 사용자로 로그인 한
doctrine 2.10에서 zend framework 1.10을 사용하고 있습니다. 내 (doctrine) 모델 클래스에서 내 응용 프로그램이 설정 한 변수를 참조하는 것이 좋습니다. bootstrap.php, Zend_Registry
에 저장된 변수, 나는 그 전역 변수와 같은 것 같아)모델에서 응용 프로그램에 의해 변수 참조 설정
교리 entityManager는 무엇인가에 접근하려고합니다. 또한 난의 ID를 원하는 사용자로 로그인 한
나는 비슷한 설정 (+ Doctrine2 ZF 1.10)와 프로젝트를 구축, 그리고 난 많은 말했다 takeshin 처럼,이 상황에 대처하기 위해 의존성 주입을 사용했습니다. 전체 프로젝트 저장소 URL은 다음과 같습니다 : https://bitbucket.org/phpfour/zf-doctrine2. 다음은 일부 코드 발췌 부분입니다.
<?php
require_once APPLICATION_PATH . "/models/PostManager.php";
class IndexController extends Zend_Controller_Action
{
private $_em;
public function init()
{
$this->_em = $this->getInvokeArg('bootstrap')->getResource('doctrine');
}
public function indexAction()
{
$pm = new PostManager($this->_em);
$this->view->posts = $pm->getPublicPosts();
}
내 엔티티 관리자 (또는 서비스 클래스) :이 도움이
<?php
class PostManager
{
protected $_em;
public function __construct(Doctrine\ORM\EntityManager $em)
{
$this->_em = $em;
}
public function getPublicPosts()
{
$query = $this->_em->createQuery('SELECT p FROM Entities\Post p WHERE p.visible = true');
$posts = $query->getResult();
return $posts;
}
희망
여기 내 컨트롤러입니다!
는
class Model extends BaseModel
{
public function something()
{
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$loggedInUserId = $auth->getIdentity()->id;
}
}
}
예, 저는 현재 그런 것을했습니다. 내 모델에서 Zend_Auth를 참조하지 않는 것이 더 좋은지 궁금합니다. 또는 너무 많이? –
아무 문제 없다 이 접근법 (싱글 톤을 언급하지 않는 한). 가능하면 의존성 주입을 사용하십시오.
그러나 서비스 (또는 2)를 만들 것입니다.
class Modulename_Services_Servicename
{
public function getCurrentUser() { ... }
public function getCurrentUserModel() { ... }
public function isLogged() { ... }
public function authenticate() { ... }
public function getSomeData()
{
$user = $this->getCurrentUser()
$model = new YourModel($user);
$query = ....;
$result = $query->execute();
return $result;
}
public function getSomeMoreData($usermodel) { ... }
}
'Zend_Registry'는 싱글 톤입니다. 그러나 어떤 종류의 변수에 대한 싱글 톤의 문제점은 무엇입니까? 하지만 뭘하고있는거야 인증 및 모델 논리를 혼합하는 것 같아? –
@jiewmeng 싱글 톤은 상수와 같습니다. 어디에서나 얻을 수 있습니다. 다른 변수의 경우 종속성 주입이 그 방법입니다. 필자가 작성한 것처럼 서비스를 만들려고합니다 (* 또는 2 *, 다른 논리에 대해 인증 용으로 분리). – takeshin
레지스트리에 저장 하시겠습니까? –
엔티티 관리자 –