常用命令
- 镜像
记录-交流-Web开发知识分享
作为 Laravel 开发人员,你可能遇到过这样的情况:你不喜欢 vendor 文件夹某个包中的某些代码,并且想要更改它。你可以直接在该文件中更改它。但问题是当你点击composer update命令升级包时很容易覆盖已修改的vendor类文件。
那么有什么解决办法呢?
感谢Composer,它具有覆盖任何包/类的功能。Composer 使用PSR-4来加载类。因此,在 composer.json 中,你可以提及从哪些文件或文件夹加载类。同样你也可以排除加载它。
请参考下面的示例以了解我如何从包tymon/jwt-auth 中排除 1个文件
"exclude-from-classmap": ["vendor\\tymon\\jwt-auth\\src\\Middleware\\BaseMiddleware.php"],
在上面的例子中可以看出我已经排除了BaseMiddleware.php
文件。你必须将此行放在composer.json的autoload段中。这里要注意的一件事是,我在路径中有双反斜杠,那是因为在 Windows 机器上,并且因为它是 JSON 文件,所以我必须在那里转义 (\) ,即写上双反斜杠。
现在我们已经排除了我们想要覆盖的文件,现在需要包含有更改的新文件,以便 composer 知道要包含哪些文件。
为此,向 composer.json 中的 'psr-4' …
一些PHP项目通过Composer安装了一些组件 ,其中有一些是针对特定PHP版本或PHP扩展的polyfill,如果我们的PHP版本满足安求,相关的PHP扩展也已安装好 。那么就不需要安装这些polyfill了。
我们可以通过移除这些polyfill,以减少自动加载的文件数量,达到优化性能的目的。
示例:
请在项目的composer.json中加入如下以下内容:即可移除对应的无用组件,减少加载时间。
"replace": {
"symfony/polyfill-apcu": "*",
"symfony/polyfill-php80": "*",
"symfony/polyfill-mbstring": "*",
"symfony/polyfill-ctype": "*",
"symfony/polyfill-php73": "*",
"symfony/polyfill-php72": "*",
"symfony/polyfill-php81": "*"
},
…
变更和改进的清单很长,如果您有兴趣阅读全部内容,请查看完整的变更日志。我将在这里重点介绍一些关键点。
从Composer和packagist.org之间使用的协议到依赖关系解析,我们几乎对所有内容进行了全面检查,包括使用curl和约束评估优化来并行下载文件。这导致速度和内存使用方面的巨大改进。差异取决于您的用例,因此尽管我看到某些项目的两个方面的改进都超过50%的报告,但我无法在上面给出确切的数字。但是我敢肯定,如果您还没有尝试过Composer 2,将会感到非常惊讶。
作为补充,require
/remove
和部分更新现在快得多,因为Composer现在将仅加载要更改的程序包的元数据。…
Composer是PHP应用程序的事实依赖管理器,最初在大约8年前于2012年3月发布。
在PHP中使用Composer可用于提高代码的可重用性,并使您的项目能够轻松地集成来自主要PHP Composer仓库Packagist的维护的PHP库。今天,我们将重点介绍一些部署最佳实践。
这篇文章将重点介绍如何使Composer更快,以及在每次部署应用程序时无需重新安装Composer就可以安装软件包。
Magento是需要大量内存的Composer项目的一个示例。您能想象如果需要为每个部署进行composer安装时需要多少内存?Composer可能会因“内存不足”错误而失败,此错误将在此Stack Overflow帖子中进行介绍。
尽管将软件包添加到项目很容易,但出于以下原因,在Amezmo,我们采用保守的方法添加新的项目依赖项。
composer install
这是不言而喻的。审核我们的composer.json
文件,当然删除所有不需要的程序包引用。
第二个,这就是我发表这篇文章的原因,是要确保您使用以下标志运行composer。
composer
--no-ansi \
--no-interaction \
--optimize-autoloader \
--no-progress
…
这个话题之前是在微博公司内部做的技术分享,这里拿出来分享给大家。
基于 GitHub 或者其它平台托管的开源项目的引入大家应该都已经非常熟悉了,但是公司内部项目的模块化应该怎么做呢?这或许是不少朋友头疼的问题。…
Composer 是 PHP 的一个依赖管理工具。 如果你是一名 PHP 开发人员,那么你很可能每天都在使用它并且频繁的运行命令 require
, install
和 update
。也许你并没有意识到, 我们可以使用一些其他的 Composer 命令,来更加轻松的使用它。
它有许多的命令可以使用,但今天我将分享我使用的并且每天都有帮助的 6 个命令。…
PHP 自5.3的版本之后,已经重焕新生,命名空间、性状(trait)、闭包、接口、PSR 规范、以及 composer 的出现已经让 PHP 变成了一门现代化的脚本语言。PHP 的生态系统也一直在演进,而 composer 的出现更是彻底的改变了以往构建 PHP 应用的方式,我们可以根据 PHP 的应用需求混合搭配最合适的 PHP 组件。当然这也得益于 PSR 规范的提出。
在 PHP 开发过程中,如果希望从外部引入一个 Class ,通常会使用 include
和 require
…
近期评论