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

时间:2016-08-07 12:09:53

标签: php codeigniter mailjet

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

the repository的内容放入application/libraries/Mailjet,然后在Mailjet.php中创建一个application/libraries文件来初始化Mailjet,就像下面显示的那样简单吗?

require 'Mailjet/vendor/autoload.php';

use \Mailjet\Resources;

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

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

1 个答案:

答案 0 :(得分:3)

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

  

如果您希望CodeIgniter使用Composer自动加载器,只需将$ config ['composer_autoload']设置为TRUE或将application / config / config.php中的自定义路径设置为。

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

  1. $config['composer_autoload'] = TRUE; file
  2. 中设置APPPATH.'config/config.php'
  3. composer.json文件包含在APPPATH位置
  4. 中的所需存储库/项目中
  5. 通过控制台使用composer install命令执行该作业,这将使vendor及其他相关文件和文件夹在
  6. 在需要时在控制器或其他代码中使用它,如下面的示例所示
  7. 示例控制器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如何创建自定义库并将上面的代码与其合并。 Personaly我以这种方式使用存储库以避免不必要地加载和解析足够的库。