作者:成都长风云Drupal开发
Composer 2是提供Drupal使用效率有效解决方案。无论再Drupal升级、Drupal开发、Drupal模块安装的过程中,Composer2都能大大提高效率,每个人都知道简单的操作需要花费大量时间的情况。在Drupal中使用Composer使开发人员的工作更轻松。
为了加快工作流程,web开发人员经常在许多项目中多次使用相同的代码。这个代码不仅可以由其他人编写;这不是重点。关于编程,重写代码是许多开发人员关心的问题。Composer可以让你摆脱这个问题。您可以保存部分PHP代码,并将它们用于其他项目。成都长风云Drupal开发团队在Drupal开发的过程中,经常用到composer2,下面,我们进行了一些总结,希望对您有用。
一、Composer 2: 简介
您(和其他开发人员)可以将代码的必要部分组成库,并在某些项目中使用这些库。一些库链接到其他库,并且它们具有逻辑连接。因此,一个项目可以使用附加的不同代码库。有时,库也被称为包,但本质仍然存在。
为了方便开发人员,创建了一个独特的网站。因此,当您需要特定的功能元素并要求Composer加载它时,它会自动在网站上搜索此库,而不仅仅是在该网站上(您可以指定存储库列表)。一个库经常链接到其他库,您需要下载所有库才能定期操作站点元素。Composer会自动执行此操作。Composer 2加载组件、协议等稳定运行所需的所有逻辑互连库。
然而,您可以随时将Composer配置为在其他云存储网站(GitHub等)中搜索存储库。主要是Composer将独立搜索必要的库,将它们加载到系统中,并检查系统要求。此外,还会检查以前安装的库和新库之间的内部冲突。Composer有一些简单的工具,可以让开发人员的生活更轻松。您需要执行几个步骤才能在项目中使用所需的库,这将在本文稍后讨论。
Composer 2是管理大量代码的理想选择。通过自动化许多流程,开发人员花费的时间要少得多。您可以使用Composer安装Drupal核心、主题和模块。
二、为什么用Composer 2, 而不是 Composer?
您应该选择Composer 2的原因有几个,但最主要的原因是它增强了功能。Composer 2比第一个版本有了很大的改进。这使我们摆脱了许多问题和冲突,提高了生产力和速度。让我们仔细看看主要改进:
1、脱机模式
Composer 2可以脱机工作。如果你需要互联网帮助并需要完成工作,这是非常方便的。每个开发人员都知道什么是“最后期限”。
2、优化Drupal by Composer 2
新版Composer显著改进了与处理器和内存的交互,从而提高了性能。许多小错误也得到了修复,提高了性能并节省了大量开发人员的时间。
3、平行加载
此外,并行下载功能从一开始就可用,无需安装附加组件。这也提高了性能。
4、智能安装
只有在安装了所有必需的库之后,才能修改“vendor”文件夹。
还有许多大大小小的变化;我们只描述了主要的部分。要详细讨论所有的创新和更新,还需要一篇单独的文章。
三、Composer 2入门
首先,我们需要了解Composer只使用两个文件来处理库:Composer.json和Composer.lock。
第一个是“composer.json”,其中包含有关已安装库的信息。因此,您需要安装用于特定项目的库,并且需要在“composer.json”文件中指定这些库。此文件应该位于项目的最顶层目录中,这一点很重要。在Composer 2中,您可以使任何存储库规范化,这是一大优势。
“Composer.lock”可以跟踪库版本,这一点非常重要。此文件存储有关当前版本的信息。因此,“composer.json”包含一个依赖项列表
而“composer.lock”则包含一个已安装版本列表。如果新员工加入开发团队,其他开发人员已经拥有的相同版本将自动下载到他的计算机上。如果没有这一点,Composer可能只下载最新版本,而不是它需要的版本。
这是一个非常简单的描述,但它是完全正确的,并允许您了解Composer如何与库和存储库交互。而且,请记住,“composer.lock”文件在1和2 composer版本之间是可互操作的。
Drupal中使用Composer 2的第一步:命令
Composer自己查找依赖项。您必须使用存储库密钥注册存储库。
接下来,您可以下载Drupal核心和库(包)。Drupal和Composer合作得很好。
要使用Composer安装Drupal,您需要输入下一个命令:
$ composer create-project drupal/recommended-project [project-name-dir]
它可以是Drupal 8、Drupal 9或Drupal 10核心。
要安装所需的依赖项,请使用以下命令:
$ php composer.phar install
Composer将安装Composer.json文件中列出的依赖项。我们已经在上面说过了——版本必须列在composer.lock文件中。
要查找库,请输入命令
$ composer require [vendor]/[packagename]
其中“packagename”是您需要的包。
如果您想下载模块,命令将类似:
$ composer require drupal/modulename
其中“modulename”是您需要的模块。
要获取最新的依赖项更新,请使用update命令:
php composer.phar update - 用来更新所有的依赖.
php composer.phar update monolog/monolog-更新一个依赖项(指定为参数)。
composer update drupal/modulename - -with-all-dependencies
如果你想预览更新,看看如果没有任何真正的更改会发生什么,你需要:
- -dry-run
有时您可能需要手动更新单独的模块:
composer update “drupal/*” - -with-all-dependencies drush updatedb drush cache:rebuild
此外,它还将清除缓存。
四、使用Drupal中的Composer 2高效工作的8个技巧
成都长风云Drupal开发团队总结了使用Composer 2的一些技巧,将帮助您节省时间。它们在这里:
1、在重大变更之前,始终(始终!)使用试运行。然而,许多新手开发人员对任何更改都使用干式运行。
2、速度和优化-Composer 2不再是问题,也不再需要您以前安装的优化插件。例如,“zaporylie”或“prestissimo”插件。有些人将这些插件更新到与Composer 2兼容的版本。
实际上,使用以下命令可以更容易地删除它们:
3、一些包已被放弃,不再支持(条令/反思;webmozart/path-intill;swiftmailer;等),因此您将看到消息,表示不再支持这些插件。忽略。你对此无能为力,你只能等待。
4、向后兼容Composer 1-是的,它有效。但它工作得不太好,所以最好让整个开发团队将Composer更新到版本2。这将有助于避免冲突和错误。
5、有时,我们会发现一些有用的模块不适用于Drupal9。然而,已经发布了修补程序来纠正不兼容性,并可能使这些模块正常工作。我们该怎么办?这就是LenientComposer端点派上用场的地方。Lenient Composer端点添加在标准端点之前。可以这样做:
"repositories": { "lenient": { "type": "composer", "url": "https://packages.drupal.org/lenient" }, "0": { "type": "composer", "url": "https://packages.drupal.org/8" } },
下载模块后,您需要将更改添加到composer.json文件中。这只能由你自己完成!请记住,这种方法在Composer 1中不起作用。
6、执行“composer-require”和“composer update”命令时出错。如果在输入这些命令时看到该错误,则必须立即更新“cweagans/composer patches”包。Composer 2仅适用于1.7.0或更高版本。
7、“Scaffold”插件在更新到Composer 2后可能会抛出错误。很简单,将插件更新到8.9或更高版本。旧版本仅适用于Composer 1。
8、有些程序包存在安全问题。在安装过程中,您可能并不总是意识到这些问题。您可以在项目中包含安全功能,以防止安装此类软件包。这可以通过使用两个命令来完成:
composer require - -dev roave/security-advisories:dev-master
composer require - -dev drupal-composer/drupal-security-advisories:8.x-dev
五、总结
自成立以来,Composer一直是一个高效的包管理工具。Composer2消除了我们在过去看到的许多问题和冲突。这使得工作过程更快、更简单。每一个现代开发人员都应该尝试这种有效而重要的工具。如果你还需要这样做,现在就是时候了。!
六、专业的Drupal开发团队 - 成都长风云Drupal开发团队
在2024年,我们已经专注于Drupal开发16年(始于2008年)。无论您计划从Drupal7升级到Drupal10、从旧版本迁移到Drupal9、基于Drupal开发新的系统、企业官网、电商网站,维护基于Drupal开发的系统等,我们都能依靠我们的专业技术为您完成。免费咨询Drupal升级方案,手机号:13795726015 或 微信号:changfengqj