php调用类的最短版本

php调用类的最短版本,php,oop,backend,Php,Oop,Backend,在PHP中,我看到了很多可以用来在另一个类中调用类的方法,我想听听您对调用类的最短版本的看法 假设我们有一个类名视图, 和另一个类名控制器 class View { private $data = array(); private $render = FALSE; public function __construct($template , $datas = null) { try { $file = strtolower($template) . '.php

在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);

}
}

我知道我可以用

 $view = new View('something');
或者使用OOP和extent并从控制器内部的视图调用函数,如

$this->viewFunction();
但有什么方法可以像这样调用控制器内部的视图类吗

View('something)
我想让它成为最短的版本 如果这是不可能的,或者我必须在编译器内部进行更改,那么请给我最短的版本


谢谢大家

您一定可以在PHP中实现这一点。看看

您只需执行以下操作即可调用它

$view = new View();
$view('my template');

使用这种最短的解决方案,您将解决什么任务?类似于
\uu invoke
?显然不是。使用过多的代码(不需要时使用临时变量)可能是不好的,但有时较短的代码会变得不易理解,更容易出错。@AhmadVahedi IMHO代码长度不太重要,更重要的是代码的可读性,代码应该遵守一些原则,如sell、KISSm-YAGNI等。。。
class View
{
    public function __invoke(string $template)
    {
        return $template;
    }
}
$view = new View();
$view('my template');