Я хочу переписать 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.
Вы не должны передавать полные пути, но «короткие имена классов», как показано в связанном примере, где 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, либо вы должны расширить его.
Смотрите также
Других решений пока нет …