多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
require 版本 ~~~ 使用 ~ 约束符锁定小版本的方式 ~1.1.15 是指>= 1.1.15 并且 < 1.2.0的版本 ~1.1 表示可以为 大于等于 1.1 的任何版本,比如 1.1.0、1.2.0、1.3.5 、1.99.9999、 1.9999.999999 都可以安装,但是不能安装 2.0.0, 使用^ 锁定不允许变的第一位,即大版本不能变。 ^1.2 表示任意大于等于 1.2 的 1.x.x 版本,但是小于2.xx。比如 1.2.0、1.2.1、1.3.0、1.9.99999 等。只要前面的 1 并且大于 ^ 后面指定的 1.2 都满足条件。 使用>=锁定版本范围 有时候我们的使用场景要求只能安装某些版本范围内的时候,可以使用 >、<、>=、<=、| 这些符号来组合,比如:>= 1.3 <1.6、>=1.3 | >=1.7 、3.0|4.0 等。这样的使用场景并不多,根据你的情况来调整用法就好。如果在composer中有多个条件可以使用,隔开,相当于and 例如 >1.3,即只要比1.3版本大即可,如1.4,1.4.9 ,2.0,3.0,4.9.1等 = 使用具体版本号 使用 =1.2.34 或者 1.2.34 都是指定了具体的版本号, composer 不会考虑检查新版本来安装。 ~~~ ## **检查是否安装** ``` composer --version ``` ## **window下安装** **下载[Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe) 安装并配置path变量(他会自动找到php.exe的目录)** >[info]第二种方法:命令行安装方式参考[我的博客](https://www.cnblogs.com/lichihua/p/8207799.html) ## **linux下安装composer** **1、下载** ~~~ curl -sS https://getcomposer.org/installer | php ~~~ **2、设置全局** 即将下载的composer文件放置在php执行文件的目录里 ~~~ mv composer.phar /usr/local/bin/composer #注意我这里没有将php安装在 /usr/local/bin/而是/usr/local/php/bin/,所以加个链接到php安装目录 ln -s /usr/local/php/bin/php /usr/local/bin/php ~~~ 或者 ``` mv composer.phar /usr/local/php/bin/composer ``` **3、配置composer国内镜像源** 查看composer的全局配置文件: ~~~ composer config -l -g ~~~ 设置全局配置文件 ``` composer config -g repo.packagist composer https://packagist.phpcomposer.com ``` ~~~ 注意:如果是root用户,会出现 Do not run Composer as root/super user! See https://getcomposer.org/root for details 这个是因为composer为了防止非法脚本在root下执行,解决办法随便切换到非root用户即可 // 查看有哪些用户 cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more // 切换用户 su www 再执行 composer config -g repo.packagist composer https://packagist.phpcomposer.com 就行了 ~~~ ## **composer 自身的更新:** `composer self-update` ## **初始化composer** ~~~bash $ composer init Welcome to the Composer config generator This command will guide you through creating your composer.json config. # 包的名字 vendor代表生产商,也是识别包的标识 # 包的名字, 当报名相同时,通过vendor来区分 # 系统会默认获取当前登录的用户来做vendor,所在文件夹做包的名字 Package name (<vendor>/<name>) [zxc/frame]: zxc/frame # 这个是对包的描述 Description []: 这个是包的描述 # 这个是作者的个人信息, 使用git时设置的user.name 和user.email # 如果没有设置的话,会使用系统给默认的用户名和邮箱 Author [, n to skip]: 张三 <zxc_1234@123.com> # 版本 dev, alpha, rc, stable, beta Minimum Stability []: dev # 类型 Package Type (e.g. library, project, metapackage, composer-plugin) []: library # 许可协议 License []: Define your dependencies. # 这个是在需要使用到的依赖(这里直接选no比较好,反正你也记不住包名,还不如生成composer文件爱你后手动添加) Would you like to define your dependencies (require) interactively [yes]? yes # 这里会根据你输入的关键字对包进行搜索 Search for a package: dump #这里会有其他的操作, 自己实验一下哦 # 安装开发扩展, 这个在项目部署的时候不安装不会影响项目的运行 Would you like to define your dev dependencies (require-dev) interactively [yes]? Search for a package: { "name": "zxc/frame", "type": "library", "authors": [ { "name": "张三", "email": "zxc_1234@123.com" } ], "minimum-stability": "dev", "require": {} } # 是否生成composer.json Do you confirm generation [yes]? # 是否现在安装依赖 Would you like the vendor directory added to your .gitignore [yes] ~~~ ![](https://img.kancloud.cn/4f/3f/4f3feaf6dc892f1aab9a739e98214a89_800x500.png) 经过上面的操作后, 会在当前目录下生成一个composer.json文件。 在composer.json文件所在的位置创建一个文件夹,名字随意,但是规范是起名为src。在composer.json文件中添加autoload属性,定义命名空间(这里定义为Frame),规定加载文件所在的位置 ~~~json { "name": "zxc/frame", "type": "library", "authors": [ { "name": "张三", "email": "zxc_1234@123.com" } ], "minimum-stability": "dev", "require": {}, "autoload":{ "psr-4":{ "Frame\\":"./src/" } } } ~~~ 添加完属性后, 使用composer install安装依赖,以后要定义的文件定义到src文件夹里面, composer都会为你自动加载的 可以在composer.json文件的地方创建index.php文件进行测试 ~~~text <?php require "./vendor/autoload.php" // 这个文件我没有写, 测试的时候注意自己加上哦 // 写在src文件夹下, 注意命名空间要与composer.json里面的相同哦 use Frame\Appliaction $app = new Appliaction(); echo $app->getName(); ~~~ 如果加载不成功的话请执行命令**composer dump-autoload**