Переопределить представление JSON в RequestHandler в CakeStack Overflow

Я хочу переписать JSON View в RequestHandler. Так что есть файл project_root/lib/JsonView.php, Что я хочу сделать, это

  • Импортировать JsonView.php файл в другом файле в project_root/app/View/CustomJsonView.php, (Я думаю, что я мог бы использовать App:importбыло бы правильно?)
  • Выберите этот файл как пользовательский в requestHandler следующим образом:

    public $ components = array (
    ‘RequestHandler’ => массив (
    ‘viewClassMap’ => array (
    ‘json’ => ‘/ right / way / to / this / file / CustomJsonView’,
    )
    ));

Но как мне написать правильный путь для этого файла?
Я тоже видел этот https://book.cakephp.org/2.0/en/core-libraries/components/request-handling.html#RequestHandlerComponent::viewClassMap
но нет никакого объяснения о правильных путях к файлу. Моя версия CakePHP — 2.4.4.

2

Решение

Вы не должны передавать полные пути, но «короткие имена классов», как показано в связанном примере, где ApiKit.MyJson относится к MyJsonView посмотреть класс в ApiKit плагин, который может быть расположен в app/Plugin/ApiKit/View/MyJsonView.php,

Если вы будете следовать правилам и CustomJsonView класс в app/View/CustomJsonView.php как показано в документах, Вы тогда просто проходите CustomJson как короткое имя класса в обработчиках запросов viewClassMap вариант.

Используете ли вы App::import() или просто require включить /lib/JsonView.php файл, зависит от вас, оба работают. В любом случае вы должны убедиться, что все, что вы импортируете, не конфликтует с существующими именами классов (JsonView является своего рода зарезервированным именем, так как оно уже существует в ядре) и что оно либо следует соглашениям об именах классов представления CakePHP, либо вы должны расширить его.

Смотрите также

1

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

Других решений пока нет …

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