使用插件中的组件和调用方法

Aut*_*cus 0 cakephp cakephp-1.3

我是新蛋糕php,我的应用程序中有一个插件文件夹

app/plugins
Run Code Online (Sandbox Code Playgroud)

在插件文件夹中我有模型和供应商文件夹.(注意我没有任何视图或控制器文件夹)

app/plugins/model
app/plugins/vendors
Run Code Online (Sandbox Code Playgroud)

我想在插件文件夹中添加一个组件,所以我将控制器文件夹添加到其中并将组件文件放在那里.

app/plugins/controllers
app/plugins/controllers/myComp.php
Run Code Online (Sandbox Code Playgroud)

myComp.php中的方法是

class myCompComponent extends EmailComponent    {

    function hilpot() {
Run Code Online (Sandbox Code Playgroud)

在我的vendors/shells/tasks文件夹中,我有一个名为my_test.php的文件

在文件中,我已经包含了类似的组件

var $components = array('myComp');
Run Code Online (Sandbox Code Playgroud)

在同一个文件中,我有一个假设调用myComp方法的方法

function _Maikle()
    {

            $this->myComp->hilpot() = array(

 ...................
..................
Run Code Online (Sandbox Code Playgroud)

此时它失败并出现以下错误

PHP Fatal error:  Call to undefined method stdClass::hilpot() in C:\wamp\www\folder\app\plugins\vendors\shells\my_test.php on line 87
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激

mar*_*ark 5

你的插件结构似乎不正确

/app/plugins/plugin_name/controllers/... etc
Run Code Online (Sandbox Code Playgroud)

你可能根本没读过这本食谱.否则你会注意到这个以及组件在子目录中:

/app/plugins/plugin_name/controllers/components/...
Run Code Online (Sandbox Code Playgroud)

另请注意,您应始终包含pluginname:

var $components = array('PluginName.MyComp');
Run Code Online (Sandbox Code Playgroud)

和m应该大写:MyComp