Rinvex Composer is an intuitive package that utilizes Composer Plugin API to support additional actions during installation, such as installing packages outside of the default vendor library and running custom scripts during install, update, and uninstall processes.
Rinvex Composer also handles any module specific install/uninstall logic, so if your custom cortext-module contains for example migrations and/or seeds, it will be automatically executed upon composer installation.
-
Install the package via composer:
composer require rinvex/composer
-
Optionally you can publish config files by running the following commands:
php artisan vendor:publish --tag="rinvex-composer-config"
-
Done!
As it should be clear, the main purpose of this package is to modify composer's behaviour so packages of custom types could be installed in directories other than the default vendor
.
- cortex-module
- cortex-custom
Note: Checkout Composer's Custom Installers
All Rinvex Cortex modules are installed into the following paths accordingly:
cortex-module
-app
cortex-custom
-custom/path
So if you're building a new Rinvex Cortex module, you have to add the appropriate composer package type in your package's composer.json
, such as "type": "cortex-module"
for modules.
Note: Checkout Rinvex Module Package documentation for further details.
This is a powerful feature available for more flexibility and control over package installation paths. To use custom paths, your package's composer.json
file must have the following attributes:
"type": "cortex-custom",
"require": {
"rinvex/composer": "^1.0.0"
},
"extra": {
"path": "custom/path/"
}
Then you've to run composer install
or composer update
at your application root directory, and Rinvex Composer Installer will detect the custom package type and look for extra.path
. If it finds it; the package will be installed to that custom directory.
It's nice to give packages the ability to set their own installation paths, but on some hosts where there's some restrictions it may be a problem; In such case you may have to take control and enforce these packages to be installed within certain directory.
You can override package-level paths at the application-level through extra.paths
attribute in your application composer.json
file:
"require": {
"vendor/package": "^1.0.0"
},
"extra": {
"paths": {
"vendor/package": "enforced/overriden/path/for/vendor/package/"
}
}
Accordingly, this application-level path override will take precedence over any package-level custom paths.
Refer to the Changelog for a full history of the project.
The following support channels are available at your fingertips:
Thank you for considering contributing to this project! The contribution guide can be found in CONTRIBUTING.md.
Bug reports, feature requests, and pull requests are very welcome.
If you discover a security vulnerability within this project, please send an e-mail to [email protected]. All security vulnerabilities will be promptly addressed.
Rinvex is a software solutions startup, specialized in integrated enterprise solutions for SMEs established in Alexandria, Egypt since June 2016. We believe that our drive The Value, The Reach, and The Impact is what differentiates us and unleash the endless possibilities of our philosophy through the power of software. We like to call it Innovation At The Speed Of Life. That’s how we do our share of advancing humanity.
This software is released under The MIT License (MIT).
(c) 2016-2017 Rinvex LLC, Some rights reserved.