我正在扩展现有的PHP应用程序.不幸的是,现有的应用程序是一团糟.这是所有带有原始mysql_*调用的意大利面条代码.呻吟.我不会在我要扩展的部分中那样做.
所以,我正在寻找一个简单的DBAL ORM,我可以很容易地进入并开始使用.所需功能:
find()
或query()
或任何自己.beforeSave
,afterSave
),则奖励积分.不是要求,但很高兴.编辑:有人让我摆脱了痛苦.我刚刚发现125K行的spaghetti代码也改变了数据库模式.例如,在某处添加一个额外的选项,一大堆ALTER TABLE语句开始飞行.我可以用这个代码库来填充一年的TheDailyWTF.所以,还有一个要求:
我一直在寻找一些解决方案,但我不确定它们在满足要求的情况下会如何运作.Doctrine 2,RedBeanPhp等都需要PHP 5.3,所以它们都出来了.有一个用于PHP 5.2.x的旧版RedBeanPhp,但我不知道它是否适用于凌乱的现有数据库模式.NotORM看起来可以用于获取数据,但我不知道它是否可以为现有数据库模式进行配置,以及如何轻松地将数据放回数据库中.
理想情况下我想要一些简单的东西.例如:
$user = User::find($id);
$user->name = 'John Woo';
$user->save();
Run Code Online (Sandbox Code Playgroud)
要么:
$articles = ORM::find('article')->where('date' => '2010-01-01');
foreach ($articles as $article) {
echo $article->name;
}
Run Code Online (Sandbox Code Playgroud)
欢迎任何提示甚至替代解决方案!
我在使用选择时遇到了麻烦,我尝试阅读文档但是它不太清楚,而且谈论它的论坛很少而且不活跃.
我想做一个简单的选择,所以我试过:
$applications = $NOTORM->user_types()
->select('id, group_title')
->where('id', 1);
return $applications;
Run Code Online (Sandbox Code Playgroud)
然而,这给了我一个NotORM对象,我没有看到我做正常时得到的结果行: SELECT id, group_title FROM user_types WHERE id = 1
我尝试使用fetch()但不确定如何使用它.任何见解?