A fast, reliable, and secure NPM/Yarn bridge for Composer

Overview

Foxy

Latest Version Build Status Coverage Status SymfonyInsight Packagist Downloads

Foxy is a Composer plugin to automate the validation, installation, updating and removing of PHP libraries asset dependencies (javaScript, stylesheets, etc.) defined in the NPM package.json file of the project and PHP libraries during the execution of Composer. It handles restoring the project state in case NPM or Yarn terminates with an error. All features and tools are available: Npmrc, Yarnrc, Webpack, Gulp, Grunt, Babel, TypeScript, Scss/Sass, Less, etc.

It is certain that each language has its own dependency management system, and that it is highly recommended to use each package manager. NPM or Yarn works very well when the asset dependencies are managed only in the PHP project, but when you create PHP libraries that using assets, there is no way to automatically add asset dependencies, and most importantly, no validation of versions can be done automatically. You must tell the developers the list of asset dependencies that using by your PHP library, and you must ask him to add manually the asset dependencies to its asset manager of his project.

However, another solution exist - what many projects propose - you must add the assets in the folder of the PHP library (like /assets, /Resources/public). Of course, with this method, the code is duplicated, it pollutes the source code of the PHP library, no version management/validation is possible, and it is even less possible, to use all tools such as Babel, Scss, Less, etc ...

Foxy focuses solely on automation of the validation, addition, updating and deleting of the dependencies in the definition file of the asset package, while restoring the project state, as well as PHP dependencies if NPM or Yarn terminates with an error.

It is Fast

Foxy retrieves the list of all Composer dependencies to inject the asset dependencies in the file package.json, and leaves the execution of the analysis, validation and downloading of the libraries to NPM or Yarn. Therefore, no VCS Repository of Composer is used for analyzing the asset dependencies, and you keep the performance of native package manager used.

It is Reliable

Foxy creates mock packages of the PHP libraries containing only the asset dependencies definition file in a local directory, and associates these packages in the asset dependencies definition file of the project. Given that Foxy does not manipulate any asset dependencies, and let alone the version constraints, this allows NPM or Yarn to solve the asset dependencies without any intermediary. Moreover, the entire validation with the lock file and installation process is left to NPM or Yarn.

It is Secure

Foxy restores the Composer lock file with all its PHP dependencies, as well as the asset dependencies definition file, in the previous state if NPM or Yarn ends with an error.

Features

  • Compatible with Symfony Webpack Encore and Laravel Mix
  • Works with Node.js and NPM or Yarn
  • Works with the asset dependencies defined in the package.json file for projects and PHP libraries
  • Works with the installation in the dependencies of the project or libraries (not in global mode)
  • Works with public or private repositories
  • Works with all features of Composer, NPM and Yarn
  • Retains the native performance of Composer, NPM and Yarn
  • Restores previous versions of PHP dependencies and the lock file if NPM or Yarn terminates with an error
  • Validates the NPM or Yarn version with a version range
  • Configuration of the plugin per project, globally or with the environment variables:
    • Enable/disable the plugin
    • Choose the asset manager: NPM or Yarn (npm is used by default)
    • Lock the version of the asset manager with the Composer version range
    • Define the custom path of binary of the asset manager
    • Enable/disable the fallback for the asset package file of the project
    • Enable/disable the fallback for the Composer lock file and its dependencies
    • Enable/disable the running of asset manager to keep only the manipulation of the asset package file
    • Override the install command options for the asset manager
    • Override the update command options for the asset manager
    • Define the custom path of the mock package of PHP library
    • Enable/disable manually the asset packages for the PHP libraries
  • Works with the Composer commands:
    • install
    • update
    • require
    • remove

Documentation

Installation

Installation instructions are located in the guide.

License

Foxy is released under the MIT license. See the complete license in:

LICENSE

About

Foxy is a François Pluchino initiative. See also the list of contributors.

Reporting an issue or a feature request

Issues and feature requests are tracked in the Github issue tracker.

