#cakephp-3.7
#cakephp-3.7
Вопрос:
Я пытаюсь расширить FormHelper, чтобы включить некоторые пользовательские элементы управления. Я хочу сделать это как часть плагина. Документация немного схематична о том, как этого добиться.
Я создал желаемый помощник в следующей структуре папок:
pluginsMyPluginsrcViewHelperMyFormHelper
Помощник выглядит следующим образом:
<?php
use CakeViewHelperFormHelper as BaseFormHelper;
class MyFormHelper extends BaseFormHelper
{
}
… да, пока он пуст. Документы о плагинах немного расплывчаты, но, похоже, говорится, что можно загрузить этот помощник следующим образом в основном AppView.php::initialise()
методе приложения:
$this->loadHelper('MyPlugin.MyFormHelper');
Однако это не работает. Делая это таким образом, я получаю ФАТАЛЬНУЮ ошибку:
Fatal error: Cannot declare class MyFormHelper, because the name is already in use in /Users/geoidesic/MyApp/plugins/MyPlugin/src/View/Helper/MyFormHelper.php on line 12
Тогда вопрос в том, как использовать этот помощник плагина? В частности, я хотел бы переопределить FormHelper по умолчанию для приложения. Есть className
вариант loadHelper
, но я не могу найти способ заставить это работать и с помощником плагина.
Ответ №1:
Мне не хватало пространства имен для помощника. Должно быть так:
<?php
namespace MyPluginViewHelper
use CakeViewHelperFormHelper as BaseFormHelper;
class MyFormHelper extends BaseFormHelper
{
}