A Composer plugin that automatically manages NPM/Yarn/pnpm dependencies for PHP projects and libraries.
Foxy is a Composer plugin that automates the management of JavaScript and CSS asset dependencies defined in NPM package.json files for PHP projects. It bridges PHP and JavaScript dependency management by automatically validating, installing, updating, and removing asset dependencies during Composer operations like install, update, require, and remove. It solves the problem of manually managing asset dependencies for PHP libraries and ensures consistency between PHP and frontend dependencies.
PHP developers and teams building projects or libraries that include frontend assets (JavaScript, CSS) and use Composer for PHP dependency management, particularly those working with frameworks like Symfony or Laravel that integrate with tools like Webpack Encore or Laravel Mix.
Developers choose Foxy because it seamlessly integrates Composer with native JavaScript package managers (NPM, Yarn, pnpm) without duplicating code or sacrificing performance. Its unique selling point is automatic state restoration—it rolls back both Composer lock files and asset dependencies if the asset manager fails, ensuring project reliability.
A fast, reliable, and secure NPM/Yarn/pnpm bridge for Composer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Integrates directly with Composer commands like install, update, require, and remove to automatically handle asset dependencies, reducing manual steps and errors as highlighted in the README's feature list.
Works seamlessly with NPM, Yarn, and pnpm, allowing teams to use their preferred JavaScript tool without vendor lock-in, as stated in the multi-package manager support section.
Restores the Composer lock file and asset dependencies to their previous state if the asset manager fails, ensuring project reliability and preventing broken states, a core feature emphasized in the README.
Compatible with popular frontend tools like Webpack, Gulp, Babel, and frameworks such as Symfony Webpack Encore and Laravel Mix, providing flexibility for diverse project setups.
Leverages the existing performance of Composer and JavaScript package managers without adding overhead, as it doesn't manipulate dependencies directly, keeping operations fast and efficient.
Requires both Composer and a JavaScript package manager (Node.js, NPM/Yarn/pnpm) to be installed and configured, adding setup time and maintenance burden for developers unfamiliar with both ecosystems.
Offers extensive configuration options per project, globally, or via environment variables, which can be overwhelming for simple use cases and may lead to misconfiguration without careful reading of the documentation.
Only provides value for PHP projects using Composer; it's useless for projects with alternative dependency managers or no dependency management, narrowing its applicability.
Focuses solely on dependency management without handling asset bundling or building, requiring additional setup with tools like Webpack or Gulp for complete frontend workflows, as noted in its focused philosophy.