2012-07-03 1 views
0

У меня есть два типа данных, которые похожи, но разные. У них есть некоторые фрагменты презентационного кода, которые они разделяют, но некоторые из них, которые они реализуют по-разному.CakePHP Обмен кодом между помощниками

Я думал, что у меня будет функция фабрики в помощнике (Tracker - TrackerHelper), как это;

$this->Tracker->getInstance("boolean"); // Returns a BooleanTrackerHelper 

Но я не уверен, как вернуть другого помощника из другого помощника. Я не думаю, что могу просто сделать return new BooleanTrackerHelper(), поскольку у CakePHP, вероятно, есть свои собственные подпрограммы, которые он хочет пройти, и, кроме того; что заставило бы меня поместить все классы в один и тот же файл.

В руководстве есть функция, которая позволяет вам загружать помощника из вида ($this->Helpers->load()), но я хочу загрузить помощника из другого помощника.

В целом; Что вы делаете, если не хотите повторять в кучу разных представлений, что если данные имеют тип A, используйте вспомогательный помощник A, и если это тип B, используйте помощника B и где помощники A и B имеют некоторые фрагменты кода.

Возможно, существует более яркий способ решения этого вопроса, если это так; пожалуйста, не стесняйтесь делиться!

ответ

1

Если вы просто хотите использовать один помощник из другого помощника, просто включить его в $helpers массиве, где вы хотите использовать:

class TrackerHelper extends AppHelper { 
    public $helpers = array('BooleanTracker'); 

    public function someMethod() { 
     // Using the other helper 
     $this->BooleanTracker->someOtherMethod(); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^