Awesome Composer Overview
:sunglasses: A curated awesome list for Composer, Packagist, Satis, Plugins, Scripts, Composer related resources, tutorials.
🏠 Home · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 jakoch/awesome-composer · ⭐ 858 · 🏷️ Programming Languages
Awesome Composer
A curated list of resources for Composer, Packagist, Satis, Plugins, Scripts, Videos, Tutorials.
You might also like awesome-php (⭐31k).
Please read the contribution guidelines (⭐858) before contributing.
Composer
- Official Website
- GitHub (⭐28k)
- Issues (⭐28k)
- Source (⭐28k)
- Documentation
- Getting Started Guide and Installation Instructions
- Find Packages on Packagist
- CheatSheet - Overview of CLI commands and
composer.json
schema. - Composer Installers (⭐1.4k) - Composer installers for multiple frameworks.
Support
Stack Overflow
- You might use the following tags:
composer-php
,packagist
,satis
+php
. - Ask a new question
- Find questions tagged
composer-php
IRC
- IRC channels are on
irc.freenode.org
: #composer for users and #composer-dev for development.
Plugins
- Documentation for Plugins - This offical documentation is good starting point, when writing a Composer plugin.
- Composer-Asset-Plugin (⭐893) - A npm/Bower Dependencies Manager for Composer.
- Composer-AWS (⭐77) - The plugin loads repository data and downloads packages from Amazon S3 (with authentication support for private repositories).
- Composer-Composition (⭐107) - Provides an API, for checking your environment at runtime.
- Composer-Suggest (⭐5) - Enables you to install a custom group of suggested packages, based on keyword patterns.
- Composer-Versions-Check (⭐233) - Shows outdated packages from last major versions after using the update command (showing "Latest is vX.Y.Z").
- Composer-Changelogs (⭐587) - Provides a summary of the updates with links to changelog/releasenote/tag. The output is ready to be pasted into the commit message when updating the composer.lock file.
- Composer-Merge-Plugin (⭐923) - Merges multiple
composer.json
files at Composer runtime. - Composer-Bin-Plugin (⭐453) - Adds support for managing dependencies for multiple packages in a single repository or isolate bin dependencies.
- Composer-Inheritance-Plugin (⭐28) - Opinionated version of Wikimedia composer-merge-plugin to work in pair with Bamarni composer-bin-plugin.
- Composer-MonoRepo-Plugin (⭐304) - The plugin helps to manage dependencies for multiple packages in a single repository.
- Composer-Patches-Plugin (⭐79) - Enables you to provide patches for any package from any package. When the dependency is fetched, the patch is applied on top.
- Composer-Patches (⭐1.5k) - The plugin applies a patch from a local or remote file to any required package.
- Composer-Patches (⭐279) - Applies a patch from a local or remote file to any package that is part of a given composer project.
- Composer-Patchset (⭐6) - Automatically fetch, update and apply patches to any composer package with a twist - store the patchset as a composer package itself.
- Composer-Plugin-QA (⭐25) - Comprehensive Plugin for composer to execute PHP Quality assurance Tools.
- Composer-Cleanup-Plugin (⭐147) - Removes tests & documentation folders from the vendor dir.
- Composer-Cleaner (⭐133) - The tool removes unnecessary files and directories from the vendor directory.
- Composer-Ignore-Plugin (⭐21) - Enables you to remove files and folders from the vendor folder (to make a cleaner and smaller deployment to production). It's an alternative to
.gitattributes
. - Composer-Vendor-Cleaner (⭐22) - Plugin removes unnecessary development files and directories from
vendor
directory by glob pattern syntax. - Composer-Skrub (⭐85) - The plugin helps to remove junk from Composer installations and trim build sizes.
- Drupal Vendor Hardening Composer Plugin (⭐14) - Removes extraneous directories from the project's vendor directory & adds .htaccess and web.config files to the root of the project's vendor directory.
- Composer-Shared-Package-Plugin (⭐164) - Allows you to share selected packages between your projects by creating symlinks.
- Composer-Symlinker (⭐18) - Enables you to load packages from different directories (instead of loading them from /vendor).
- Prestissimo (⭐6.2k) - A parallel downloader using
phpext_curl
. - Composer-Curl-Plugin (⭐5) - The plugin uses
phpext_curl
for downloading packages. - Composer-Custom-Directory-Installer (⭐136) - A composer plugin, to install different types of composer packages in custom directories outside the default composer installation path (vendor folder).
- Composer-Dependency-Analyzer (⭐324) - The plugin helps to find dependency issues, including dead, unused, shadow and misplaced dependencies.
- Composer-Dependency-Analyzer - Allows you to build a dependency graph for an installed composer project.
- Graph-Composer (⭐921) - Provides a graph visualization for your project's
composer.json
and its dependencies. - PackageVersions (⭐3.2k) - Provides a very quick and easy access to installed composer dependency versions.
- PackageVersions Deprecated (⭐1.5k) - Is a fork of Ocramius/PackageVersions providing compatibility with Composer 1 and 2 on PHP 7+.
- Composer-Locator (⭐58) - Provides a means of locating the installation path for a given Composer package name.
- PackageInfo (⭐7) - Enables you to retrieve all package informations (like version, tag, release date, description).
- Composer-Git-Hooks (⭐1k) - A library for easily managing git hooks in your composer config.
- Symfony-Flex (⭐4.1k) - Provides recipe-based (⭐953) installation and configuration management for Symfony packages.
- Narrowspark-Automatic (⭐12) - Automates the most common tasks of applications, boost package downloads, adds a composer security audit and more.
- PHPCodeSniffer-Composer-Installer (⭐541) - The plugin enables you to install PHP_CodeSniffer (⭐11k) coding standards (rulesets).
- Composer-Warmup (⭐180) - The plugin adds the command
warmup-opcode
to Composer, which triggers the compilation of all PHP files discovered in your project into the Opcache. - Foxy (⭐172) - Composer plugin that executes npm/yarn packages installation operations, when composer package is installed or updated.
- NodeJS-Installer (⭐108) - Installer for Node.js and npm.
- Node-Composer (⭐6) - Installer for Node.js, npm and yarn.
- Imposter-Plugin (⭐144) - Wrapping all composer vendor packages inside your own namespace. Intended for WordPress plugins.
- Composer Preload (⭐205) - The plugin generates a
vendor/preload.php
file to warm up the Opcache. - PHP Inc (⭐5) - Automatically includes files for autoload and autoload-dev to facilitate using functions and grouped definitions within composer loaded applications.
- Composer Registry Manager (⭐545) - Enables you to switch between different composer repositories.
- Production-Dependencies-Guard (⭐87) - Prevents development packages from being added into require and getting into production environment.
- Composer-Plugin-Exclude-Files (⭐36) - A plugin for excluding files required by packages using the 'files' autoloading mechanism.
- Composer-Downloads-Plugin (⭐6) - Lightweight mechanism to download external resources (ZIP/TAR files) with only a
url
andpath
. - Private-Composer-Installer (⭐224) - Install helper outsourcing sensitive keys from the package URL into environment variables.
- CycloneDX-PHP-Composer (⭐46) - Creates a CycloneDX "Software Bill-of-Materials" (SBOM) for the dependencies of a project. The SBOM enables dependency monitoring and risk analysis by OWASP DependencyTrack.
- Composer-Compile-Plugin (⭐12) - Allow PHP libraries to define simple, freeform compilation tasks. Support post-install hooks in any package.
- Composer-Link (⭐54) - Adds the ability to link local packages for development.
- Composer-REPL (⭐100) - The plugin provides the
composer repl
command, which gives you a PHP language shell (read-eval-print loop). - Composer-Diff (⭐132) - Compares
composer.lock
changes and generates a Markdown report for usage in a pull request description. - Composer-Velocita (⭐28) - Fast and reliable Composer package downloads using Velocita (⭐61): a caching reverse proxy that does not require you to modify your projects.
Tools
- Composer SemVer Checker - Enables you identify constraint to version resolution issues, by doing a semantic version check for Packagist hosted packages.
- Composer-Yaml (⭐57) - This tool converts
composer.yml
tocomposer.json
. - Studio (⭐1.1k) - A workbench for developing Composer packages. Its an alternative to editing dependencies in the vendor folder or using PathRepositories to load a local clone of your dependency into your project.
- OctoLinker Browser Extension (⭐5.3k) - Enables you to navigate Composer/NPM dependencies on GitHub.
- ComposerRequireChecker (⭐871) - A CLI tool to analyze dependencies and verify that no unknown imported symbols are used in the sources of a package.
- Composer-Unused (⭐1.5k) - A CLI tool, which scans your code and shows unused Composer dependencies.
- Composer-Normalize (⭐1k) - The plugin helps to keep your
composer.json
file(s) consistent by restructuring and sorting entries (normalizing). - Composer-Service (⭐175) - Enables you to run Composer as a service on a remote server.
- Composer PreferLowest Checker (⭐20) - Strictly compare the specified minimum versions of your composer.json with the ones actually used by the prefer-lowest composer update command option.
- Bramus/Composer-Autocomplete (⭐94) - A Bash/Shell autocompletion script for Composer.
- Composer/Xdebug-Handler (⭐2.5k) - Helps you to restart a CLI process without loading the xdebug extension.
- Composer Semver Range Checker - A tool to help check the satisfiable ranges of a composer constraint.
Scripts
- ParameterHandler (⭐926) - Allows you to manage your ignored parameters when running a composer install or update.
- Tooly (⭐101) - Manage needed PHAR files in your project
composer.json
. Every PHAR file will be saved in the composer binary directory. Optional with GPG verification for every PHAR. - Melody (⭐397) - One-file composer scripts.
- Composer-Travis-Lint (⭐6) - Allows you to lint the Travis CI configuration file (
.travis.yml
). - Composer-Multitest (⭐5) - Enables you to run a Composer script against multiple, locally installed PHP versions, which are managed by PHPBrew or phpenv.
- ScriptsDev (⭐68) - Enables you to use a
scripts-dev
section, which triggers scripts only in dev mode. - PhantomJS-Installer (⭐149) - A Composer Package which installs the PhantomJS binary (Linux, Windows, Mac) into /bin of your project.
- Composer-Vendor-Cleanup (⭐3) - A script which removes whitelisted unnecessary files (like tests/docs etc.) from the vendor directory.
- Composer-Substitution-Plugin (⭐50) - A Composer plugin replacing placeholders in the
scripts
section by dynamic values.
Services
- Dependabot - Dependabot is a dependency update service. It monitors and updates your dependencies by sending a pull-request. The service is free for public repos and personal account repos.
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 PHPs 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
- Composer Best Practices — Jordi Boggiano @ phptek 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
- Slides by Nils Adermann
- Source: 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
- Managing dependencies is more than running "composer update"
- Composer Best Practices @ T3DD17
- Gain Control over your Dependencies with Private 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
- Slides by Jordi Boggiano
Packagist
Packagist is the PHP Package Repository.
Setup a Packagist Mirror
- Packagist Mirror (⭐192) - This script helps to setup a packagist mirror. It is the maintained and stable version of Packagist Crawler (⭐56).
- Docker Image (⭐27) - This Docker image helps to create a customized packagist mirror.
- Packagist Mirror from Indonesia (⭐31) - Another implementation for creating a packagist mirror.
Packagist Mirrors
About metadata mirrors: https://packagist.org/mirrors
- North America
- Canada - packagist.org Main mirror
- South America
- Brazil - packagist.com.br
- Africa
- South Africa - packagist.co.za
- Asia
- China - https://pkg.xyz/, https://developer.aliyun.com/composer
- India - https://packagist.in/
- Japan - packagist.jp
- Korea - https://packagist.kr/
Composer Repositories
Registry Manager
- https://github.com/slince/composer-registry-manager (⭐545) - The plugin helps you to switch between different composer repositories.
Private repositories
- fxpio/tug (⭐39) - Enables you to host a private Composer registry on AWS Serverless serving your private PHP packages, which are hosted on GitHub or GitLab services.
Private Packagist
- Private Packagist Cloud - A Composer Repository as a Service for private packages and to mirror packages from other repositories.
- Private Packagist Enterprise - On-premise self-hosted version of Private Packagist.
- Private Packagist API Client (⭐32) - A PHP client for the Private Packagist API. The client handles authentication, signature generation and access to all endpoints.
Repman
- repman.io & repman-io/repman (⭐508) - A Private PHP Package Repository Manager & Packagist Proxy.
- repman-io/composer-plugin (⭐9) - This plugin enables downloading via Repman by adding a distribution mirror URL for all your dependencies (without need to update the
composer.lock
file).
Packagist-compatible repositories
- WordPress Packagist - Mirrors the WordPress plugin and theme directories as a Composer repository.
- Asset Packagist - Enables installation of Bower and NPM packages as native Composer packages.
- Firegento - A Composer Repository providing Magento Modules.
- Drupal Packagist - Composer repositories for Drupal 7 and 8 core, modules, and themes.
- Satis Server (⭐113) - This docker container provides a Satis Server and enables you to run a private, self-hosted Composer repository with support for Git, Mercurial, and Subversion, HTTP API, HTTPs support, webhook handler and scheduled builds.
- Cloudsmith - A fully managed package management SaaS with PHP/Composer support (and many others).
- Release Belt (⭐162) - Self–hosted Composer repository implementation to quickly integrate ZIP files of third party non–Composer releases.
- Packeton (⭐382) - Private self-hosted Composer repository for vendors. Fork of packagist with adding support for authorization, customer users, groups, webhooks.
Satis
- GitLab-Composer (⭐163) - This is a branch/tag indexer for GitLab repositories.
- Satisfy (⭐509) - Satis composer repository manager with a Web UI.
- Satis Control Panel (⭐151) - A simple web UI for managing your Satis Repository with optional CI integration.
- Satis Go (⭐96) - A web server for managing Satis configuration and hosting the generated Composer repository.
Toran Proxy
- ToranProxy (deprecated) - In addition to providing a composer repository ToranProxy acts as a proxy server for Packagist and GitHub.
Copyright
To the extent possible under law, Jens A. Koch has waived all copyright and related or neighboring rights to this work.