0

如何将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'));

如果我走在正确的轨道上,请告诉我。谢谢。

4

1 回答 1

3

是的,你在正确的轨道上。但是您不需要创建 CI 库。在控制器中使用Mailjet存储库库。只需使用 CI docs中所述的作曲家。

如果您希望 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(或任何其他)存储库,请查看文档如何创建自定义库并将上面的代码与其合并。就我个人而言,我以这种方式使用存储库来避免不必要地加载和解析足够的库。

于 2016-08-07T15:20:18.913 回答