如何用composer来构建自己的MVC项目
如何使用composer来构建项目
为什么需要用composer来构建项目呢?
大致有两个方面的原因:
1、解决项目中各代码库之间的依赖关系。
2、使用composer来做自动加载,减少手动require/include。再通过MVC和路由规则,一步一步让我们告别散装代码。提高代码的可读性,方便后期维护。
概述
Composer是PHP的一个依赖管理工具,不是一个包管理器。它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在项目的某个目录中(例如 vendor)进行安装。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。
默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。
下面说明如何使用composer,逐步构建一个基于MVC的简单PHP项目。
1、cd 项目目录,创建composer.json
有两种方式:可以在自己的项目下创建composer.json,以便定义项目的依赖包。也可以通过composer init交互式的创建composer.json。
说明:如果使用composer init,接下来就会自动提示填写项目相关信息,当然每一项都有默认值,不填的话也可以,一路回车即可
最后在项目目录下面会自动生成一个composer.json文件
下面是我使用composer init,一路回车,最后自动生成的composer.json中的内容:
2、执行命令:composer install
composer install : 从当前目录读取 composer.json 文件,处理依赖关系,并把依赖安装到 vendor 目录下。
此时,项目下面,会生成一个vendor文件夹以及composer.lock文件
说明:composer.lock这个文件主要是解决在协同开发中组件及其依赖的版本记录,防止不同人使用的组件及依赖版本不同。
我们看下composer目录中的内容:
3、构建新的项目
接着我们手动创建几个目录,如下图
然后我们再创建两个文件,分别是app/Helpers/functions.php、utils/log.php。
现在有一个问题:app是我们本地自定义的目录,functions.php、log.php这两个文件也是我们自定义的,这些目录和文件并不是在vendor中,那就说明还没用到composer的自动加载。
有没有办法,让这些自定义的目录或者文件也通过composer自动加载进去呢?答案是肯定有的!
按照上面的配置,在composer.json中增加autoload相应的配置
然后,执行命令 composer dump-autoload
看到上面的显示,就表示成功了。凑是这么简单!可能有盆友表示,我这都还没看明白了,就能自动加载进去啦?
下一篇文章《composer源码分析》中,将介绍 composer 是如何实现自动加载功能的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2017-01-13 Yii2 restful api创建,认证授权以及速率控制