Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins.
Built with ♥ by Typist Tech
Typist Tech is ready to build your next awesome WordPress site. Hire us!
--- ## Usage ### Sit Back and Relax Once installed, this plugin hooks into `composer install`, `composer update` and `composer dump-autoload`, automatically run [imposter](https://github.com/TypistTech/imposter/) for you. Besides, imposter plugin autoloads all modified files as [classmap](https://getcomposer.org/doc/04-schema.md#classmap). When those events triggered, this plugin: 1. looks for `/path/to/project/root/composer.json` 2. finds out [vendor-dir](https://getcomposer.org/doc/06-config.md#vendor-dir) 3. finds out all [required packages](https://getcomposer.org/doc/04-schema.md#require), including those required by dependencies 4. finds out all [autoload paths](https://getcomposer.org/doc/04-schema.md#autoload) for all required packages 5. prefixes all namespaces with the imposter-plugin namespace defined in your `composer.json` Learn more on [imposter's readme](https://github.com/TypistTech/imposter#usage). ## Known Issues Help wanted. Pull requests are welcomed. 1. Imposter run twice when `composer install` and `composer update` 1. Traits are not transformed 1. Virtual packages are not supported ## Frequently Asked Questions ### What can I find more information? Learn more on [imposter's readme](https://github.com/TypistTech/imposter/) for more details. ### How about not hooking into composer commands? Use [imposter](https://github.com/TypistTech/imposter/) directly. ### Do you have real life examples that use this composer plugin? Here you go: * [Sunny](https://github.com/Typisttech/sunny) * [WP Cloudflare Guard](https://github.com/TypistTech/wp-cloudflare-guard) *Add your own [here](https://github.com/TypistTech/imposter-plugin/edit/master/README.md)* ### Which composer versions are supported? Both v1 and v2. ### Will you add support for older PHP versions? Never! This plugin will only work on [actively supported PHP versions](https://secure.php.net/supported-versions.php). Don't use it on **end of life** or **security fixes only** PHP versions. ### It looks awesome. Where can I find some more goodies like this - Articles on [Typist Tech's blog](https://typist.tech) - [Tang Rufus' WordPress plugins](https://profiles.wordpress.org/tangrufus#content-plugins) on wp.org - More projects on [Typist Tech's GitHub profile](https://github.com/TypistTech) - Stay tuned on [Typist Tech's newsletter](https://typist.tech/go/newsletter) - Follow [Tang Rufus' Twitter account](https://twitter.com/TangRufus) - **Hire [Tang Rufus](https://typist.tech/contact) to build your next awesome site** ### Where can I give 5-star reviews? Thanks! Glad you like it. It's important to let me knows somebody is using this project. Please consider: - [tweet](https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2FTypistTech%2Fimposter-plugin&via=tangrufus&text=Imposter%20Plugin%20-%20Composer%20plugin%20that%20wraps%20all%20%23composer%20vendor%20packages%20inside%20your%20own%20namespace.%20Intended%20for%20%23WordPress%20plugins) something good with mentioning [@TangRufus](https://twitter.com/tangrufus) - ★ star [the Github repo](https://github.com/TypistTech/imposter-plugin) - [👀 watch](https://github.com/TypistTech/imposter-plugin/subscription) the Github repo - write tutorials and blog posts - **[hire](https://www.typist.tech/contact/) Typist Tech** ## Testing ```bash composer test composer style:check ``` ## Alternatives Here is a list of alternatives that I found. However, none of these satisfied my requirements. *If you know other similar projects, feel free to edit this section!* * [Mozart](https://github.com/coenjacobs/mozart) by Coen Jacobs - Works with PSR0 and PSR4 - Dependency packages store in a different directory * [PHP Scoper](https://github.com/humbug/php-scoper) - Prefixes all PHP namespaces in a file/directory to isolate the code bundled in PHARs ## Feedback **Please provide feedback!** We want to make this project as useful as possible. Please [submit an issue](https://github.com/TypistTech/imposter-plugin/issues/new) and point out what you do and don't like, or fork the project and [send pull requests](https://github.com/TypistTech/imposter-plugin/pulls/). **No issue is too small.** ## Security Vulnerabilities If you discover a security vulnerability within this project, please email us at [imposter-plugin@typist.tech](mailto:imposter-plugin@typist.tech). All security vulnerabilities will be promptly addressed. ## Credits [Imposter Plugin](https://github.com/TypistTech/imposter-plugin) is a [Typist Tech](https://typist.tech) project and maintained by [Tang Rufus](https://twitter.com/TangRufus), freelance developer for [hire](https://www.typist.tech/contact/). Full list of contributors can be found [here](https://github.com/TypistTech/imposter-plugin/graphs/contributors). ## License [Imposter Plugin](https://github.com/TypistTech/imposter-plugin) is released under the [MIT License](https://opensource.org/licenses/MIT).