我认为我对 Python 和 PHP 等几种语言中的 OOP 基础知识非常熟悉,但在试图弄清楚 CakePHP 在某些情况下发生的事情时我有点困惑。
例如,我在一个名为 TestsController 的控制器中,但我想从另一个控制器(例如 OthersController)中查找数据。我会做这样的事情
$this->loadmodel('Other');
$this->Other->find('all');
我知道 $this 是对你所在类的对象的引用,而 Other 显然是指 OthersController,但究竟什么是 Other?它是某种初始化变量吗?一个东西?还有什么?$this->Other 本身会变成一个对象吗?如果是这样,PHP/CakePHP 是如何做到这一点的,或者它只是 PHP 固有的东西,它只是“知道”这样做。
我发现了这个叫做方法链接的例子,但它看起来像是使用一个对象来调用许多动作。
<?php
class MyClass{
public $prop1 = "I'm a class property!";
}
$obj = new MyClass;
echo $obj->prop1; // Output the property
?>
我了解 $obj 您正在访问 $prop1,但是当有 $obj->SomeModel->action() 之类的东西时,CakePHP 中发生了什么?
如果可能,您能否修改那个小的 OOP 示例以模仿 CakePHP 的示例?