2013-01-02 85 views
0

在同一台服务器上,我有一个Restler 3.0 API服务器和一个CakePHP 2.3应用程序,我希望能够使用Restler应用程序中的CakePHP控制器功能。当然,我不希望CakePHP做任何渲染,只是为了处理数据。将CakePHP应用程序与第三方API框架集成的最佳方式是什么?

我认为只是从Restler api对CakePHP应用程序执行https请求,但对于Restler服务器的客户端来说,这看起来相当低效。我也考虑过使用RabbitMQ在应用程序之间进行RPC,但是RPC中的RPC似乎太复杂了,我试图保持简单。

理想的情况下Restler我可能有这样的事情:

<?php 
class Content { 
    function post() { 
     // CakePHP stuff: 
     $data = array('title'=>'fake data'); 
     $this->Content->create(); 
     if ($this->Content->save($data)) { 
      return 'ok'; 
     } 
    } 
} 

我对实现这一融合的最佳途径什么好的想法完全开放。

+0

蛋糕不是用来作为lib的。它是一个完整的堆栈框架。通常情况下,你在蛋糕中使用其他库,而不是相反。 – dogmatic69

+0

这是有道理的,那么集成两个框架的最佳方式是什么?消息队列是否是正确的方法? – user698883

回答

0

这是否可能取决于您的环境的性质。

注意事项:

  1. 请问您的控制器使用的其他蛋糕框架组件(控制器,模型,组件等)?如果是这样的话,你可能会受到影响,因为蛋糕是面向会议的。没有蛋糕管道来解释这些公约,它们是没有意义的。

如果你只需要重新调整一些非特异性的蛋糕PHP逻辑你总是可以重构它变成自己的PHP类,甚至只是在它的一些功能的PHP文件和你的Restler应用程序之间共享您的蛋糕应用。

+0

是的,这是一个相当复杂的应用程序,所以不幸地使用几乎所有的蛋糕组件。 我试图用Cake自定义应用程序\ webroot \ index.php文件删除调度程序,并直接调用控制器方法 - 虽然这从一个test.php文件工作,试图从Restler类内我跑成为范围问题的负荷。 – user698883

+0

这就是问题所在。拥有一个集中式调度程序可以让蛋糕装饰执行上下文,赋予'$ uses'约定等含义。它不像调整控制器的行为那么简单。您是否考虑过将Cake应用程序的行为暴露为Restful URI本身?消费者会不知道他们的请求被导向到哪个服务器。这可能是一个很好的制止差距。 – nsfyn55

相关问题