PHP 项目中,通过 Composer 来管理各种依赖包,类似 Java 中的 Maven,或 Node 中的 npm。CodeIgniter 框架要想通过 Composer 自动加载包也很简单,步骤如下:

1. 安装 Composer

参考这里

安装后,记得设置仓库源为国内镜像,否则下载速度太慢。

2. 安装 CodeIgniter

假设项目名为 test,切换到合适目录后,执行命令:

composer create-project codeigniter/framework test

在当前目录下会创建 test 目录,CodeIgniter 项目安装到这个 test 目录下。

3. 安装依赖包

切换到项目根目录,通过 composer require 命令安装所需包:

D:\lihongfeng\workspace\test> composer require lcobucci/jwt
Using version ^3.2 for lcobucci/jwt
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing phpunit/phpunit (5.7.27): Loading from cache
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
phpunit/phpunit suggests installing ext-xdebug (*)
Writing lock file
Generating autoload files

安装后,Composer 会在当前目录中创建 vendor 目录及 composer.lock 文件:

D:\lihongfeng\workspace\jwt> tree .
文件夹 PATH 列表
卷序列号为 00000028 B233:DAE9
D:\LIHONGFENG\WORKSPACE\JWT
│ .editorconfig
│ .gitignore
│ composer.json
│ composer.lock
│ contributing.md
│ index.php
│ license.txt
│ readme.rst
├─.idea
├─application
├─system
└─vendor

其中 vendor 目录结构如下

├─bin
├─composer
├─doctrine
├─lcobucci
│ └─jwt
├─myclabs
│ └─deep-copy
│ ├─doc
│ └─src
│ └─DeepCopy
│ ├─Exception
│ ├─Filter
│ │ └─Doctrine
│ ├─Matcher
│ │ └─Doctrine
│ ├─Reflection
│ ├─TypeFilter
│ │ ├─Date
│ │ └─Spl
│ └─TypeMatcher
├─phpdocumentor
...

4. 设置 CodeIgniter

要想使用 Composer,需要修改 application/config/config.php

$config['composer_autoload'] = 'vendor/autoload.php';

官方建议将 vendor 目录放在 application 目录中,项目迁移时复制整个 application 目录即可,比较方便。这时可以直接将上面的选项设置为 TRUE,CodeIgniter 框架会使用 application/vendor/autoload.php 这个默认路径。

但我们刚才通过 Composer 命令将依赖包安装在了项目根目录下,所以要自行填入路径 vendor/autoload.php

5. 测试能否自动加载安装的包

参考每个包的文档,写几个测试方法即可。

CodeIgniter 技巧 - 通过 Composer 安装 CodeIgniter 框架并安装依赖包的更多相关文章

  1. 怎么安装Scrapy框架以及安装时出现的一系列错误(win7 64位 python3 pycharm)

    因为要学习爬虫,就打算安装Scrapy框架,以下是我安装该模块的步骤,适合于刚入门的小白: 一.打开pycharm,依次点击File---->setting---->Project---- ...

  2. 编译安装php 5.5 缺少依赖包 及解决方案

    必要时可以用 YUM 选择安装以下相关软件包: #yum install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel ...

  3. SAE 安装未包含的第三方依赖包

    如何使用virtualenv管理依赖关系 当你的应用依赖很多第三方包时,可以使用virtualenv来管理并导出这些依赖包,流程如下: 首先,创建一个全新的Python虚拟环境目录ENV,启动虚拟环境 ...

  4. linux:apt-get 如何安装,查询,解除依赖包

    apt-cache search package 搜索包 apt-cache show package 获取包的相关信息,如说明.大小.版本等 sudo apt-get install package ...

  5. ubuntu18.04 下 使用conda安装requirement.txt指定的依赖包

    首先创建特定的虚拟环境 conda create -n temp_test python=3.5 conda install anaconda 切换到该环境 conda activate temp_t ...

  6. linux中用composer安装yii框架

    我的服务器是安装的是lanmp环境 如果环境版本比较低的话,建议升级一下版本 升级版本命令:./lanmp.sh cus 全都选择最高的.完成之后: curl -sS https://getcompo ...

  7. salt源码安装软件和yum安装软件

    上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添 ...

  8. Android 源码编译环境搭建(64位Ubuntu)各种依赖包安装

    1.准备: 普通PC(要求能上网), PC的操作系统Ubuntu 10.04 LTS(64位的),已经下载好的Android 1.6_r1的源代码. 2.Linux的依赖package安装: 为了更快 ...

  9. pip离线安装依赖包

    pip安装离线本地包 导出本地已有的依赖包 pip freeze > requirements.txt 将依赖包下载到本地 # 下载到当前目录,指定pip源 pip download -r re ...

随机推荐

  1. Redis主从同步、哨兵、集群

    什么是主从同步(复制) 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器.前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点 ...

  2. websocket在springboot+vue中的使用

    1.websocket在springboot中的一种实现 在java后台中,websocket是作为一种服务端配置,其配置如下 @Configuration public class WebSocke ...

  3. org.hibernate.hql.ast.QuerySyntaxException: tb_voteoption is not mapped [from tb_voteoption where voteID=?]

    转自:https://www.cnblogs.com/albert1017/archive/2012/08/25/2656873.html org.hibernate.hql.ast.QuerySyn ...

  4. 行人重识别(ReID) ——基于深度学习的行人重识别研究综述

    转自:https://zhuanlan.zhihu.com/p/31921944 前言:行人重识别(Person Re-identification)也称行人再识别,本文简称为ReID,是利用计算机视 ...

  5. VS2012 改C# 模版

    原始文件位置: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplatesCache\CSharp\Co ...

  6. python os 常用命令

    转载:http://www.cnblogs.com/kaituorensheng/archive/2013/03/18/2965766.html python编程时,经常和文件.目录打交道,这是就离不 ...

  7. 四种会话跟踪技术以及jstl介绍

    四种会话跟踪技术 page:代表与一个页面相关的对象和属性.一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示.这既包括 ...

  8. maven 配置发布仓库

    ·首先,在工程的pom.xml中添加仓库信息 <distributionManagement> <repository> <id>releases</id&g ...

  9. Test 6.24 T1 购物

    问题描述 小 C 今天出去购物,商店里总共有 n 种商品,小 C 的钱够买至多 k 个商品. 小 C 对每种商品都有一个喜爱程度,但如果买了同一种商品很多次,小 C 对这种商品的喜爱程度就会降低. 具 ...

  10. rk3328编译Linux固件

    一.编译 Linux 固件 这一章将介绍编译 ROC-RK3328-CC Linux 固件的整个流程. 1.1 准备工作 Linux 固件在如下的环境中编译: Ubuntu 16.04 amd64 安 ...