php调用类的最短版本
在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
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');