Download the PHP package steady-ua/unicorn without Composer
On this page you can find all versions of the php package steady-ua/unicorn. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package unicorn
unicorn
The composer plugin organizes a mono-repository of php packages.\
Ensures the consistency of all dependencies on the same package version.\
Adds tools for working with shared dependencies.
- Concept
- Documentation
Concept
For example, we have two projects:
- the
webproject serves http requests - the
workerproject for background processes
Both projects use common packages placed in the packages directory
Raw composer - provides the ability to include local packages by specifying your own path repository.\
But there are a number of limitations, such as:
- in each
composer.jsonfile you must describe all local repositories. - each package has its own local file, and it is possible that packages of different versions are used.
- difficult to analyze package usage.
- difficult to update dependencies used in different packages.
The steady-ua/unicorn plugin removes these restrictions and provides tools for analyzing and updating dependencies.
Why Unicorn instead of other Monorepo tools?
Unlike tools that merge all composer.json files into a single root file, unicorn works as a native Composer v2 plugin.
- Native Dependency Resolution: All monorepo packages are registered in a local Composer registry. This delegates validation entirely to Composer's native SAT solver. To add a dependency, simply navigate to the needed package and run
composer require my/foo. Composer will naturally prevent version conflicts (e.g., trying to install different versions of a third-party library across the monorepo) and will automatically detect and prevent circular dependencies during installation. - Semantic Versioning at the Core: The entire architecture revolves around semantic versioning. Each package must define its version in
composer.json(e.g.,"version": "1.0.0"). To simplify workflows, theuni:versioncommand automates version bumping, updates the constraints in any dependent local packages, and runs configured tests or scripts. For external dependencies, theuni:updatecommand simplifies third-party package migration by synchronizing updates and running tests across all dependent local packages. - Dependency Analysis & Visualization: Includes built-in commands like
uni:whyanduni:why-notto trace dependency paths across the monorepo, as well as an interactive browser-based dependency graph visualization using theuni:servercommand. - Isolated Contexts: For development, a shared
vendorfolder is created at the project root. However, packages remain self-sufficient. Each package retains its owncomposer.jsonand gets its own localvendordirectory where only its explicitly required dependencies are installed via symlinks. This prevents accidental reliance on undeclared packages and allows you to run dependency analysis tools accurately at the individual package level. - Smart CI capabilities: Commands like
uni:runallow you to execute scripts (e.g., tests or linters) recursively up the dependency tree, ensuring that changes in a base package don't break downstream dependents without having to run tests for the entire monorepo. - Distribution and Release: Solves common monorepo deployment issues.\
The
uni:buildcommand extracts an independent, ready-to-run application with only its strictly required dependencies, making it perfect for Docker builds or direct deployment without dragging the entire monorepo along. \ Additionally, theuni:splitcommand automates the publishing of local packages to separate, read-only repositories. This allows external projects outside the monorepo to easily require your shared packages via standard Composer installations.
Documentation
For a detailed guide on how to work with Unicorn, check out the docs/ directory:
- Getting Started
- Development Workflow
- Commands Reference
- Monorepo Split Guide
All versions of unicorn with dependencies
ext-json Version *
symfony/console Version ^5.0|^6.0
composer/composer Version ^2.3
composer-plugin-api Version ^2.0