Answers:
试试RedBean,它需要:
它甚至为您完成所有锁定和事务处理,并在后台监视性能。(哎呀!它甚至没有垃圾回收....)最重要的是......你没有写任何代码... ...线耶稣这样,ORM层,救了我的屁股!
Axon ORM是无脂肪框架的一部分 -它具有动态映射器。没有代码生成器。没有愚蠢的XML / YAML配置文件。它直接从后端读取数据库模式,因此在大多数CRUD操作中,您甚至不必扩展基本模型。它可与所有主要的PDO支持的数据库引擎一起使用:MySQL,SQLite,SQL Server / Sybase,Oracle,PostgreSQL等。
/* SQL */
CREATE TABLE products (
product_id INTEGER,
description VARCHAR(128),
PRIMARY KEY (product_id)
);
/* PHP */
// Create
$product=new Axon('products'); // Automatically reads the above schema
$product->product_id=123;
$product->description='Sofa bed';
$product->save(); // ORM knows it's a new record
// Retrieve
$product->load('product_id=123');
echo $product->description;
// Update
$product->description='A better sofa bed';
$product->save(); // ORM knows it's an existing record
// Delete
$product->erase();
最重要的是,插件和随附的SQL数据访问层与框架一样轻巧:14 KB(Axon)+ 6 KB(SQLdb)。不含脂肪仅55 KB。
$product->load('product_id=123')
示例中的内容时,它总是让我感到担忧。
$product->load(array('product_id=:id',array(':id'=>123)));
我一直在自己开发Pork.dbObject。(一个简单的PHP ORM和Active Record实现)主要是因为我发现大多数ORM太繁重。
Pork.dbObejct的主要思想是重量轻且易于设置。没有一堆XML文件,只有构造函数中的一个函数可以绑定它,还有addRelation或addCustomRelation可以定义与另一个dbObject的关系。
尝试Doctrine2。它可能是PHP中最强大的ORM工具。我将它与教义1分开提及,因为它是完全不同的软件。它是从头开始重写的,仍处于测试阶段,但是现在可以使用并开发了。
这是一个非常复杂的ORM,但设计合理。原始主义1的许多魔术消失了。它提供了一个完整的解决方案,您可以在Doctrine2之上编写自己的ORM或仅使用其一层。
查看出口ORM。它比Propel和Doctrine更简单,并且与Hibernate相似,只是具有更多的PHP感觉。
您应该查看Idiorm和Paris。
给一个镜头到宿舍,为PHP 5的对象关系映射。它支持各种关系(一对一),(一对多),(一对多)和数据类型。它是完全不干扰的:不需要代码生成或类扩展。在我看来,它比现有的ORM(包括Doctrine和Propel)都优越。但是,它仍处于测试阶段,并可能在接下来的几个月中发生重大变化。http://www.getdorm.com
它的学习曲线也很小。您将使用的三种主要方法是:
<?php
$object = $dorm->getClassName('id_here');
$dorm->save($object);
$dorm->delete($object);
我目前正在研究phpDataMapper,这是一个ORM,旨在具有简单的语法,例如Ruby的Datamapper项目。它也仍处于早期开发中,但是效果很好。
我在Idiorm和巴黎有过丰富的经验。Idiorm是一个小型,简单的ORM库。巴黎是一个基于Idiorm的同等简单的Active Record实现。适用于具有PDO的PHP 5.2+。如果您只需要简单的东西就可以放入现有应用程序中,那将是一个完美的选择。
在PHP 5.3发行之前,不要指望拥有良好的ORM。这是PHP的OO限制。
我和我的朋友Kien改进了他在PHP 5.3之前编写的ORM的早期版本。我们基本上已经将Ruby on Rails的Active Record移植到了PHP。它仍然缺少我们想要的一些关键功能,例如事务,复合主键支持,更多的适配器(目前仅MySQL和SQLite 3可用)。但是,我们非常接近完成这些工作。您可以看看PHP ActiveRecord和PHP 5.3。
MicroMVC有一个13 KB的ORM,它仅依赖于8 KB的数据库类。它还将所有结果作为ORM对象本身返回,并使用后期静态绑定来避免将有关当前对象表和元数据的信息嵌入到每个对象中。这导致存在最便宜的ORM开销。
它适用于MySQL,PostgreSQL和SQLite。
巴西ORM:http : //www.hufersil.com.br/lumine。它适用于PHP 5.2+。在我看来,这是葡萄牙人和巴西人的最佳选择,因为它具有易于理解的文档和许多可供下载的示例。
敏捷工具包拥有自己独特的ORM / ActiveRecord和动态SQL实现。
简介:http://agiletoolkit.org/intro/1
语法(活动记录):
$emp=$this->add('Model_Employee');
$emp['name']='John';
$emp['salary']=500;
$emp->save();
语法(动态SQL):
$result = $emp->count()->where('salary','>',400)->getOne();
尽管可以直接使用Dynamic SQL和Active Record / ORM,但Agile Toolkit进一步将它们与用户界面和jQuery UI集成在一起。这类似于JSF,但使用纯PHP编写。
$this->add('CRUD')->setModel('Employee');
这将显示AJAXified CRUD和Employee模型。
include "NotORM.php";
$pdo = new PDO("mysql:dbname=software");
$db = new NotORM($pdo);
$applications = $db->application()
->select("id, title")
->where("web LIKE ?", "http://%")
->order("title")
->limit(10)
;
foreach ($applications as $id => $application) {
echo "$application[title]\n";
}
用于PDO扩展的PHP ORM Faces。参见PHP Faces Framework。
$urun = new Product();
$urun->name='CPU'
$urun->prince='124';
$urun->save();
查看http://code.google.com/p/lworm/。它是一个真正简单但功能强大的轻量级ORM系统,适用于PHP。如果需要,您也可以轻松扩展它。
我们使用的另一个很棒的开源PHP ORM是PHPSmartDb。它很稳定,使您的代码更安全,更整洁。其中的数据库功能是我曾经与PHP 5.3一起使用过的最简单的功能。
主义可能是您最好的选择。在Doctrine之前,DB_DataObject本质上是唯一开源的其他实用程序。