Использование $helper в CakePHP 2

У меня есть вопрос о явном объявлении $helper. Это пример кода из книги CakePHP.

<?php
class PostsController extends AppController {
    public $helpers = array('Html', 'Form');

    ..
}

В моем коде у меня вообще не было этого объявления, но мое приложение все еще работает, я могу сохранять данные через свою веб-форму, я также могу использовать $this->Html->link().

Мне действительно нужна эта декларация, какие недостатки, если я этого не сделал?

Спасибо всем.


person Artisan    schedule 14.10.2012    source источник


Ответы (1)


Переменную $helpers необходимо объявлять только в том случае, если вы используете помощника, отличного от «HTML» и «Form». Основные помощники «Html» и «Form» загружаются по умолчанию в массив $helpers, поэтому объявление не требуется, если вы собираетесь использовать только их.

Если вы хотите добавить собственный хелпер или использовать любой другой основной хелпер, вы должны объявить массив $helpers. Когда вы делаете это, вы перезаписываете массив помощников по умолчанию, поэтому вам нужно снова включить значения по умолчанию, если вы все еще собираетесь их использовать.

// Default. You do not need to declare this if you 
// only intend to use these helpers.
$helpers = array('HTML', 'Form'); 

// Add 'CustomHelper' to $helpers array. In this case
// HTML and Form must be declared.
$helpers = array('HTML', 'Form', 'Custom');
person Khior    schedule 14.10.2012
comment
Что делать, если мне нужно использовать помощник сеанса??? $helpers = массив («Сеанс»); или $helpers = array('Html', 'Форма', 'Сеанс'); Должен ли я повторять объявление «Html» и «Form»??? - person Artisan; 14.10.2012
comment
Да, вам нужно повторить Html и Form. Итак, если вы хотите использовать хелпер Session, объявление должно быть $helper = array('Html', 'Form', 'Session'). - person Khior; 14.10.2012
comment
Мне нужно использовать помощник myCustom во всех представлениях, поэтому я добавил его в appController, но он выдает ошибки, связанные с Auth, есть ли другой способ доступа к пользовательскому помощнику во всех представлениях - person alamnaryab; 11.03.2015