我正在用 PHP 编写某种应用程序,开发人员可以在其中编写自己的插件。就目前而言,每个插件构造函数对象$project
都作为参数传递(当然是通过引用)。例如新插件如下所示:
<?php
namespace Plugins;
class newPlugin {
private $project;
public function __construct(\Project $project) {
$this->project = $project;
}
public function Something() {
echo $this->project->template->name();
}
}
?>
我正在重写它,所以每个新插件都扩展了“标准”插件。在这种情况下,我可以制作一个标准的构造函数,它保存$project
在本地传递为$this->project
,并且开发人员可以编写更少的内容。但是,每个开发人员都必须记住,有类似 $this->project...
例如:
<?php
namespace Plugins;
class newPlugin extends Plugin { // constructor is now in plugin class
public function Something() {
echo $this->project->template->name();
// where should the developer know from that $this->project exists?
}
}
?>
我可以以某种方式使符号更容易吗?缩写$this->project
?我想在 parent 中创建一个方法 project() 将返回$this->project
。在这种情况下只能project()->template->name();
使用。但这……根本不是我认为的最好的。
我希望我的问题中的一切都清楚,如果没有,请在评论中提问。我搜索了可能的答案,但一无所获。
PHP“使用”很棒,但仅适用于命名空间......
BTW,下面还有很多很多其他变量$this->project available
,但开头$this->project
总是一样的。例如:$this->project->template->name(); $this->project->router->url(); $this->project->page->title();
etc... 这个命名标准是强加的,所以没有办法改变它。
$this->project
但是,当您每次需要从某个地方获取一个简单变量时都必须编写时,这真的很烦人。
谢谢你的帮助。