一些经常需要的数据的静态上下文?最佳实践?

时间:2014-06-27 03:30:29

标签: php oop static coding-style

我用PHP编写了一些Web框架。我被建议在静态上下文中什么都不做。但我对此有一些疑问。

想象一下以下的课程:

class Image extends HtmlControl {
    public $src;
    public $alt;
    function getDetailPath()
    {
        return 'Common/Image';
    }
}

没什么特别的。它是一个用Html渲染图像的类。我的基类有以下实施:

abstract class HtmlControl {
    private $template;

    abstract function getDetailPath();

    public function __construct(ViewInformation $viewInformation) {
        $this->template = 'foo/bar/' . $viewInformation->getEndpoint() . '/' . $this->getDetailPath() . '.php';
    }

    public function render() {
        $output = '';
        //Load template end fill $output
        return $output;
    }
}

也没什么特别的。它基本上将端点类型(类似前端或后端)解析为相应的模板文件,并提供方法渲染以获取输出。

问题是,我每次都需要为html控件的每个部分提供$viewInformation参数。

$img = new Image($this->_info);

在我看来,这样的事情会更好:

$img = new Image();

所以我必须在静态Context中保存应该使用Endpoint的State。这样的事情(注意Request::getEndpoint()部分):

abstract class HtmlControl {
    private $template;
    abstract function getDetailPath();

    public function render() {
        $template =  'foo/bar/' . Request::getEndpoint() . '/' . $this->getDetailPath() . '.php';
        $output = '';
        //Load template end fill $output
        return $output;
    }
}

我的问题:在这种情况下,将端点置于静态上下文中是否正常?如果没有,我当前的实施能否得到改善?

0 个答案:

没有答案