我想在RequestHandler中重写JSON View。所以有一个文件project_root/lib/JsonView.php
。我想做的是
JsonView.php
文件导入project_root/app/View/CustomJsonView.php
中的其他文件。 (我想我可以使用App:import
,它会是正确的吗?)在requestHandler中选择此文件作为自定义,如下所示:
public $ components = array( ' RequestHandler' =>阵列( ' viewClassMap' =>阵列( ' JSON' => ' /右/方法/到/该/文件/ CustomJsonView&#39 ;, ) ));
但是我如何为这个文件写出正确的方法呢? 我也看到了这一个https://book.cakephp.org/2.0/en/core-libraries/components/request-handling.html#RequestHandlerComponent::viewClassMap 但是没有关于文件正确路径的解释。我的CakePHP版本是2.4.4。
答案 0 :(得分:1)
您不应该传递完整路径,而应该传递“短类名”,就像链接示例中所示,ApiKit.MyJson
引用MyJsonView
插件中的ApiKit
视图类,可以位于app/Plugin/ApiKit/View/MyJsonView.php
。
如果您遵循惯例并将CustomJsonView
课程放在app/View/CustomJsonView.php
as shown in the docs中,那么您只需将CustomJson
作为短名称传递给请求处理程序{{1}选项。
无论您使用viewClassMap
还是只使用App::import()
来包含require
文件,都取决于您,两者都有效。无论如何,你必须确保你导入的任何内容都不会与现有的类名冲突(/lib/JsonView.php
是一个保留名称,因为它已存在于核心中),并且它要么遵循CakePHP视图类命名约定,或者必须扩展它。
另见