The application I'm working on has the codebase structured like this:
- a "Base" application, that is a sort of cross between a library and a framework, with most common methods and generic classes.
- 4 applications that are built on top of the Base that have specific use cases.
Each one of these 5 "parts" have their own dependency configuration, test folder, root folder, settings, phpunit configuration and such.
The setup right now that makes everything work is a master dependency configuration that binds all the other ones and trick PhpStorm into thinking that is it only one big application.
It's easier to make changes all over the place this way, and have autocomplete and such, but this has a lot of side effects like confusing PhpStorm on which unit test folder to use, sometimes the master composer file is not updated well and all sort of this kind of issues.
We have to use multple phpunit xml configurations that force us to all sort of limitations on the way we can run tests
My approach to improve things would be to actually have a PhpStorm project for each of the 4 applications, and have the Base embedded into each of them as a library somehow, so the side effects are solved
The problem I have so far is that PhpStorm in th eproject will recognize composer of the application but not composer of the Base, so a few dependencies are not recognized. How do I fix this? What is the best way to embed the Base into the application project?