Composer installer

Complete install, update of your Composer package.


Plugin to perform some automatic operations when a package is installed, updated or uninstalled via Composer. Some frameworks, like Symfony, requires some operations to use a library, package or bundle in your project. They can provide solution, like Symfony Recipe to automate these operations, like Symfony Recipe, but they are limited and your package depend of external services and servers.

Teknoo Composer Installer is a Composer plugin, also allowing you to automate these operations without external restriction.

Operations must be declared in the extra section of the composer.json file of your package. Each operation must be a PHP class, implementing the interface ActionInterface, provided with Teknoo Composer. It will be automatically loaded and called when an operation (install, update or uninstall) concerns your package.

By default, Composer Installer provides three actions dedicated to Symfony, to generate file into packages, complete bundles.php and add routes.

Kubernetes

Features


Independent

Not require an external service

Userfriendly

No development restriction

Extendable

Create your own actions

Universal

Can be use for any packages or framework

GitHub


Fork the project on GitHub

It is open source! It's hosted, developed, and maintained on GitHub by folks like you.


View GitHub Project

Patreon


Support this project on Patreon

This project is free and will remain free, but it is developed on my free time. If you like it and help me maintain it and evolve it, don't hesitate to support me on Patreon. Thanks :) Richard.


Support it

Example


{
    "name": "your-company/your-package",
    [...]
    "extra": {
        "Teknoo\\Composer\\Installer": {
            "config": {
                #To configure Teknoo\\Composer\\Installer
                #disabled: true #to disabled installer in the current composer project
            },
            #To add some bundle in bundles.php
            "Teknoo\\Composer\\Action\\SymfonyBundle": {
                "Your\\Company\\Bundle": {"all":  true},
                "Your\\Another\\Company\\Bundle": {"dev": true }
            },
            #To add/update some file in config/packages
            "Teknoo\\Composer\\Action\\SymfonyPackages": {
                "bundle_config.yaml": [
                    "# Read the documentation:",
                    "my_bundle:",
                    "  foo:",
                    "    - 'bar'",
                    "    - '%kernel.project_dir%/vendor/foo/bar.php'",
                    "  bar:",
                    "    foo: 42"
                ],
                "bundle_another_config.yaml": "foo\\nbar",,
                "bundle_another_config.yaml": {
                    "base64": "aGVsbG8gd29ybGQ="
                },
            }
        }
    }
}