Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/baraja-core/package-manager
π¦ Smart package manager for search and merge Composer dependencies.
https://github.com/baraja-core/package-manager
composer neon package
Last synced: about 2 months ago
JSON representation
π¦ Smart package manager for search and merge Composer dependencies.
- Host: GitHub
- URL: https://github.com/baraja-core/package-manager
- Owner: baraja-core
- License: mit
- Created: 2019-08-11T14:22:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-09T20:17:36.000Z (7 months ago)
- Last Synced: 2024-09-19T20:37:52.664Z (3 months ago)
- Topics: composer, neon, package
- Language: PHP
- Homepage: https://php.baraja.cz
- Size: 6.81 MB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Package manager
===============![Integrity check](https://github.com/baraja-core/package-manager/workflows/Integrity%20check/badge.svg)
Search all package dependencies automatically and register to your project.
π¦ Installation & Basic Usage
-----------------------------Simply use Composer:
```
$ composer require baraja-core/package-manager
```And add to your project `composer.json` this `scripts` section:
```json
"scripts": {
"post-autoload-dump": "Baraja\\PackageManager\\PackageRegistrator::composerPostAutoloadDump"
}
```Now is your project configured.
After each `composer ...` command this Package Manager will be called automatically.
π οΈ How to use
-------------In `Booting` class add create new instance of `PackageRegistrator`:
```php
new PackageRegistrator(
__DIR__ . '/../', // root path
__DIR__ . '/../temp' // temp path
);
```**Notice:** PackageRegistrator can work alone, Nette framework is not required, only recommended.
ποΈ Package.neon
---------------Imagine you want install new package. Then it you must set specific configuration to your project `common.neon`.
PackageRegistrator can scan all your installed packages and automatically create `package.neon` file with merged configuration. In your `common.neon` you define changes only and required parameters.
For correct work to `app/Booting.php` add generated configuration.
```php
$configurator->addConfig(__DIR__ . '/config/package.neon')
```> **Warning:** Configuration file can be different in all environment. Commit to repository is not recommended.
π·ββοΈ Tasks
-----------After creating internal container with list of packages, call list of special tasks.
Default task list (but you can add more):
- Config local neon creator and normalizer
- Assets from packages copier
- Project `composer.json` normalizer
- Clear cacheIf you want add your own task, simply create class with name `*Task` implementing `ITask` interface. Package manager will find your class automatically in your project or shared package.
Order of tasks can be defined by `Priority: xxx` doc comment anotation.
πΊοΈ Default project assert manager
---------------------------------In case of your package contain directory with name `install` or `update`, all inner content will be copied to your project automatically.
Structure in directory is same as your project root.
Name convention:
- `install` copy file and directories only in case when does not exist in your project structure,
- `update` rewrite your project files in all composer actions.If you want create file `jquery.js` to `/www/js` for example, simply define package structure:
```
/src
- files...
/install
/www
/js
- jquery.js
- composer.json
```π License
-----------`baraja-core/package-manager` is licensed under the MIT license. See the [LICENSE](https://github.com/baraja-core/package-manager/blob/master/LICENSE) file for more details.