使用现有CodeIgniter应用程序中的Laravel服务


Consume Laravel service from existing CodeIgniter app

我有以下问题:

我有一个用CodeIgniter构建的现有web应用程序,它运行良好。还有一些新功能有待开发,其中一些与电子邮件和通知有关。我曾与Laravel合作过,它是我选择的新应用程序框架。

所以,我想的是。。。也许我可以用Laravel设置一个服务,处理电子邮件队列和通知,也许可以设置事件,但如何使用CodeIgniter的服务??这就是问题所在。

此外,这是一个好方法吗?能做到吗?有什么建议吗?

谢谢

您可以使用Laravel应用程序制作一个简单的API来接收电子邮件、排队并发送电子邮件。我个人不会这么做。由于您无论如何都必须从Codeigniter进行API调用,我只需要使用这样的服务https://www.mailgun.com/(或许多其他类似服务之一)并完全跳过Laravel。

您可以在CI中使用类似Guzzle的东西来向Laravel发出POST请求。

use GuzzleHttp'Client;
use GuzzleHttp'Message'Request;
use GuzzleHttp'Message'Response;
$client = new Client();
$response = $client->post("http://api.yourlaravel.app/sendemail", [
//Change POST request info here to be your email data
    'headers' => ['X-Foo' => 'Bar'],
    'body'    => ['field_name' => 'value']
]);
var_dump($response->getStatusCode()); //verify the POST request returned ok

有几个关于用Laravel编写API的教程,包括我强烈推荐的关于Laracast的系列教程。他们将向您展示如何在Laravel中接收此POST请求。