一尘不染

将Mailjet API v3包装器集成为Codeigniter库

php

如何将Mailjet API PHP包装器作为库集成到我的Codeigniter安装中?

是否简单地将存储库中的内容放入其中application/libraries/Mailjet,然后创建一个用于初始化Mailjet
Mailjet.php文件,application/libraries如下所示?

require 'Mailjet/vendor/autoload.php';

use \Mailjet\Resources;

$mj = new \Mailjet\Client(getenv('MJ_APIKEY_PUBLIC'), getenv('MJ_APIKEY_PRIVATE'));

如果我走的路正确,请告诉我。谢谢。


阅读 320

收藏
2020-05-29

共1个答案

一尘不染

是的,您步入正轨。但是您不需要创建CI库。Mailjet还要在控制器中使用存储库。只需使用CI
文档中所述的作曲器即可。

如果要让CodeIgniter使用Composer自动加载器,只需将$ config
[‘composer_autoload’]设置为TRUE或在application / config / config.php中设置自定义路径。

在CodeIgniter中使用github存储库的分步说明

  1. 设置$config['composer_autoload'] = TRUE;APPPATH.'config/config.php' 文件中
  2. composer.json包含所需存储库/项目的文件放入APPPATH位置
  3. 做这项工作composer install,通过控制台这将使命令vendor和其他相关文件和文件夹内
  4. 如以下示例所示,在控制器或其他代码中需要时使用它

示例控制器Mailman.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');

use \Mailjet\Resources;

class Mailman extends CI_Controller
{
    private $apikey = 'apy__key__here';
    private $secretkey = 'apy__secret__here';

    protected $mj = NULL;

    public function __construct()
    {
        // $this->mj variable is becoming available to controller's methods
        $this->mj = new \Mailjet\Client($this->apikey, $this->apisecret);
    }

    public function index()
    {
        $response = $this->mj->get(Resources::$Contact);

        /*
         * Read the response
         */
        if ($response->success())
            var_dump($response->getData());
        else
            var_dump($response->getStatus());
    }
}

如果您明确希望通过CI库使用Mailjet(或任何其他)存储库,请在docs中查看如何创建自定义库并将上面的代码与其合并。就个人而言,我以这种方式使用存储库,以避免不必要地加载和解析足够的库。

2020-05-29