I am trying to figure out what is the best approach to a reusable symfony application which has this key feature:
- It uses a company shared private bundle which is being used in different projects (not just copies of the main app)
- It has the main app which is the reusable one with optional feature that can be enabled via database
- Each main app installation can have one or more extra feature bundle (which are extra private GIT repository). The key point here is that it may happen that for one installation i may want FeatureA to be in “beta mode” (so let’s say like a develop branch) while some other installation may still want the feature in “stable mode”. This would bring incoherence in my composer.json file and i can’t find any good solution to this issue.
For example let’s say my company shared private bundle is just a set of services that can handle some common utility tasks. The main app can be something like “stock management” then for some reason one installation may be needed to be used as a base for a book store, the other one for a shop center where each one has their own special needs to add extra feature around the base stock management layer
My question are:
- Has this approach have any sense at all? If not, what are the alternatives?
- If keeping everything separated as i said is doable, how should i handle different composer.json, assets (css/js), templates and more important symfony routes?
I would accept any answer that leads me to a solid, robust and maintainable long-term solution
I tried approaching the issue by creating 3 different repository: the shared private bundle, the main app and the feature bundle but i can’t seem to find the will to continue before i know if the decision made is solid enough to be used as base structure for the project