Oop 在应用程序中封装不同的数据源

Oop 在应用程序中封装不同的数据源,oop,encapsulation,software-design,business-logic,Oop,Encapsulation,Software Design,Business Logic,我有电子商务网站。它基于Kohanaphp。我的业务面临着新的挑战,我正试图将我的整体架构分解成几个小部分 现在,我将mysql数据库作为唯一的数据源,并通过ORM或DB查询在我的应用程序中访问它: $product = ORM::factory('Product', $id_product); $products = ORM::factory('Product')->where()->find_all() $products = DB::query(Database::SELECT

我有电子商务网站。它基于Kohanaphp。我的业务面临着新的挑战,我正试图将我的整体架构分解成几个小部分

现在,我将mysql数据库作为唯一的数据源,并通过ORM或DB查询在我的应用程序中访问它:

$product = ORM::factory('Product', $id_product);
$products = ORM::factory('Product')->where()->find_all()
$products = DB::query(Database::SELECT, "{my complex query}"->as_object('Product')->execute();
当我决定转移到其他数据源:API、Mongodb等时,问题就出现了。我被迫重写了许多行代码


我在软件开发方面的知识还存在差距,我需要一些提示和最佳实践,如何在应用程序中封装不同的数据源。

使用和模式封装数据源交互。确保您有适配器的模拟实现,以便在没有实际数据库的情况下测试交互

使用和模式封装数据源交互。确保您有适配器的模拟实现,以便在没有实际数据库的情况下测试交互