Composer集成

Composer是PHP用来管理依赖关系的工具。你可以在自己的项目中声明所依赖的外部工具库,Composer会帮你安装这些依赖的库文件,我们首先来为框架添加Composer支持,让集成组件变得更简单,鉴于有些朋友比较排斥Composer,觉得很麻烦,我们这里还是啰嗦一下怎么安装,熟悉Composer的朋友可以跳过这部分,在后面的教程中,相信大家都会认同PHP是世界上最好的语言,Composer是PHP最好的依赖管理工具

安装Composer

安装Composer有两种方法,英文能力比较好的朋友可以直接参考Composer官方文档 传送门 或者由 Composer中国全量镜像 提供的 安装教程 都有提供常规安装的方法,在这里就不再赘述,如果使用常规安装方法遇到各种错误的可以尝试下面的方法,首先 点我 下载打包好的Composer.phar

拿到Composer.phar就相当于已经拥有了Composer,不敢相信?搞了这么久还没装好居然这样就可以了?在文件目录下执行一发

  1. $ php composer.phar -v
  2. ______
  3. / ____/___ ____ ___ ____ ____ ________ _____
  4. / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
  5. / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
  6. \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
  7. /_/
  8. Composer version 1.5.2 2017-09-11 16:59:25

看到上面的提示就是局部安装已经成功了,不过此时执行命令还是要进入composer.phar所在的目录中或者把composer.phar放在项目目录下才能执行,略显麻烦,可以参照 Composer中国全量镜像 提供的 安装教程 中全局安装部分的教程进行全局安装

初始化Composer

首先为项目新建一个composer.json文件,也可以执行composer init进行交互式创建,如果不熟悉或者还没来得及深入了解,不要紧,放心大胆一路回车即可

  1. $ composer init
  2. Welcome to the Composer config generator
  3. This command will guide you through creating your composer.json config.
  4. // 指定当前项目的名称(自行填写)
  5. Package name (<vendor>/<name>) [owner/name]:
  6. // 项目描述
  7. Description []:
  8. // 作者信息
  9. Author [evalor <mipone@foxmail.com>, n to skip]:
  10. // 最低稳定版本
  11. Minimum Stability []:
  12. // 项目类型
  13. Package Type (e.g. library, project, metapackage, composer-plugin) []:
  14. // 项目授权协议
  15. License []:
  16. Define your dependencies.
  17. // 是否定义生产环境依赖包(暂不定义输入no并回车)
  18. Would you like to define your dependencies (require) interactively [yes]?
  19. // 是否定义开发环境依赖包(暂不定义输入no并回车)
  20. Would you like to define your dev dependencies (require-dev) interactively [yes]?

项目目录下会生成一个composer.json配置文件,接下来我们进行composer的初始化,执行composer install

  1. $ composer install
  2. Loading composer repositories with package information
  3. Updating dependencies (including require-dev)
  4. Nothing to install or update
  5. Generating autoload files

至此Composer的初始化已经完成,项目目录下生成了vendor文件夹,并且生成了vendor/autoload.php文件

集成Composer

初始化完成后,我们再将Composer集成到框架中,这是非常简单的,只需要编辑你的Conf/Event.php文件,并在框架初始化事件中加入如下代码

注意 AutoLoader 类是 Core\AutoLoader 命名空间下的,请一定记得引入命名空间

  1. use Core\AutoLoader;
  2. // 框架初始化
  3. function frameInitialize()
  4. {
  5. $loader = AutoLoader::getInstance();
  6. $loader->requireFile('vendor/autoload.php');
  7. }

干得漂亮!至此框架已支持Composer加载第三方类库,接下来的教程将开始集成第三方组件