什么是安装不同版本的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