cakePHP类构造函数

cakePHP类构造函数,php,cakephp,Php,Cakephp,在普通PHP中,您可以执行以下操作: Class Test { function __construct($var) { echo $var; exit; } } new Test('Hello World'); 因此,您可以直接将变量传递给构造函数。这在cakePHP中似乎不起作用,尽管变量没有传递给它。iv能够做到这一点的唯一方法是执行以下操作: (组件类) (控制员) 有没有更好的方法可以像第一种方法那样,不必直接调用函数名?这是因为当您在控制器中包含带

在普通PHP中,您可以执行以下操作:

Class Test {
    function __construct($var) {
        echo $var; exit;
    }
}

new Test('Hello World');
因此,您可以直接将变量传递给构造函数。这在cakePHP中似乎不起作用,尽管变量没有传递给它。iv能够做到这一点的唯一方法是执行以下操作:

(组件类)

(控制员)


有没有更好的方法可以像第一种方法那样,不必直接调用函数名?

这是因为当您在控制器中包含带有变量$components的组件时,它已经创建了TestComponent类的实例,而您不必自己创建实例


但毕竟CakePHP是php,您始终可以创建一个类,并将其包含在控制器中并使用构造函数。

对于组件,您实际在哪里编写新的TestComponent($args)?
你没有。您只需将Cake配置为使用组件,Cake就会为您实例化它。
你从来没有亲自调用构造函数

将参数传递给组件的方法是通过
初始化
方法:

class TestComponent extends Object {
    public function initialize(&$controller, $settings = array()) {
        // use $settings
    }
}

class MyController extends AppController {
    public $components = array('Test' => array(/* your settings */));
}
请参阅。

似乎输入错误
构造($var)
缺少
\uuuuuu
,更改为
\uuu构造($var)
new $this->Test->construct('Hello World');
class TestComponent extends Object {
    public function initialize(&$controller, $settings = array()) {
        // use $settings
    }
}

class MyController extends AppController {
    public $components = array('Test' => array(/* your settings */));
}