CakePHP应用程序作为移动应用程序的后端

时间:2014-07-10 08:12:58

标签: cakephp cakephp-2.3

我一直在为浏览器开发这个cakePHP应用程序,但现在需要支持一些服务于Android和iOS应用程序的功能,而我却无法获得有关如何使其运行的可靠信息。例如,这是必须支持移动应用程序的功能之一:

function add() {

    if (!empty($this->data) ) {
        $this->Customer->create();
        if ($this->Customer->save($this->data)) {
            $this->Session->setFlash(__('Customer is saved'), 'positive_notification');
            $this->redirect(array('controller'=>'customers', 'action' => 'index'));
        } else {
            $this->Session->setFlash(__('Customer was not saved. Please try again'), 'negative_notification');
        }
    }
}

据我了解,可以通过app从应用程序调用该函数(如果我错了,请纠正我)。但是根据设备的不同,应该给出不同的回报。

或者为不同的客户公开不同的功能会更好吗?

非常欢迎任何帮助,指导或建议。

1 个答案:

答案 0 :(得分:3)

根据您发布的功能:

  • 该功能将根据收到的数据保存客户,并返回响应
  • 您将无法使用$this->redirectsetFlash
  • 您(可能)会返回JSON回复。

该功能可能类似于

public function add() {
     $response = array(
        'status' => false,
        'message' => __('Customer was not saved. Please try again')
    );

    if (!empty($this->data)) {
        $this->Customer->create();
        if ($this->Customer->save($this->data)) {
            $response = array(
               'status' => true,
               'message' => __('Customer is saved')
            );
        }
    }
    $this->set(array(
        'response' => $response ,
        '_serialize' => array('response')
    ));
}

如果您想为网站和API提供相同的CakePHP应用程序,您可以为每个应用程序使用不同的控制器:网站的客户控制器和 适用于API的APICustomer Controller,工作方式不同。

根据您的需要,您还可以拥有两个共享模型的CakePHP应用程序。

关于如何制作由CakePhp提供支持的API,有很多资源,例如this onethis one