Acknowledgments

Thanks to Tobias Munk to have suggesting this name

Comments
  • Install/update ends with npm error:

    Install/update ends with npm error: "invalid version dev-master"

    This project looks great, and I'm really excited about the prospect of finally being able to manage the front-end dependencies of our Composer packages!

    As of yet, I haven't had any luck trying it out though - every composer install or composer update ends with an npm error.

    Here's the (verbose) output:

    $ composer install -v
    KODUS 2 installer enabled
    Loading composer repositories with package information
    Installing dependencies (including require-dev) from lock file
    Dependency resolution completed in 0.002 seconds
    Analyzed 290 packages to resolve dependencies
    Analyzed 1058 rules to resolve dependencies
    Nothing to install or update
    Package http-interop/http-server-handler is abandoned, you should avoid using it. Use psr/http-server-handler instead.
    Package http-interop/http-server-middleware is abandoned, you should avoid using it. Use psr/http-server-middleware instead.
    Generating autoload files
    Merging Composer dependencies in the asset package
    Installing npm dependencies
    npm ERR! Invalid version: "dev-master"
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/mindplay/.npm/_logs/2018-09-06T09_16_38_957Z-debug.log
    Fallback to previous state for the Asset package
    Fallback to previous state for Composer
    Loading composer repositories with package information
    Installing dependencies (including require-dev) from lock file
    Dependency resolution completed in 0.003 seconds
    Analyzed 290 packages to resolve dependencies
    Analyzed 1058 rules to resolve dependencies
    Nothing to install or update
    Package http-interop/http-server-handler is abandoned, you should avoid using it. Use psr/http-server-handler instead.
    Package http-interop/http-server-middleware is abandoned, you should avoid using it. Use psr/http-server-middleware instead.
    Generating autoload files
    
    
      [RuntimeException]
      The asset manager ended with an error
    
    
    Exception trace:
     () at /mnt/c/workspace/test/staging_project/vendor/foxy/foxy/Solver/Solver.php:108
     Foxy\Solver\Solver->solve() at /mnt/c/workspace/test/staging_project/vendor/foxy/foxy/Foxy.php:131
     Foxy\Foxy->solveAssets() at n/a:n/a
     call_user_func() at phar:///usr/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:176
     Composer\EventDispatcher\EventDispatcher->doDispatch() at phar:///usr/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:96
     Composer\EventDispatcher\EventDispatcher->dispatchScript() at phar:///usr/bin/composer/src/Composer/Installer.php:323
     Composer\Installer->run() at phar:///usr/bin/composer/src/Composer/Command/InstallCommand.php:119
     Composer\Command\InstallCommand->execute() at phar:///usr/bin/composer/vendor/symfony/console/Command/Command.php:242
     Symfony\Component\Console\Command\Command->run() at phar:///usr/bin/composer/vendor/symfony/console/Application.php:843
     Symfony\Component\Console\Application->doRunCommand() at phar:///usr/bin/composer/vendor/symfony/console/Application.php:193
     Symfony\Component\Console\Application->doRun() at phar:///usr/bin/composer/src/Composer/Console/Application.php:251
     Composer\Console\Application->doRun() at phar:///usr/bin/composer/vendor/symfony/console/Application.php:117
     Symfony\Component\Console\Application->run() at phar:///usr/bin/composer/src/Composer/Console/Application.php:100
     Composer\Console\Application->run() at phar:///usr/bin/composer/bin/composer:59
     require() at /usr/bin/composer:24
    
    install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--] [<packages>]...
    

    Here's the output of the debug log:

    0 info it worked if it ends with ok
    1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'install' ]
    2 info using [email protected]
    3 info using [email protected]
    4 verbose npm-session d6096af3659c374f
    5 silly install runPreinstallTopLevelLifecycles
    6 silly preinstall staging_project
    7 info lifecycle @~preinstall: @
    8 silly install loadCurrentTree
    9 silly install readLocalPackageData
    10 timing stage:loadCurrentTree Completed in 12ms
    11 silly install loadIdealTree
    12 silly install cloneCurrentTreeToIdealTree
    13 timing stage:loadIdealTree:cloneCurrentTree Completed in 0ms
    14 silly install loadShrinkwrap
    15 timing stage:loadIdealTree:loadShrinkwrap Completed in 5ms
    16 silly install loadAllDepsIntoIdealTree
    17 silly fetchPackageMetaData error for @composer-asset/kodus--media@file:vendor/foxy/composer-asset/kodus/media Invalid version: "dev-master"
    18 timing stage:rollbackFailedOptional Completed in 0ms
    19 timing stage:runTopLevelLifecycles Completed in 251ms
    20 silly saveTree staging_project
    21 verbose stack Error: Invalid version: "dev-master"
    21 verbose stack     at Object.fixVersionField (/usr/lib/node_modules/npm/node_modules/normalize-package-data/lib/fixer.js:191:13)
    21 verbose stack     at /usr/lib/node_modules/npm/node_modules/normalize-package-data/lib/normalize.js:32:38
    21 verbose stack     at Array.forEach (<anonymous>)
    21 verbose stack     at normalize (/usr/lib/node_modules/npm/node_modules/normalize-package-data/lib/normalize.js:31:15)
    21 verbose stack     at new Manifest (/usr/lib/node_modules/npm/node_modules/pacote/lib/finalize-manifest.js:121:3)
    21 verbose stack     at tarballedProps.then.props (/usr/lib/node_modules/npm/node_modules/pacote/lib/finalize-manifest.js:50:13)
    21 verbose stack     at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
    21 verbose stack     at Promise._settlePromiseFromHandler (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
    21 verbose stack     at Promise._settlePromise (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
    21 verbose stack     at Promise._settlePromiseCtx (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:606:10)
    21 verbose stack     at Async._drainQueue (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:138:12)
    21 verbose stack     at Async._drainQueues (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:143:10)
    21 verbose stack     at Immediate.Async.drainQueues [as _onImmediate] (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
    21 verbose stack     at runCallback (timers.js:763:18)
    21 verbose stack     at tryOnImmediate (timers.js:734:5)
    21 verbose stack     at processImmediate (timers.js:716:5)
    22 verbose cwd /mnt/c/workspace/test/staging_project
    23 verbose Linux 4.4.0-17134-Microsoft
    24 verbose argv "/usr/bin/node" "/usr/bin/npm" "install"
    25 verbose node v9.11.2
    26 verbose npm  v6.3.0
    27 error Invalid version: "dev-master"
    28 verbose exit [ 1, true ]
    

    I am just trying it out, so for now, I've manually listed two packages that have package files via configuration in my project's composer.json:

        "config": {
            "foxy": {
                "enable-packages": {
                    "kodus/media": true,
                    "kodus/media-admin": true
                }
            }
        }
    

    Both of these packages are on unable dev-branches, both named 1.0.0.

    The package.json files in those two packages both list some "dependencies" for some npm packages.

    If understand correctly, the idea is Foxy will aggregate these to a collective package.json for the project containing all the npm-dependencies of those two packages?

    Any idea what I'm doing wrong?

    bug 
    opened by mindplay-dk 18
  • Support Composer 2

    Support Composer 2

    composer-plugin-api for upcoming Composer 2 (can be installed with composer self-update --snapshot) has version 2.0.0.

    The foxy/foxy package requires composer-plugin-api version 1.0.0 thus can't be used with Composer 2.

    enhancement 
    opened by samdark 11
  • Asset paths in libraries

    Asset paths in libraries

    Suppose I have a library that needs some npm package(s). Normally I would just assume these assets are manually installed (and therefore located in the node_modules folder). Obviously when using foxy this will no longer be the case.

    How would my library know where to look for the assets? Should foxy create something like symlinks to the main node_modules folder? Or should it somehow make the location of that folder available to the PHP world?

    On the PHP side with composer we basically no longer care about paths since we have autoloading; for assets however we still need the path or the URL or a way to publish them without knowing the path. Ideally we would want to support this without requiring changes in the libraries themselves...

    support 
    opened by SamMousa 11
  • foxy should respect env variable COMPOSER for finding packages.json

    foxy should respect env variable COMPOSER for finding packages.json

    Related to https://github.com/foxypkg/foxy/issues/3#issuecomment-328782568

    Besides that, it would be nice to have to possibility to define a custom packages.json file/path.

    support 
    opened by schmunk42 10
  • Read asset dependencies from a composer file as a fallback

    Read asset dependencies from a composer file as a fallback

    I am working on a way to provide asset installation even without npm or yarn installed - just for quick-starting projects.

    An idea woud be to use https://asset-packagist.org/ in conjunction with https://github.com/wikimedia/composer-merge-plugin - having asset definitions in separate files like composer.asset.json (described also in https://github.com/yiisoft/yii2/issues/14862#issuecomment-369303919) - they only define npm-asset/xyz...

    Would it be an option for foxy to use those files instead of packages.json as a fallback?

    question 
    opened by schmunk42 9
  • aggregating common devDependencies?

    aggregating common devDependencies?

    The README mentions:

    All features and tools are available: Npmrc, Yarnrc, Webpack, Gulp, Grunt, Babel, TypeScript, Scss/Sass, Less, etc.

    These are all tools you'd use at development-time, meaning the source-code itself is going to have build-time dependencies on specific version of tools like tsc, node-sass, webpack, etc.

    It's my understanding that devDependencies aren't aggregated like dependencies?

    I should explain what I'm hoping to do: I'd like to use Foxy to aggregate the npm-dependencies of Composer packages - then use webpack at the project-level to build and bundle all the front-end dependencies of the Composer packages.

    To run webpack, I'll need common dev-dependencies like Typescript and node-sass, etc.

    In order for that to work, it's important to come up with a common set of dev-dependencies at the project-level - for example, a project that requires a Composer packages that has a devDependency on typescript^2 should conflict with another Composer package that requires typescript^3.

    Same for node-sass, and for webpack itself, and so on.

    Is this use-case supported? Will it support a truly modular architecture, in which Composer packages effectively contribute both server-side and front-end dependencies?

    Or how do you use Foxy in practice? (I have read the documentation, but it's quite abstract and seems to mostly deal with technical details like using/configuring the tool, and only a brief overview of the practical use-cases? Please let me know if I've overlooked something!)

    question 
    opened by mindplay-dk 8
  • The asset manager ended with an error

    The asset manager ended with an error

    Running in a Docker container...

    / # ./composer.phar require foxy/foxy:@dev
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    ./composer.json has been created
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Package operations: 1 install, 0 updates, 0 removals
      - Installing foxy/foxy (dev-master 8857b24): Cloning 8857b2426a from cache
    Writing lock file
    Generating autoload files
    Installing npm dependencies
    npm ERR! Linux 4.9.0-3-amd64
    npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install"
    npm ERR! node v6.7.0
    npm ERR! npm  v3.10.3
    npm ERR! code EINVALIDTYPE
    
    npm ERR! typeerror Error: Argument #1: Expected object but got array
    npm ERR! typeerror     at moduleName (/usr/lib/node_modules/npm/lib/utils/module-name.js:25:3)
    npm ERR! typeerror     at module.exports (/usr/lib/node_modules/npm/lib/utils/package-id.js:9:14)
    npm ERR! typeerror     at build.linkStuff (/usr/lib/node_modules/npm/lib/build.js:105:25)
    npm ERR! typeerror     at Array.<anonymous> (/usr/lib/node_modules/npm/node_modules/slide/lib/bind-actor.js:15:8)
    npm ERR! typeerror     at LOOP (/usr/lib/node_modules/npm/node_modules/slide/lib/chain.js:15:14)
    npm ERR! typeerror     at chain (/usr/lib/node_modules/npm/node_modules/slide/lib/chain.js:20:5)
    npm ERR! typeerror     at module.exports (/usr/lib/node_modules/npm/lib/install/action/build.js:9:3)
    npm ERR! typeerror     at actions.(anonymous function) (/usr/lib/node_modules/npm/lib/install/actions.js:48:12)
    npm ERR! typeerror     at execAction (/usr/lib/node_modules/npm/lib/install/actions.js:98:7)
    npm ERR! typeerror     at exports.doOne (/usr/lib/node_modules/npm/lib/install/actions.js:103:3)
    npm ERR! typeerror This is an error with npm itself. Please report this error at:
    npm ERR! typeerror     <http://github.com/npm/npm/issues>
    
    npm ERR! Please include the following file with any support request:
    npm ERR!     /npm-debug.log
    Fallback to previous state for the Asset package
    Fallback to previous state for Composer
    
    Installation failed, deleting ./composer.json.
    
                                             
      [RuntimeException]                     
      The asset manager ended with an error  
                                             
    
    require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] [<packages>]...
    

    [update]

    Looks like a missing packages.json, should be auto-created.

    support 
    opened by schmunk42 8
  • enabled false, still triggers yarn

    enabled false, still triggers yarn

    Even though I have this conifg:

        "config": {
            "foxy": {
                "enabled": false,
                "manager": "yarn",
                "enable-packages": {
                    "*": true
                }
            },
        }
    

    I get this error

    Installs: foxy/foxy:dev-master c8225f7, psr/http-message:1.0.1, psr/log:1.0.2, psr/simple-cache:1.0.0, cebe/markdown:1.1.2, yiisoft/yii2-dev:2.1.x-dev 603c084, codemix/yii2-streamlog:1.2.1
      - Installing foxy/foxy (dev-master c8225f7): Cloning c8225f715cbe0b9310972e3d67ca15955691a26e from cache
    Plugin installation failed, rolling back
      - Removing foxy/foxy (dev-master)
    
                                              
      [Foxy\Exception\RuntimeException]       
      The binary of "yarn" must be installed  
                                              
    
    bug 
    opened by schmunk42 7
  • Yarn update should use install instead of upgrade

    Yarn update should use install instead of upgrade

    Upgrade will update all packages to lastest version.

    Install not.

    If I create a project, then I need add a package after few days. upgrade will update all packages, install will only install that package I need. I think install is correct.

    bug 
    opened by krissss 6
  • Easy transition from composer-asset-plugin to foxy

    Easy transition from composer-asset-plugin to foxy

    Could there be a functionality to support cap syntax? Like so...

    • convert npm- into entries in packages.json.
    • don't use them in composer solver
    • run composer installation
    • run foxy

    Maybe even with a mapping for bower-Xyz.js to npm-xyz if needed. (optional)

    enhancement external 
    opened by schmunk42 6
  • foxy does not split packages in dev and production packages

    foxy does not split packages in dev and production packages

    Situation is the following: package.json of library

    [...]
    "dependencies": {
        "example": "1",
      }
    [...]
    

    composer.json of project

    [...]
    "require-dev": {
        "library-name" : "1.0"
    },
    [...]
    

    resulting package.json of project after installation with foxy

    [...]
    "dependencies": {
        "@library-name": "file:./vendor/foxy/composer-asset/library-name"
    }
    [...]
    

    expected result in package.json

    [...]
    "devDependencies": {
        "@library-name": "file:./vendor/foxy/composer-asset/library-name"
    }
    [...]
    

    I'm not quite sure if I overlooked something in the documentation or if there is another way to get foxy to do what we like it to do. As it is right now we found no way to make foxy install dev dependencies as such. As they are absent when we do a composer install --no-dev we get npm errors.

    wontfix 
    opened by rdss-sknott 5
  • Running composer install is updating package-lock.json

    Running composer install is updating package-lock.json

    I'm running composer install and found that package-lock.json has been altered. We're committing the lock file. How to prevent updating an existing lock?

    opened by claudiu-cristea 0
Releases(v1.2.1)
  • v1.2.1(Apr 17, 2022)

    Improvements

    • Make compatible with Composer 2.3 (#44, #45)

    Bug fixes

    • v1.2.0 no more works with PHP less than 7.1 (#43)

    Requirements:

    Composer version: ^1.5.0|^2.0.0

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Mar 6, 2022)

    New features

    • Make compatible with Yarn 2 (a3ad5d853e36d0b79f5fd0b2265192d31681b085)

    Improvements

    • Make compatible with Composer 2.2 (dc2759ed5b1a84ad8966f31e1fd59b300b5b9605)
    • Convert asset manager version into composer version for comparison (7d3d8242b47abc5fab0016054c4fb79a941577aa)

    Requirements:

    Composer version: ^1.5.0|^2.0.0

    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Aug 9, 2021)

    Improvements

    • Update tests to Phpunit 9.5 (f5816dd470836daa32e2012f143aa93d219e41da)
    • Update to PHP CS Fixer 3 (4c305d2b84fdace348ff9930788585d69b37d23f, 96ffd66f5c1d1058dfe22c2728e1a2d6eac26f23)
    • Update links on Readme (7c9af0850e51501a676a3c9e68ec21be4520add4, f9b17ec6701413a17358af21f47a35f2dc690616)
    • Move to Travis.com (5f17a118a032df6d0817dcb5ec290e5863232123)

    Bug fixes

    • Make compatible tests with Composer 2 (2c7029325f44947b6656a463b3b3392c1e74ce85)

    Requirements:

    Composer version: ^1.5.0|^2.0.0

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Jun 24, 2021)

  • v1.1.0(Jun 6, 2020)

    Improvements

    • Make compatible with Composer 2.0 (#33, b7473e7cc79080b6369e2e5c161a43f814088f82)
    • Detect automatically the available asset manager by the lockfile in project or the installation of asset manager (fa541677948a1a765a8120653603659249c60f0f)

    Requirements:

    Composer version: ^1.5.0|^2.0.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.8(Aug 19, 2019)

    Improvements

    • Update the doc (928c31b9f55b16af0ef626b4e64da1ddb52fddaf)

    Bug fixes

    • Fix the initialisation of asset fallback on the first installation (dca69a757c8fdd80d8a2774b4f9183020c2c00f8)

    Requirements:

    Composer version: ^1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.7(Aug 8, 2019)

    Improvements

    • Add the compatibility with Composer 1.9 (4f87e235c57562d7de846d0f0492ed118a98ad0b)
    • Replace call static methods for phpunit (b4a2124dc2a31c7885a08254243dd974a1bcefd3)

    Requirements:

    Composer version: ^1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.6(May 17, 2019)

    Improvements

    • Initialize the plugin only when the Solver SAT is used (341d972df15f38efd5eaa505dd63aa4116655a7c)

    Requirements:

    Composer version: ^1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.5(May 1, 2019)

    Improvements

    • Add introduction in the doc (#20)
    • Update to Composer 1.8 (f7b7b32218267fb0ae92684e4283f1faab6af5da)
    • Update the Travis config (985c95e3bfc61e1aa685e8195c758ff5d256922d, 619679404d04cbd50a50df0b028430413c86c665)
    • Update the php code styles (fbaf7e4f3770dfbf7373a178610e26d0a44b4f88)

    Bug fixes

    • Fix yarn outdated lockfile with the upgrade command (#26, 518f39cac9a6bd7d3dcbfaddb59f05f764471bec)
    • Add the minimal versions for the asset managers (#24, 847ebd3eb55c742c3805f7d91e363a4fd1b644f8)

    Requirements:

    Composer version: ^1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.4(Sep 7, 2018)

    Bug fixes

    • Fix the conversion of version with wildcard in pretty version (#18, d98f7cd66208cbe72cc935828c7eb9896ee75839, 5b7cb97abc07fbff4eec87abd941be5c6a532c54)

    Requirements:

    Composer version: ^1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.3(Mar 26, 2018)

  • v1.0.2(Mar 13, 2018)

  • v1.0.1(Mar 1, 2018)

  • v1.0.0(Dec 28, 2017)

  • v1.0.0-beta2(Oct 6, 2017)

    Beta 2 of Foxy.

    New features

    • Add Solver events (3f16cd09192a9c455415a6e6b2b2b6e93ea1a27b, #8)

    Improvements

    • Add the Composer's version validation (3184fb5738a0e6e3da5a5ba11530ea2d6a9c6749)
    • Allow to define a map of asset manager for config options (#7, 71b8792664bf2fce286a6cdb0ac5201156f6e37c)
    • Add new tests (df79f14b8c0e99bd5612669bd7a5b0de0e3f13b4)
    • Update the doc (a7c4c6b8052d2249972a5ccbaa630aceeaa3b870, #9)

    Bug fixes

    • Invalid conversion of the locker file's aliases section (3b6b1ca046f709e21e8101f35a14c2726e19c2e1)

    Requirements:

    Composer version: ^1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-beta1(Sep 13, 2017)

    Beta 1 of Foxy.

    Features

    • Works with Nodejs and NPM or Yarn
    • Works with the asset dependencies defined in the package.json file for projects and PHP libraries
    • Works with the installation in the dependencies of the project or libraries (not in global mode)
    • Works with public or private repositories
    • Works with all features of Composer, NPM and Yarn
    • Retains the native performances of Composer, NPM and Yarn
    • Restores previous versions of PHP dependencies and the lock file if NPM or Yarn terminates with an error
    • Validates the NPM or Yarn version with a version range
    • Configuration of the plugin per project, globally or with the environment variables:
      • Enable/disable the plugin
      • Choose the asset manager: NPM or Yarn (npm by default)
      • Lock the version of the asset manager with the Composer version range
      • Define the custom path of binary of the asset manager
      • Enable/disable the fallback for the asset package file of the project
      • Enable/disable the fallback for the Composer lock file and its dependencies
      • Enable/disable the running of asset manager to keep only the manipulation of the asset package file
      • Override the install command options for the asset manager
      • Override the update command options for the asset manager
      • Define the custom path of the mock package of PHP library
      • Enable/disable manually the asset packages for the PHP libraries
    • Works with the Composer commands:
      • install
      • update
      • require
      • remove

    Requirements:

    Composer version: ^1.5.0

    Source code(tar.gz)
    Source code(zip)
Owner
Fxp
Open source repositories of @francoispluchino
Fxp
A composer plugin, to install differenty types of composer packages in custom directories outside the default composer default installation path which is in the vendor folder.

composer-custom-directory-installer A composer plugin, to install differenty types of composer packages in custom directories outside the default comp

Mina Nabil Sami 136 Dec 30, 2022
MOP is a php query handling and manipulation library providing easy and reliable way to manipulate query and get result in a fastest way

Mysql Optimizer mysql optimizer also known as MOP is a php query handling and manipulation library providing easy and reliable way to manipulate query

null 2 Nov 20, 2021
Jump is yet another self-hosted startpage for your server designed to be simple, stylish, fast and secure.

Jump Jump is yet another self-hosted startpage for your server designed to be simple, stylish, fast and secure. Features Fast, easy to deploy, secure

Dale Davies 309 Dec 27, 2022
This repository contains the codebase PHP bridge using RoadRunner Jobs plugin.

RoadRunner Jobs Plugin This repository contains the codebase PHP bridge using RoadRunner Jobs plugin. Installation To install application server and J

Spiral Scout 15 Nov 9, 2022
Sandbox for figuring out why the Alpine + Turbo bridge is broken

Podcaster A Turn-Key Podcasting Starter Kit for Statamic 3 Features This kit is deceptively simple – it may look like a 3 page site but there's a whol

Jack McDade 1 Mar 25, 2022
Bridge to use Symfony Messenger on AWS Lambda with Bref

Bridge to use Symfony Messenger on AWS Lambda with Bref. This bridge allows messages to be dispatched to SQS, SNS or EventBridge, while workers handle

bref 58 Nov 15, 2022
Ied plugin composer - Inspired Plugin Composer: Create, publish and edit plugins from within Textpattern CMS.

ied_plugin_composer Create, publish and edit plugins from within Textpattern CMS. Creates a new page under the Extensions tab where you can edit and e

Stef Dawson 8 Oct 3, 2020
Composer Repository Manager for selling Magento 2 extension and offering composer installation for ordered packages.

Magento 2 Composer Repository Credits We got inspired by https://github.com/Genmato. Composer Repository for Magento 2 This extension works as a Magen

EAdesign 18 Dec 16, 2021
Victor The Cleaner for Composer - This tool removes unnecessary files and directories from Composer vendor directory.

Victor The Cleaner for Composer This tool removes unnecessary files and directories from Composer vendor directory. The Cleaner leaves only directorie

David Grudl 133 Oct 26, 2022
Magento-composer-installer - Composer installer for Magento modules

!!! support the maintainer of this project via Patreon: https://www.patreon.com/Flyingmana Magento Composer Installer The purpose of this project is t

null 213 Sep 24, 2022
Composer registry manager that help to easily switch to the composer repository you want

CRM - Composer Registry Manager Composer Registry Manager can help you easily and quickly switch between different composer repositories. 简体中文 Install

Tao 500 Dec 29, 2022
Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins.

Imposter Plugin Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins. Built with ♥ by Typ

Typist Tech 127 Dec 17, 2022
Dependency graph visualization for composer.json (PHP + Composer)

clue/graph-composer Graph visualization for your project's composer.json and its dependencies: Table of contents Usage graph-composer show graph-compo

Christian Lück 797 Jan 5, 2023
Composer Registrar Composer Plugin for Magento 2

This module add a global registration.php that replace the default glob search performed for each request to discover the components not installed from composer.

OpenGento 3 Mar 22, 2022
Drupal Composer Scaffold - A flexible Composer project scaffold builder

This project provides a composer plugin for placing scaffold files (like index.php, update.php, …) from the drupal/core project into their desired location inside the web root. Only individual files may be scaffolded with this plugin.

Drupal 44 Sep 22, 2022
Opinionated version of Wikimedia composer-merge-plugin to work in pair with Bamarni composer-bin-plugin.

Composer Inheritance Plugin Opinionated version of Wikimedia composer-merge-plugin to work in pair with bamarni/composer-bin-plugin. Usage If you are

Théo FIDRY 25 Dec 2, 2022
The Current US Version of PHP-Nuke Evolution Xtreme v3.0.1b-beta often known as Nuke-Evolution Xtreme. This is a hardened version of PHP-Nuke and is secure and safe. We are currently porting Xtreme over to PHP 8.0.3

2021 Nightly Builds Repository PHP-Nuke Evolution Xtreme Developers TheGhost - Ernest Allen Buffington (Lead Developer) SeaBeast08 - Sebastian Scott B

Ernest Buffington 7 Aug 28, 2022
This is the US hardened version of PHP-Nuke Titanium and is secure and safe

This is the US hardened version of PHP-Nuke Titanium and is secure and safe. Built on PHP Version 7.4.30 - Forums - Blogs - Projects - Advanced Site Map - Web Links - Groups - Advanced Theme Support - Downloads - Advertising - Network Advertising - Link Back System - FAQ - Bookmark Vault - Private Virtual Cemetery - Loan Amortization - Image Hosting

Ernest Allen Buffington (The Ghost) 12 Dec 25, 2022
A laboratory for learning secure web and mobile development in a practical manner.

A laboratory for learning secure web and mobile development in a practical manner. Build your lab By provisioning local environments via docker-compos

Globo.com 741 Dec 31, 2022