我想 扩展 ,而不仅仅是创建我在vendor目录中的类的新实例。我用谷歌搜索并阅读了文档,但我看不到它的支持。
我可以对第三方类进行应用程序导入,然后编写扩展类,然后编写将使用我的子类的组件吗?
即
/* vendors/yahooapi/yahoo.class.php */
class YahooAPI {
var $key = 'demo';
}
/* controllers/components/yahoo.php */
App::import("Vendor", "YahooAPI", array("file"=>"yahooapi.class.php"));
class Yahoov2 extends YahooAPI {
var $key = 'newKey';
function go() {}
}
YahooComponent extends Object {
function goFaster() {
$a = new Yahoov2;
return $a->go() * 2;
}
}
答案 0 :(得分:1)
基本上,我会告诉你我该怎么做(至少我在一些项目中做过):
1添加您的供应商供应商/ yahooapi / yahoo.class.php,就像您一样
2在供应商/ yahooapi内部创建一个文件,或在供应商/外部创建一个文件,这将扩展原始的供应商类别,比如供应商/ yahoov2.php 即
include_once('.../vendors/yahooapi/yahoo.class.php');
class Yahoov2 extends YahooAPI {
var $key = 'newKey';
function go() {}
}
3最后,在您的扩展程序中包含扩展名,就像在控制器中一样。
我相信直接扩展控制器中的课程也可以完成这项工作,但这确实是一个品味问题。