codeigniter3集成composer管理工具,比较优雅的做法

AlgoPulseMaster
• 阅读 5323

前言,希望codeigniter4早点发布吧,目前还有项目用的codeigniter3,想用github上那么多优秀的第三方库,曾怎么办呢?而且这些库基本都是通过composer安装的,下面介绍集成composer包管理器方法:

1、安装composer,这点不赘述了。

2、项目根目录新建composer.json文件,比如我现在ci中要使用一个jwt库

{
  "require": {
    "firebase/php-jwt": "*"
  }
}

3、该目录下命令行执行:composer install
或者上面2个步骤,简化成下面这步也可以
composer require firebase/php-jwt

4、下面开始正式集成到ci,这里有2个方法:

方法一:简单粗暴的(不推荐)

require_once './vendor/autoload.php';
//上面这一行添加到index.php的这个位置
require_once BASEPATH.'core/CodeIgniter.php';

方法二:优雅的(推荐)
application/libraries新建MY_Composer.php

<?php
/**
 * 关于MY_Composer的注释
 *
 * @author 新猪
 */
class MY_Composer 
{
    function __construct() 
    {
        include("./vendor/autoload.php");
    }
}

然后在config/autoload.php修改

$autoload['libraries'] = array('MY_Composer','database','session');

5、使用

<?php
use \Firebase\JWT\JWT;

class TestController extends CI_Controller {
    public function index() {
        $key = "example_key";
        $token = array(
            "iss" => "http://example.org",
            "aud" => "http://example.com",
            "iat" => 1356999524,
            "nbf" => 1357000000
        );
        $jwt = JWT::encode($token, $key);
        $decoded = JWT::decode($jwt, $key, array('HS256'));

        print_r($decoded);
    }
}

完毕,希望对大家有所帮助。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
java中比较两个时间的差值
项目背景1.某篇文稿的发布时间是publishDate,例如:2020072118:00:41。2.现要求判断该篇文稿的发布时间是否在近30天之内。publicstaticlongdayDiff(DatecurrentDate,DatepublishDate){LongcurrentTimecurrentDat
Stella981 Stella981
3年前
Linux安装Composer
Composer是php的一个包管理器,使用Composer能极大的提高我们的代码效率。当我们需要使用优雅的laraverl框架时我们一定不能绕过Composer当然Composer不是只为laravel服务的,他是为整个php服务的。(Composer需要php5.3.2以上才能运行)1.下载Composer包curl
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
Codeigniter composer 和 __autoload魔术方法冲突解决
_废话不多说了,直接看源代码把_CI首先加载的是system/core/Codeigniter.php阅读发现(165行):if($composer_autoloadconfig_item('composer_autoload')){if($composer_autoloadTRUE)
Stella981 Stella981
3年前
Composer使用
提示:不要忘了经常执行composerselfupdate以保持composer一直是最新版本哦!PHP版本必须是5.4已上版本phpv检测当前php版本linux安装:局部安装1\.进入到自己项目目录:如 cd/home/www/2\.要真正获取Composer,我们需要做两件事。首先安装Compose
Stella981 Stella981
3年前
CodeIgniter学习笔记一:基本结构、控制器、视图、超级对象、数据库
一、基本结构CodeIgniter3.0.0解压后有8个文件,分别是:application:项目文件system:系统(框架)文件,为方便升级,不建议修改user\_guid:用户手册,不需要加入项目composer.json:composer配置文件,不需要加入项目contributi