Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Composer Distributor Laravel Package

phar-io/composer-distributor

Library to build Composer plugins that install and update PHAR-based tools instead of source code. Ideal for dev utilities like PHPUnit/PHPStan/Psalm: keep installs via Composer while avoiding dependency conflicts by distributing signed PHAR releases.

View on GitHub
Deep Wiki
Context7

Deploying PHAR files via Composer

If you have a tool that behaves like a binary and want to distribute this tool as a PHAR file instead of the source-code but don't want to give up the convenience to install your tool via Composer you can use this library to create a Composer-Plugin that deals with this in no time.

Motivation

Tools like PHPUnit, PHPStan, Psalm and many others are best installed as PHAR to avoid version conflicts between your dev tools and your own source code. But since so many developers just want to use Composer to install all the tools this project was created to simplify the deployment of PHAR files via Composer.

Create your own

To create a Composer-Plugin that installs your PHAR files follow these 3 steps.

Step 1 - Create your Composer-Plugin

The easiest way is to run the following command and follow the instructions.

composer create-project phar-io/mediator /path/to/your/directory/

This will create the plugin in the specified directory. Make sure the information in your distibutor.xml configuration is correct.

<?xml version="1.0" encoding="UTF-8"?>
<distributor xmlns="https://phar.io/composer-distributor"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="https://phar.io/xml/distributor/1.0/schema.xsd"
             packageName="yournamespace/pluginname"
             keyDirectory="keys">

    <phar name="pharname"
          file="https://github.com/yournamespace/pluginname/releases/download/{{version}}/pharname.phar"
          signature="https://github.com/yournamespace/pluginname/releases/download/{{version}}/pharname.phar.asc"/>

</distributor>

Step 2 - Create a Composer package for your plugin on packagist

Create a git repository for your plugin on the platform of your choosing. Then head over to packagist.org and set up a Composer package for your plugin.

⚠️ REMINDER ⚠️

Remember to tag your plugin repository as well whenever you release a new version.

Step 3 - Enjoy your PHAR deployment

Now everybody can install your PHAR by running the following command.

composer require --dev yournamespace/yourpluginname
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky