1.应用场景
使用composer搭建项目框架, 快速实现项目工程. |
2.学习/操作
文档阅读猎环境
步骤1. 安装composer //这里是局部安装, 全局安装未见生效可以参见: Packagist / Composer 中国全量镜像 //包括镜像使用方法 由于国内的环境, 推荐使用归档方式安装, 具体步骤如下 1.1 下载归档文件 //这里的归档文件一般都是最新稳定版浏览器下载: https://install.phpcomposer.com/composer.phar 1.2 与composer.phar同级目录下, 新建composer.bat文件composer.bat内容: @php "%~dp0composer.phar" %* 方式: 可手动建立,将内拷贝进去即可. 可命令方式建立, 执行: echo @php "%~dp0composer.phar" %*>composer.bat 1.3 拷贝到web根目录下常常是www目录, 如下: 1.4 进入www目录下cmd方式, 直接资源地址栏中输入 cmd 回车即可 2. 安装laravel版本laravel 5.6 参考安装教程: 安装配置 | 快速入门 | Laravel 5.6 中文文档 备注: 安装5.7 5.8 一样的操作, 均有实践. 这里通过通过 Composer Create-Project安装, 具体步骤 2.1 cmd www目录下, 执行:
备注: 安装最新版本: composer create-project --prefer-dist laravel/laravel blog 插入: php - 安装 laravel --prefer-dist 的含义
3. 等待安装框架及依赖安装成功, 共计花了两个小时左右. 推荐是配置国内镜像仓库 参见: Composer - 学习/实践_william_n的博客-CSDN博客 4. 配置虚拟主机开发环境- 配置虚拟主机域名/hosts文件 - 学习/实践_william_n的博客-CSDN博客 5. 浏览器访问项目输入: laravel56.test 回车 返回如下: 使用composer安装laravel成功. 后续补充 ... |
3.问题/补充
1. Packagist[国内/国外], github, composer的关系?Packagist中文镜像: Packagist / Composer 中国全量镜像 Packagist国外镜像: Packagist github: GitHub: Where the world builds software · GitHub 关系如下: composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。 这里依赖的库的简要信息是放在Packagis[Packagist国外镜像Packagist, PHP专用, 用一定环境github压力的作用]上, 具体库文件仍然是放在github[github就是一个大熔炉, 什么[语言]开源项目[也可以放私有项目]放在上面], 所以使用composer安装一个依赖包时, 会先到Packagis检索, 如果检索到, 就会有相应在github上的仓库信息, 然后去拉取下来即可. 但是国内访问Packagist国外镜像很慢, 所以使用Packagist中文镜像[Packagist / Composer 中国全量镜像]每分钟同步Packagist国外镜像,几乎是保持一致, 但是访问国内资源会快很多[一是距离或者是被墙].再使用composer安装依赖的时候,就会从Packagist中文镜像检索信息,从github下载安装依赖. 2. 下载并且运行 Composer-Setup.exe, 方式一直不能成功, 原因是什么?TBD //应该是网络问题,访问国外网站, 被墙或者速度太慢 3. 命令行方式安装, 尚未试过.TBD 4. 如果执行 composer create-project --prefer-dist laravel/laravel laravel56.test 5.6.*提示如下问题: [Composer\Exception\NoSslException] 解决办法: 方式一: 推荐 PHP error when creating a new symfony project using composer - Stack Overflow 方式二: 按照提示信息中说的, 将disable-tls设置为true亦可, 但是风险自担 这里使用方式一,结果如下: 可以看到一些黄色部分提示,有些包已经弃用, 建议使用另外包去替代. 你可以去做, 也可以不做, 只是风险自担. 而且Application key 也已经自动生成. 不用像下载压缩包方式一样, 还要手动去填上. 5. 在laravel中添加公共[助手]函数 --- 涉及到 composer的自动加载机制详细参考: Composer 自动加载机制 - 学习/实践_william_n的博客-CSDN博客 添加公共函数类 1) 新建文件,文件名任意:
3) 打开cmd, 切换到项目目录, 执行命令:
就能在任何地方[controller/model等]引用函数 6. 执行: composer install出现如下错误:
浏览器访问: 原因: 该项目是在公司创建, 仓库源使用的是官方源: Packagist / Composer 中国全量镜像 而且家里使用的是阿里云仓库源: https://mirrors.aliyun.com/composer 同时, 版本管理中有提交composer.lock 文件, 家里访问官方源存在问题, 导致. 解决办法: 删除composer.lock文件, 然后重新执行composer install 结果如下: 浏览器访问: 解决. Note: 但是在家里提交代码时候请不要将composer的修改提交到版本库中. 另外 根本解决办法: 应该是公司与家里使用相同的仓库源, 推荐阿里云源. 7. 执行composer require predis/predis // 20200823 家里或者 执行 composer dump-autoload 等命令均出现如下报错:
原因: 正如报错中说的那样: PHP致命错误:类UpdateHelper\ComposerPlugin包含2个抽象方法,因此必须声明为抽象方法或实现其余方法. 在文件 G:\WilliamNing\phpstudy_pro\WWW\blog57.test\vendor\kylekatarnls\update-helper\src\UpdateHelper\ComposerPlugin.php 第11行 解决办法: [尝试] 1. 删除该目录 2. 执行:
Composer dump-autoload or update results in fatal error on Laravel 5.5 - Stack Overflow 8. 如果PHP的版本不满足composer.json中要求的PHP版本,会提示报错,如下:
其他的版本报错,应也是如此。 后续补充 ... |
4.参考
参见文档阅读列表 |
后续补充
...