Courses & TutorialsProgramming

Awesome PHP Composer – Massive Collection of Resources

A curated list of resources for Composer, Packagist, Satis, Plugins, Scripts, Videos, Tutorials.

Composer

Support

Stack Overflow

IRC


Plugins

  • Documentation for Plugins – This offical documentation is good starting point, when writing a Composer plugin.
  • Composer-Asset-Plugin – A npm/Bower Dependencies Manager for Composer.
  • Composer-AWS – The plugin loads repository data and downloads packages from Amazon S3 (with authentication support for private repositories).
  • Composer-Composition – Provides an API, for checking your environment at runtime.
  • Composer-Suggest – Enables you to install a custom group of suggested packages, based on keyword patterns.
  • Composer-Versions-Check – Shows outdated packages from last major versions after using the update command (showing “Latest is vX.Y.Z”).
  • Composer-Changelogs – 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 – Merges multiple composer.json files at Composer runtime.
  • Composer-Bin-Plugin – Adds support for managing dependencies for multiple packages in a single repository or isolate bin dependencies.
  • Composer-Inheritance-Plugin – Opinionated version of Wikimedia composer-merge-plugin to work in pair with Bamarni composer-bin-plugin.
  • Composer-MonoRepo-Plugin – The plugin helps to manage dependencies for multiple packages in a single repository.
  • Composer-Patches-Plugin – Enables you to provide patches for any package from any package. When the dependency is fetched, the patch is applied on top.
  • Composer-Patches – The plugin applies a patch from a local or remote file to any required package.
  • Composer-Patches – Applies a patch from a local or remote file to any package that is part of a given composer project.
  • Composer-Patchset – Automatically fetch, update and apply patches to any composer package with a twist – store the patchset as a composer package itself.
  • Composer-Plugin-QA – Comprehensive Plugin for composer to execute PHP Quality assurance Tools.
  • Composer-Cleanup-Plugin – Removes tests & documentation folders from the vendor dir.
  • Composer-Cleaner – The tool removes unnecessary files and directories from the vendor directory.
  • Composer-Ignore-Plugin – 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 – Plugin removes unnecessary development files and directories from vendor directory by glob pattern syntax.
  • Drupal Vendor Hardening Composer Plugin – 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 – Allows you to share selected packages between your projects by creating symlinks.
  • Composer-Symlinker – Enables you to load packages from different directories (instead of loading them from /vendor).
  • Prestissimo – A parallel downloader using phpext_curl.
  • Composer-Curl-Plugin – The plugin use phpext_curl for downloading packages.
  • Composer-Custom-Directory-Installer – A composer plugin, to install different types of composer packages in custom directories outside the default composer installation path (vendor folder).
  • Composer-Dependency-Analyzer – Allows you to build a dependency graph for an installed composer project.
  • Graph-Composer – Provides a graph visualization for your project’s composer.json and its dependencies.
  • PackageVersions – Provides a very quick and easy access to installed composer dependency versions.
  • Composer Locator – Provides a means of locating the installation path for a given Composer package name.
  • PackageInfo – Enables you to retrieve all package informations (like version, tag, release date, description).
  • Composer-Git-Hooks – A library for easily managing git hooks in your composer config.
  • Symfony-Flex – Provides recipe-based installation and configuration management for Symfony packages.
  • Narrowspark-Automatic – Automates the most common tasks of applications, boost package downloads, adds a composer security audit and more.
  • PHPCodeSniffer-Composer-Installer – The plugin enables you to install PHP_CodeSniffer coding standards (rulesets).
  • Composer-Warmup – 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 – Composer plugin that executes npm/yarn packages installation operations, when composer package is installed or updated.
  • NodeJS-Installer – Installer for NodeJS and npm.
  • Node-Composer – Installer for NodeJS, npm and yarn.
  • Imposter-Plugin – Wrapping all composer vendor packages inside your own namespace. Intended for WordPress plugins.
  • Composer Preload – The plugin generates a vendor/preload.php file to warm up the Opcache.
  • PHP Inc – Automatically includes files for autoload and autoload-dev to facilitate using functions and grouped definitions within composer loaded applications.
  • Composer Registry Manager – Enables you to switch between different composer repositories.
  • Production-Dependencies-Guard – Prevents development packages from being added into require and getting into production environment.
  • Composer Exclusive Install – Prevents more than one install or update operation at a time.
  • Composer-Downloads-Plugin – Lightweight mechanism to download external resources (ZIP/TAR files) with only a url and path.
  • Private-Composer-Installer – Install helper outsourcing sensitive keys from the package URL into environment variables.
  • CycloneDX-PHP-Composer – 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 – Allow PHP libraries to define simple, freeform compilation tasks. Support post-install hooks in any package.

Tools

  • Composer SemVer Checker – Enables you identify constraint to version resolution issues, by doing a semantic version check for Packagist hosted packages.
  • Composer-Yaml – This tool converts composer.yml to composer.json.
  • Studio – 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 – Enables you to navigate Composer/NPM dependencies on Github.
  • ComposerRequireChecker – A CLI tool to analyze dependencies and verify that no unknown imported symbols are used in the sources of a package.
  • Composer-Unused – A CLI tool, which scans your code and shows unused Composer dependencies.
  • Composer-Normalize – The plugin helps to keep your composer.json file(s) consistent by restructuring and sorting entries (normalizing).
  • Composer-Service – Enables you to run Composer as a service on a remote server.
  • Composer PreferLowest Checker – 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 – A Bash/Shell autocompletion script for Composer.
  • Composer/Xdebug-Handler – Helps you to restart a CLI process without loading the xdebug extension.

Scripts

  • ParameterHandler – Allows you to manage your ignored parameters when running a composer install or update.
  • Tooly – 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 – One-file composer scripts.
  • Composer-Travis-Lint – Allows you to lint the Travis CI configuration file (.travis.yml).
  • Composer-Multitest – Enables you to run a Composer script against multiple, locally installed PHP versions, which are managed by PHPBrew or phpenv.
  • ScriptsDev – Enables you to use a scripts-dev section, which triggers scripts only in dev mode.
  • PhantomJS-Installer – A Composer Package which installs the PhantomJS binary (Linux, Windows, Mac) into /bin of your project.
  • Composer-Vendor-Cleanup – A script which removes whitelisted unnecessary files (like tests/docs etc.) from the vendor directory.
  • Composer Substitution Plugin – 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

Blogs

Videos

Slides


Packagist

Packagist is the PHP Package Repository.

Setup a Packagist Mirror

Packagist Mirrors

About metadata mirrors: https://packagist.org/mirrors

Composer Repositories

Private repositories

  • fxpio/tug – 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

Repman

  • repman.io & repman-io/repman – A Private PHP Package Repository Manager & Packagist Proxy.
  • repman-io/composer-plugin – 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 – 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 – Self–hosted Composer repository implementation to quickly integrate ZIP files of third party non–Composer releases.
  • Packeton – Private self-hosted Composer repository for vendors. Fork of packagist with adding support for authorization, customer users, groups, webhooks.

Satis

  • Gitlab-Composer – This is a branch/tag indexer for Gitlab repositories.
  • Satisfy – Satis composer repository manager with a Web UI.
  • Satis Control Panel – A simple web UI for managing your Satis Repository with optional CI integration.
  • Satis Go – 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.

Related List

Awesome PHP

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button