什麼是安裝不同版本的PHP類的最佳途徑和撥動他們基於配置價值?
這裏是我的情況(使用Zend Framework - 不應該的問題,但可能):
我有2個不同的版本,我想能夠調用Web服務的。我需要使用我的配置文件中的值在它們之間切換。
現在,我有一個充當工廠的類,並根據配置值確定需要返回哪個類的版本。工廠返回的類的兩個版本都擴展了相同的抽象類,所以一旦工廠返回對象,我就可以在其餘代碼中將這兩個版本對待。這似乎沒什麼問題在理論上,但我最終的代碼看起來像這樣在我的工廠類,這似乎並沒有被很好的做法:
require_once APPLICATION_PATH . '/models/Search/SearchModelV' . $this->config->model->version . '.php';
$model_class = 'Search_Model_V' . $this->config->model->version;
return new $model_class();
我使用PHP 5.3,所以我已經實現了命名空間。只要將其用於解決方案即可。
研究使用戰略模式。 –
或者也許是工廠模式。 – hakre
請注意,*版本*通常指您的代碼演變中的順序快照。這個問題主要是關於如何使用工廠實現可插拔架構。 – grossvogel