Использование вспомогательных функций Zend 1 View в другом вспомогательном классе View

у меня есть два вспомогательных класса

ссылка:

C: \ XAMPP \ HTDOCS \ ЭКОМ \ \ Views приложения \ хелперы \ comman.php

C: \ XAMPP \ HTDOCS \ ЭКОМ \ \ Views приложения \ хелперы \ RefineUrl.php

class Zend_View_Helper_Refinestr
{
public function Refinestr($str, $options = array()){
..............
.............
return $str;
}}

второй

class Zend_View_Helper_Comman
{
public function Comman(){
return $this;
}
public function getPageContent($pageId){
//  return $pageId;
$mapper  = new Application_Model_StaticpageMapper();
$selectedFields=array('desc');
$tblName=array($mapper->getDbTable()->_name);
$whr= "`id`=$pageId";
$content=$mapper->fetchSelectedFields($tblName,$selectedFields,$whr);

$des=$content[0]['desc'];
// here i want to use function Refinestr() of another helper class how i use this
$des=$this->Refinestr($des);
// not working , searching this function inside comman class

} }

Как использовать одну вспомогательную функцию класса в другой вспомогательной функции класса?

0

Решение

Вы можете использовать ниже уловку для вашего случая.

Во время звонка getPageContent() помощник от вашего view файл передать view object в качестве помощника param (лайк $pageId) и использовать это view object вызвать другого помощника в определении помощника.

View файл:

<?php echo $this->getPageContent($pageId, $this); ?>

Вспомогательный файл:

class Zend_View_Helper_GetPageContent {
public function getPageContent($pageId, $viewObj) {
// return $pageId;
$mapper = new Application_Model_StaticpageMapper ();
$selectedFields = array ('desc'
);
$tblName = array ($mapper->getDbTable ()->_name
);
$whr = "`id`=$pageId";
$content = $mapper->fetchSelectedFields ( $tblName, $selectedFields, $whr );

$des = $content [0] ['desc'];
// here i want to use function Refinestr() of another helper class how i
// use this
$des = $viewObj->Refinestr($des); //use view object to call another helper
}
}

Другой помощник останется таким, как есть.

Еще одно решение этой проблемы может быть, установить представление объекта в Zend Registry во время начальной загрузки и использовать это registry variable в файле помощника для вызова другого помощника.

В Bootstrap Файл:

protected function _initConfig() {
$this->bootstrap('view');
$this->_view = $this->getResource('view');
Zend_Registry::set('viewObj', $this->_view);
}

Helper Файл:

class Zend_View_Helper_GetPageContent {
public function getPageContent($pageId) {
// return $pageId;
$mapper = new Application_Model_StaticpageMapper ();
$selectedFields = array ('desc');
$tblName = array ($mapper->getDbTable ()->_name);
$whr = "`id`=$pageId";
$content = $mapper->fetchSelectedFields ( $tblName, $selectedFields, $whr );

$des = $content [0] ['desc'];
// here i want to use function Refinestr() of another helper class how i
// use this
$viewObj = Zend_Registry::get('viewObj');
$des = $viewObj->Refinestr($des); //use view object to call another helper
}
}
1

Другие решения

Я обычно делаю следующее:

Внутри помощник1

$this->helper1()->view->helper2();

В случае, если helper1 принимает некоторые аргументы, я изменяю его, чтобы он не принимал аргументов и просто возвращал. Попробуйте, может сработать.

1

По вопросам рекламы [email protected]