Composer
Awesome Composer
¶
> Composer、Packagist、Satis、插件、脚本、视频、教程的精选资源列表.
你可能还喜欢 awesome-php.
请阅读 contribution guidelines 在贡献之前.
Composer¶
- Official Website
- Github
- Issues
- Source
- Documentation
- Getting Started Guide and Installation Instructions
- Find Packages on Packagist
- CheatSheet - CLI 命令和
composer.json
模式概述. - Composer Installers - 多个框架的 Composer 安装程序.
Support¶
Stack Overflow¶
- 您可以使用以下标签:
composer-php
、packagist
、satis
+php
. - Ask a new question
- Find questions tagged
composer-php
IRC¶
- IRC 频道位于
irc.freenode.org
上: #composer 对于用户和 #composer-dev 为了发展.
Plugins¶
- Documentation for Plugins - 在编写 Composer 插件时,这个官方文档是一个很好的起点.
- Composer-Asset-Plugin - Composer 的 npm/Bower 依赖管理器.
- Composer-AWS - 该插件加载存储库数据并从 Amazon S3 下载数据包(具有对私有存储库的身份验证支持).
- Composer-Composition - 提供 API,用于在运行时检查您的环境.
- Composer-Suggest - 使您能够根据关键字模式安装一组自定义的建议包.
- Composer-Versions-Check - 在使用更新命令后显示最后一个主要版本的过时包(显示“最新版本是 vX.YZ”).
- Composer-Changelogs - 提供更新摘要以及指向更改日志/发布说明/标签的链接. 更新 composer.lock 文件时,输出已准备好粘贴到提交消息中.
- Composer-Merge-Plugin - 在 Composer 运行时合并多个
composer.json
文件. - Composer-Bin-Plugin - 添加了对管理单个存储库中多个包的依赖关系或隔离 bin 依赖关系的支持.
- Composer-Inheritance-Plugin - 维基媒体 composer-merge-plugin 的自以为是的版本与 Bamarni composer-bin-plugin 一起工作.
- Composer-MonoRepo-Plugin - 该插件有助于管理单个存储库中多个包的依赖关系.
- Composer-Patches-Plugin - 使您能够为任何包中的任何包提供补丁. 获取依赖项时,补丁将应用在顶部.
- Composer-Patches - 该插件将本地或远程文件中的补丁应用于任何所需的包.
- Composer-Patches - 将本地或远程文件的补丁应用到属于给定作曲家项目的任何包.
- Composer-Patchset - 自动获取、更新补丁并将补丁应用于任何带有扭曲的作曲家包 - 将补丁集存储为作曲家包本身.
- Composer-Plugin-QA - 作曲家执行 PHP 质量保证工具的综合插件.
- Composer-Cleanup-Plugin - 从供应商目录中删除测试和文档文件夹.
- Composer-Cleaner - 该工具从供应商目录中删除不必要的文件和目录.
- Composer-Ignore-Plugin - 使您能够从供应商文件夹中删除文件和文件夹(以便对生产进行更清洁和更小的部署). 它是 .gitattributes 的替代品.
- Composer-Vendor-Cleaner - 插件通过 glob 模式语法从
vendor
目录中删除不必要的开发文件和目录. - Composer-Skrub - 该插件有助于从 Composer 安装中删除垃圾并调整构建大小.
- Drupal Vendor Hardening Composer Plugin - 从项目的供应商目录中删除无关的目录,并将 .htaccess 和 web.config 文件添加到项目供应商目录的根目录中.
- Composer-Shared-Package-Plugin - 允许您通过创建符号链接在项目之间共享选定的包.
- Composer-Symlinker - 使您能够从不同的目录加载包(而不是从 /vendor 加载它们).
- Prestissimo - 使用
phpext_curl
的并行下载器. - Composer-Curl-Plugin - 该插件使用
phpext_curl
来下载包. - Composer-Custom-Directory-Installer - 作曲家插件,用于在默认作曲家安装路径(供应商文件夹)之外的自定义目录中安装不同类型的作曲家包.
- Composer-Dependency-Analyzer - 允许您为已安装的作曲家项目构建依赖关系图.
- Graph-Composer - 为项目的
composer.json
及其依赖项提供图形可视化. - PackageVersions - 提供对已安装的作曲家依赖版本的非常快速和轻松的访问.
- PackageVersions Deprecated - 是 Ocramius/PackageVersions 的一个分支,提供与 PHP 7+ 上的 Composer 1 和 2 的兼容性.
- Composer-Locator - 提供一种定位给定 Composer 包名称的安装路径的方法.
- PackageInfo - 使您能够检索所有包信息(如版本、标签、发布日期、描述).
- Composer-Git-Hooks - 一个用于在您的作曲家配置中轻松管理 git 钩子的库.
- Symfony-Flex - 提供 recipe-based Symfony 包的安装和配置管理.
- Narrowspark-Automatic - 自动执行最常见的应用程序任务、提升包下载量、添加作曲家安全审核等.
- PHPCodeSniffer-Composer-Installer - 该插件使您能够安装 PHP_CodeSniffer 编码标准(规则集).
- Composer-Warmup - 该插件将命令
warmup-opcode
添加到 Composer,这会触发将项目中发现的所有 PHP 文件编译到 Opcache 中. - Foxy - 当安装或更新 composer 包时执行 npm/yarn 包安装操作的 Composer 插件.
- NodeJS-Installer - NodeJS 和 npm 的安装程序.
- Node-Composer - NodeJS、npm 和 yarn 的安装程序.
- Imposter-Plugin - 将所有作曲家供应商包包装在您自己的命名空间中. 用于 WordPress 插件.
- Composer Preload - 该插件生成一个“vendor/preload.php”文件来预热 Opcache.
- PHP Inc - 自动包含 autoload 和 autoload-dev 的文件,以方便在 composer 加载的应用程序中使用函数和分组定义.
- Composer Registry Manager - 使您能够在不同的作曲家存储库之间切换.
- Production-Dependencies-Guard - 防止开发包被添加到需求中并进入生产环境.
- Composer-Plugin-Exclude-Files - 一个插件,用于排除使用“文件”自动加载机制的包所需的文件.
- Composer-Downloads-Plugin - 仅使用“url”和“path”下载外部资源(ZIP/TAR 文件)的轻量级机制.
- Private-Composer-Installer - 将包 URL 中的帮助程序外包敏感密钥安装到环境变量中.
- CycloneDX-PHP-Composer - 创建一个 CycloneDX 项目依赖项的“软件物料清单”(SBOM). SBOM 通过以下方式启用依赖性监控和风险分析 OWASP DependencyTrack.
- Composer-Compile-Plugin - 允许 PHP 库定义简单、自由形式的编译任务. 支持任何包中的安装后挂钩.
- Composer-Link - 添加了链接本地包以进行开发的能力.
- Composer-REPL - 该插件提供了
composer repl
命令,它为您提供了一个 PHP 语言 shell(read-eval-print 循环). - Composer-Diff - 比较
composer.lock
更改并生成 Markdown 报告以供在拉取请求描述中使用. - Composer-Velocita - 使用快速可靠的 Composer 包下载 Velocita:不需要您修改项目的缓存反向代理.
Tools¶
- Composer SemVer Checker - 通过对 Packagist 托管的包进行语义版本检查,使您能够识别版本解析问题的约束.
- Composer-Yaml - 此工具将
composer.yml
转换为composer.json
. - Studio - 用于开发 Composer 包的工作台. 它是在供应商文件夹中编辑依赖项或使用的替代方法 PathRepositories 将您的依赖项的本地克隆加载到您的项目中.
- OctoLinker Browser Extension - 使您能够浏览 Github 上的 Composer/NPM 依赖项.
- ComposerRequireChecker - 一个 CLI 工具,用于分析依赖关系并验证包的源代码中没有使用未知的导入符号.
- Composer-Unused - 一个 CLI 工具,它可以扫描您的代码并显示未使用的 Composer 依赖项.
- Composer-Normalize - 该插件通过重组和排序条目(规范化)帮助您保持
composer.json
文件的一致性. - Composer-Service - Enables you to run Composer as a service on a remote server.
- Composer PreferLowest Checker - 严格比较 composer.json 的指定最低版本与 prefer-lowest composer update 命令选项实际使用的版本.
- Bramus/Composer-Autocomplete - 用于 Composer 的 Bash/Shell 自动完成脚本.
- Composer/Xdebug-Handler - 帮助您在不加载 xdebug 扩展的情况下重新启动 CLI 进程.
- Composer Semver Range Checker - 帮助检查作曲家约束的可满足范围的工具.
Scripts¶
- ParameterHandler - 允许您在运行作曲家安装或更新时管理忽略的参数.
- Tooly - 在项目“composer.json”中管理所需的 PHAR 文件. 每个 PHAR 文件都将保存在 composer 二进制目录中. 每个 PHAR 的 GPG 验证都是可选的.
- Melody - 单文件作曲家脚本.
- Composer-Travis-Lint - 允许您检查 Travis CI 配置文件 (
.travis.yml
). - Composer-Multitest - 使您能够针对多个本地安装的 PHP 版本运行 Composer 脚本,这些版本由 PHPBrew 或 phpenv 管理.
- ScriptsDev - 使您能够使用
scripts-dev
部分,该部分仅在开发模式下触发脚本. - PhantomJS-Installer - 一个 Composer 包,它将 PhantomJS 二进制文件(Linux、Windows、Mac)安装到项目的 /bin 中.
- Composer-Vendor-Cleanup - 从供应商目录中删除列入白名单的不必要文件(如测试/文档等)的脚本.
- Composer-Substitution-Plugin - 一个 Composer 插件,用动态值替换“脚本”部分中的占位符.
Services¶
- Packanalyst - Packanalyst 是一项服务,可让您浏览 Packagist 中定义的任何 PHP 类/接口/特征.
- Dependabot - Dependabot 是一个依赖更新服务. 它通过发送拉取请求来监视和更新您的依赖项. 该服务对公共回购和个人账户回购是免费的.
Tutorials¶
- A beginners guide to Composer
- A short & simple Composer tutorial
- Easy package management with Composer
- PHP Dependency Management with Composer
- Composer Primer
- PHP Composer Magento Tutorial by Alan Storm
- Creating and Using Composer Packages
Blogs¶
- Jordi Boggiano (seldaek)
- Nils Adermann (naderman)
- Composer Stability Flags
- Composer Versioning
- The long journey of making PHP’s Composer memory-efficient and fast (toflar)
Videos¶
- Composer Best Practices 2018 - Nils Adermann @ scotphp18
- Composer Best Practices 2018 - Nils Adermann @ phpday 2018
- Managing dependencies is more than running "composer update" - Nils Adermann @ phpsrb17
- 作曲家最佳实践 — Jordi Boggiano @ php[tek] 2015
- Wonderful World of Composer
- PHP Composer Quickstart
- How Composer helped shape the new way of writing PHP - Nils Adermann @ Drupal Camp Frankfurt
- Composer Package Management - Nils Adermann @ T3CON12DE
- Composer 2 - Jordi Boggiano @ Symfony UK usergroup 2020
- Lessons learned building the Composer internals - Jordi Boggiano @ CODEiD Odessa PHP Conference 2017
Slides¶
- Nils Adermann 的幻灯片
- 来源:https://naderman.de/slippy/src/
- PHP Reinvented - How Composer helped shape the new way of writing PHP
- Composer Update
- Dependency Management with Composer PHP Reinvented
- 管理依赖关系是 不仅仅是跑步 “作曲家更新”
- 作曲家 最佳实践 @ T3DD17
- 控制你 依赖关系 私有 Packagist
- Composer.lock demystified
- Compoer In-Depth @ Contao Konferenz 2018
- Composer Best Practices 2018
- Developing and Deploying Magento with Composer Best Practices
- Composer Platform Config (check-platform-reqs) @ SymfonCon 2018
- Jordi Boggiano 的幻灯片
- 来源:http://slides.seld.be/
- Dependency Management with Composer (2013)
- In Depth with Composer (2013)
- Composer Best Practices (2015)
- Introduction to Composer (2015)
- Composer in 2016
- Lessons Learned Building the Composer Internals (2018)
Packagist¶
Packagist 是 PHP 包存储库.
Setup a Packagist Mirror¶
- Packagist Mirror - 此脚本有助于设置 packagist 镜像. 它是维护和稳定的版本 Packagist Crawler.
- Docker Image - 此 Docker 镜像有助于创建定制的 packagist 镜像.
- Packagist Mirror from Indonesia - 创建 packagist 镜像的另一个实现.
Packagist Mirrors¶
关于元数据镜像:https://packagist.org/mirrors
- 北美
- 加拿大 - packagist.org Main mirror
- 南美洲
- 巴西 - packagist.com.br
- 非洲
- 南非 - https://github.com/jakoch/awesome-composer/blob/master/packagist.co.za
- 亚洲
- 中国 - php.cnpkg.org, https://pkg.phpcomposer.com/, https://mirrors.aliyun.com/composer/
- 印度 - https://packagist.in/
- 印度尼西亚 - packagist.phpindonesia.id
- 日本 - packagist.jp
Composer Repositories¶
Registry Manager¶
- https://github.com/slince/composer-registry-manager - 该插件可帮助您在不同的作曲家存储库之间切换.
Private repositories¶
- fxpio/tug - 使您能够在 AWS Serverless 上托管私有 Composer 注册表,为托管在 Github 或 Gitlab 服务上的私有 PHP 包提供服务.
Private Packagist¶
- Private Packagist Cloud - 一个 Composer Repository as a Service for private packages and to mirror packages from other repositories.
- Private Packagist Enterprise - Private Packagist 的本地自托管版本.
- Private Packagist API Client - 用于 Private Packagist API 的 PHP 客户端. 客户端处理身份验证、签名生成和对所有端点的访问.
Repman¶
- repman.io & repman-io/repman - 私有 PHP 包存储库管理器和 Packagist 代理.
- repman-io/composer-plugin - 此插件通过为所有依赖项添加分发镜像 URL 来启用通过 Repman 下载(无需更新
composer.lock
文件).
Packagist-compatible repositories¶
- WordPress Packagist - 将 WordPress 插件和主题目录镜像为 Composer 存储库.
- Asset Packagist - 允许将 Bower 和 NPM 包安装为本机 Composer 包.
- Firegento - 提供 Magento 模块的 Composer 存储库.
- Drupal Packagist - Drupal 7 和 8 核心、模块和主题的 Composer 存储库.
- Satis Server - 此 docker 容器提供 Satis 服务器,使您能够运行私有的、自托管的 Composer 存储库,支持 Git、Mercurial 和 Subversion、HTTP API、HTTPs 支持、webhook 处理程序和计划构建.
- Cloudsmith - 具有 PHP/Composer 支持(以及许多其他)的完全托管的包管理 SaaS.
- Release Belt - 自托管 Composer 存储库实施,以快速集成第三方非 Composer 版本的 ZIP 文件.
- Packeton - 供应商的私有自托管 Composer 存储库. packagist 的分支,添加了对授权、客户用户、组、webhook 的支持.
Satis¶
- Gitlab-Composer - 这是 Gitlab 存储库的分支/标签索引器.
- Satisfy - 带有 Web UI 的 Satis 作曲家存储库管理器.
- Satis Control Panel - 一个简单的 web UI,用于通过可选的 CI 集成管理您的 Satis 存储库.
- Satis Go - 用于管理 Satis 配置和托管生成的 Composer 存储库的 Web 服务器.
Toran Proxy¶
- ToranProxy (已弃用)- 除了提供作曲家存储库之外,ToranProxy 还充当 Packagist 和 GitHub 的代理服务器.
License¶
在法律允许的范围内, Jens A. Koch 已放弃该作品的所有版权和相关或邻接权.