长话短说,我参与的小组项目不允许使用外部库进行项目。
由于这个原因,我们编写了一个自定义框架,但我们在某个时刻陷入困境。我们需要一个简单的ORM来处理关系(同样,没有外部库,如Doctrine,Propel等),以及如何轻松地执行它。
例如,如果我们有一个带有...的模型
class ProductsModel extends ModelLib {
$has_many = array( 'Images' ); // Would relate to Images, get all images with this product_
$has_one = array( 'User' ); // Would relate to the User, get 1 user who uploaded this product.
有人可以帮助我们实现这一目标,所以我们可以致电:
$products = $productsFinder->findAll( ); // returns all product models
foreach( $products AS $product ) {
print $product->user->name; // gets the user who uploaded the product by relation
print_r( $prodoct->images ); // returns models of images related to this product.
这只是一个例子。我们几乎只是希望能够轻松地关联数据,但我们不知道如何做到这一点(代码方面,甚至我们应该放置这样的代码(即在查找器或模型中?)。任何人都可以请协助:)
答案 0 :(得分:3)
两个简单的ORM是Idiorm和Axiom。也许你可以在那里获得一些灵感。但请参阅此前的讨论https://stackoverflow.com/questions/185358/simple-php-orm
答案 1 :(得分:1)
您基本上需要实现所有Data Mapper,Active Record和与之相关的其他模式。 Martin Fowler出色的“企业应用程序架构模式”将是一个良好的开端。很抱歉是简洁的,但这是一个很大的主题!
答案 2 :(得分:0)
了解您最喜欢的ORM库是如何编码的,以便您了解他们如何决定构建系统。现在写下你自己的版本。
ORM系统有许多细微差别 - 以及许多设计决策 - 似乎任何人都不可能在这里发布代码。