Post 内部数据发布[Kohana 3.1]

Post 内部数据发布[Kohana 3.1],post,request,kohana,internal,Post,Request,Kohana,Internal,在Kohana 3.1.x框架中 通过这样的内部请求发送数据有什么好处 $post = Request::factory('module/data') ->method(Request::POST) ->post(array('some' => 'random data')) ->execute() ->response; Module::instance()->data(array('some

在Kohana 3.1.x框架中

通过这样的内部请求发送数据有什么好处

$post = Request::factory('module/data')
        ->method(Request::POST)
        ->post(array('some' => 'random data'))
        ->execute()
        ->response;
Module::instance()->data(array('some' => 'random data'));
如果你能简单地发送这样的数据

$post = Request::factory('module/data')
        ->method(Request::POST)
        ->post(array('some' => 'random data'))
        ->execute()
        ->response;
Module::instance()->data(array('some' => 'random data'));
在本例中,
模块
是一个随机模块,
数据
是一些随机方法

我将通过ajax和内部请求调用这个
模块。我计划设计RESTful API

问题是:为什么要使用HMVC而不是直接使用内部类API呢?因为它们是内部请求,所以没有额外的HTTP请求

您可能希望查看请求\客户端\内部,并将其与请求\客户端\外部进行比较。在那之后,你应该感到开悟:)

编辑:


您应该知道AJAX请求不是唯一的“外部HTTP请求”。cURL、PECL HTTP、file_get_contents()和其他PHP函数也将发送一个外部HTTP请求(您应该阅读RFC 2616以了解HTTP的实际工作原理)。

通过HMVC调用,您可以对Ajax和内部请求使用相同的控制器。此外,它还可以处理标准(非ajax)http请求,例如表单提交。一体化解决方案,单一入口点


如果您不需要HMVC调用,您将需要一个内部请求调用(在基本控制器中的某个位置),另一个调用-在一个特殊的Ajax控制器中。此外,您可能在数据呈现方面有问题(通常HMVC和ajax调用使用不同的模板)。它还没干。

我会对上面比卡维隆说的话发表评论,但我还不能,所以我把它作为一个答案。 @stacknoob:您可以使用
Module::instance()->数据(数组(…)
作为控制器的操作吗?你可以-用一些额外的代码。
相反,正如biakaveron所说的,您可以保留代码逻辑,并让操作为AJAXHMVC请求返回相同的结果。在一个地方。DRY+KISS。

我的两个示例不是都是没有额外HTTP请求的内部请求吗?当然,通过Ajax会有额外的HTTP请求。Module::instance()是。。。什么?不是
Module::instance()->数据(数组(…)也是内部请求?这是一个很好的添加!谢谢我终于明白了区别。另外,我想指出的是,使用HMVC时会有开销。也许这个链接有帮助-