Zend로 시작하는 모든 게시물과 자습서를 읽으면 약간 혼란 스럽습니다. 문제를 해결할 수있는 다양한 방법이 있기 때문입니다.젠드 프레임 워크를 사용하여 모듈 식 웹 사이트 구축하기 : 올바른 방향으로 가고 있습니까?
내가 올바른 방향에 있는지 알기 위해 내 코드에 대한 피드백이 필요합니다.
public function postDispatch(Zend_Controller_Request_Abstract $request)
{
$menu = new Menu();
//Render menu in menu.phtml
$view = new Zend_View();
//NEW view -> add View Helper
$prefix = 'My_View_Helper';
$dir = dirname(__FILE__).'/../../View/Helper/';
$view->addHelperPath($dir,$prefix);
$view->setScriptPath('../application/default/views/scripts/menu');
$view->menu = $menu->getMenu();
$this->getResponse()->insert('menu', $view->render('menu.phtml'));
}
그것을가 나는 설정해야 그 권리 :
단순히 내가 postDispatch
방법으로 컨트롤러 플러그인을 구축 (로그인 한 사람에 따라) 내 사이트에 대한 (하드 코딩) 탐색을 얻으려면 다시 도우미 경로? 플러그인 컨트롤러 인 ViewSetup
에서이 작업을 수행했습니다. Doctype, headlinks 및 helper 경로와 같은보기에 대한 설정을합니다 (이 단계는 책에서 나온 것입니다 : Zend Framework in Action). 시작
Menu
클래스는 다음과 같습니다
class Menu
{
protected $_menu = array();
/**
* Menu for notloggedin and logged in
*/
public function getMenu()
{
$auth = Zend_Auth::getInstance();
$view = new Zend_View();
//check if user is logged in
if(!$auth->hasIdentity()) {
$this->_menu = array(
'page1' => array(
'label' => 'page1',
'title' => 'page1',
'url' => $view->url(array('module' => 'pages','controller' => 'my', 'action' => 'page1'))
),
'page2' => array(
'label' => 'page2',
'title' => 'page2',
'url' => $view->url(array('module' => 'pages','controller' => 'my', 'action' => 'page2'))
),
'page3' => array(
'label' => 'page3',
'title' => 'page3',
'url' => $view->url(array('module' => 'pages','controller' => 'my', 'action' => 'page3'))
),
'page4' => array(
'label' => 'page4',
'title' => 'page4',
'url' => $view->url(array('module' => 'pages','controller' => 'my', 'action' => 'page4'))
),
'page5' => array(
'label' => 'page5',
'title' => 'page5',
'url' => $view->url(array('module' => 'pages','controller' => 'my', 'action' => 'page5'))
)
);
} else {
//user is vom type 'client'
//..
}
return $this->_menu;
}
}
Here's 내보기 스크립트 : 이것은 지금까지 노력하고 있습니다
<ul id="mainmenu">
<?php echo $this->partialLoop('menuItem.phtml',$this->menu) ?>
</ul>
. 제 질문은 이렇습니다. 이렇게하는 것이 일반적입니까? 개선 할 것이 있습니까? 저는 젠드 (Zend)에 처음 왔으며 웹에서 자주 사용되지 않는 비공식 튜토리얼을 보았습니다. 심지어 책은 오토로더가 언급 된 곳에서는 이미 사용되지 않습니다.
두 번째 해결 방법이있는 Wok! 많은 감사! 나는이 웹 사이트를 여기에서 좋아한다. 포럼보다 빠른 응답. 이 두 가지 경우의 차이점을 알려주면 좋을 것입니다. 권장되는 솔루션이 있습니까? – Oliver
권장되는 솔루션이 있다고 나는 말할 수 없습니다. 응용 프로그램 설정에 따라 다릅니다. –