【发布时间】:2023-03-26 17:06:01
【问题描述】:
我看到了很多方法可以用来在 PHP 中调用另一个类中的类,我希望您对调用类的最短版本有意见。
假设我们有一个类名视图, 和另一个类名控制器
class View
{
private $data = array();
private $render = FALSE;
public function __construct($template , $datas = null)
{
try {
$file = strtolower($template) . '.php';
if (file_exists($file)) {
if($datas > 0) {
foreach($datas as $data) {
array_push($this->data, $data);
}
}
$this->render = $file;
} else {
die('Template ' . $template . ' not found!');
}
}
catch (customException $e) {
echo $e->errorMessage();
}
}
public function __destruct()
{
extract($this->data);
include($this->render);
}
}
和
require_once "system/autoload.php";
class Controller {
function index() {
$view = new View('something');
}
我知道我可以使用
$view = new View('something');
或使用 OOP 和范围并从控制器内部的视图中调用函数,例如
$this->viewFunction();
但是有什么方法可以像这样在控制器内部调用视图类
View('something)
我想让它尽可能短 如果不可能,或者我必须在编译器内部进行更改,只需给我最短的版本
谢谢大家
【问题讨论】:
-
用这个最短的解决方案你会解决什么任务?
-
类似于
__invoke的东西? -
显然不是..
-
拥有过多的代码(不需要时的临时变量)可能很糟糕,但有时较短的代码变得难以理解并且更容易出错。
-
@AhmadVahedi 恕我直言,代码长度并不重要,更重要的是代码的可读性以及代码应遵守一些原则,例如 SOLD、KISSm YAGNI 等...