Php RMR体系结构-在哪一点加载表示和头是有意义的?

Php RMR体系结构-在哪一点加载表示和头是有意义的?,php,Php,我目前正在开发一个开源RMR框架。此时,在资源本身中加载并解析资源表示,如下面的示例所示(这是在抽象级别,一些部分被删去以缩短本文): 所以我的问题是让资源处理加载自身的表示,然后再加载表示设置响应头和响应体,这有意义吗 你推荐的方法是什么 将其留给一个RepresentationResolver,它根据请求、响应和资源进行操作。保持班级小而清晰 interface RepresentationResolver { /** * @return Representation

我目前正在开发一个开源RMR框架。此时,在资源本身中加载并解析资源表示,如下面的示例所示(这是在抽象级别,一些部分被删去以缩短本文):

所以我的问题是让资源处理加载自身的表示,然后再加载表示设置响应头和响应体,这有意义吗


你推荐的方法是什么

将其留给一个
RepresentationResolver
,它根据请求、响应和资源进行操作。保持班级小而清晰

interface RepresentationResolver
{
    /**
     * @return Representation
     */
    public function resolve();
}

class DataRepresentationResolver implements RepresentationResolver
{
    public function __construct(your arguments)
    {

    }
    public function resolve()
    {
        ...
        $representation = $this->getRepresentation($this->data);
    }
}
然后在编译响应时:

$resolver = new DataRepresentationResolver(your arguments);
$representation = $resolver->resolve();
$representation->parse($response, $data);

然后,您可以编写您认为合适的任何类型或
RepresentationResolver
,甚至是此类类型的系列,例如,使用特定的请求类型或指定的特定类型的媒体类型(例如,通过mime类型)。

将其留给根据请求、响应和资源进行操作的
RepresentationResolver
。保持班级小而清晰

interface RepresentationResolver
{
    /**
     * @return Representation
     */
    public function resolve();
}

class DataRepresentationResolver implements RepresentationResolver
{
    public function __construct(your arguments)
    {

    }
    public function resolve()
    {
        ...
        $representation = $this->getRepresentation($this->data);
    }
}
然后在编译响应时:

$resolver = new DataRepresentationResolver(your arguments);
$representation = $resolver->resolve();
$representation->parse($response, $data);

然后,您可以对您认为合适的任何类型或
RepresentationResolver
进行编码,即使是此类类型的系列,例如,使用特定的请求类型或指定的特定类型的媒体类型(例如,通过mime类型)。

可能是坏的,也可能是好的。从你提供的信息很难判断。也许您想提供多种抽象,以便两者都可以在框架中完成?是的,一个资源有多种表示形式,最合适的表示形式是基于HTTP accept头加载的。为了澄清资源本身加载表示或将其留给路由器、请求或引导是否更有意义?将其留给
RepresentationResolver
处理
request
Response
resource
represponse。保持课堂小而清晰。啊,我真不敢相信我没有想到这样的事情。如果你能提供你的评论作为一个小例子的实际答案,我可以投票并将你的标记为解决方案。非常感谢!:)可以是坏的,也可以是好的。从你提供的信息很难判断。也许您想提供多种抽象,以便两者都可以在框架中完成?是的,一个资源有多种表示形式,最合适的表示形式是基于HTTP accept头加载的。为了澄清资源本身加载表示或将其留给路由器、请求或引导是否更有意义?将其留给
RepresentationResolver
处理
request
Response
resource
represponse。保持课堂小而清晰。啊,我真不敢相信我没有想到这样的事情。如果你能提供你的评论作为一个小例子的实际答案,我可以投票并将你的标记为解决方案。非常感谢!:)相关的