Php 简单ORM(无外部库)

Php 简单ORM(无外部库),php,orm,Php,Orm,长话短说,我参与的团队项目不允许使用外部库进行项目 因此,我们编写了一个自定义框架,但我们在某一点上陷入了停顿。我们需要一个简单的ORM来处理关系(同样,没有外部LIB,如条令、推进等),以及如何轻松地处理关系 例如,如果我们有一个模型 class ProductsModel extends ModelLib { $has_many = array( 'Images' ); // Would relate to Images, get all images with this produ

长话短说,我参与的团队项目不允许使用外部库进行项目

因此,我们编写了一个自定义框架,但我们在某一点上陷入了停顿。我们需要一个简单的ORM来处理关系(同样,没有外部LIB,如条令、推进等),以及如何轻松地处理关系

例如,如果我们有一个模型

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.

这只是一个例子。我们非常希望能够轻松地关联数据,但我们不知道如何做到这一点(代码方面,甚至不知道我们应该将这些代码放在哪里(例如在finder或model中?)

看看您最喜欢的ORM库是如何编码的,以便您了解他们决定如何构建系统。现在写下你自己的版本


ORM系统有许多细微的差别——以及许多设计决策——似乎没有人能够在这里发布ORM系统的代码。

您基本上需要实现所有数据映射器、活动记录和其他与之相关的模式。Martin Fowler的优秀“企业应用程序架构模式”将是一个良好的开端。很抱歉这么简单,但这是个大问题

两个简单的ORM是Idiorm和Axiom。也许你可以从那里得到一些灵感。但也请参见前面的讨论

您需要什么帮助?一个主意?或者有人对你提到的一切进行编码?如果有人真的发现自己处于无法使用基本基础设施的情况下,因为它是“外部的”,我建议你找另一份工作。您是否也应该创建一个php运行时?然后焊接你自己的主板?是的,有点像。只是更多地寻找一个正确的方向推动。谢谢:)是的,这就是我们要做的。Axiom和Idiorm看起来足够简单,可以休耕,我应该从这里开始。谢谢