We have a product which is being slightly customized for each client. The exact customization is unpredictable - we assume that any point in the code can become needing change. However, we want to keep one code base, as 90+% of the code will be identical, so we don't have to merge every update or new feature to each client separately.
Bu nasıl yapılabilir?
Proje Yii çerçevesinde PHP ile yazılmış.
Basically, we would like something like this: Every client will have a folder with a 'mirror' of the code. That 'mirror' will include only those classes customized for the client. Than, at runtime, the clients identity will be known, and every mention of classes name will be resolved to the generic version of the class - if no client specific version exists for this client, or to the client customized version of that class - if such a version does exist.
I'll appreciate comments about the general design question.
Any comments on the above solution.
Are there other ways to achieve what I want to achieve?
Maybe some code generation tool for generating the client specific version from the current main code?
Ayrıca uygulama soru var. Bu nasıl PHP ve Yii uygulanabilir?
Ben phps __ autoload kullanmak için önce düşündüm. Ancak, yine de sınıfın tek bir sürümünü seçecektir. Ve bu biri dışında müşteriye özel sürüm her zaman seçmek gerekir, çünkü bir sorun: sınıfı istemci belirli bir sürümünü tanımlarken, biz bu sınıfın genel amaçlı versiyonunu uzatacaktır. Yani sınıfları sürüm yükleme süresinde, hem yüklü gerekir çözülemez ve müşteriye özel biri hariç her zaman kullanılacaktır.
Teşekkür ederim