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.
cocosmos/filament-sticky-save-bar
patrickbussmann/oauth2-apple
3brs/enterprise-security-bundle
anousss007/vigilance
supportpal/eloquent-model
ardenexal/fhir-models
laravel-at/laravel-image-sanitize
romalytar/yammi-audit-log-laravel
ardenexal/fhir-validation
arshaviras/weather-widget
laravel-chronicle/core
sunchayn/nimbus
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope