首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库操作框架

数据库操作框架
EN

Stack Overflow用户
提问于 2012-03-20 09:51:29
回答 4查看 688关注 0票数 0

有没有一个PHP框架,可以让我编写这样的代码。

代码语言:javascript
复制
class Item
{
    private $_id; //primary key
    private $name;
    private $price;
    function __construct($name, $price) {
       $this->name = $name;
       $this->price = $price;
    }
}
...
$item = new Item(...);
db->Save($item);
...
db->Delete($item);
...
db->Update($item);
...
Item[] = db->Fetch($whereClause);

是的,管理员,我在Google上搜索,但我迷失在茫茫大海(Doctrine,Propel,ActiveRecords,.),对SO提出了一个不同的问题(这禁止我进行比较),所以我现在问的是不同的问题,是哪个框架允许我编写这样简单的代码,而没有太多额外的编码,没有XML,YAML。或者,如果没有这样的内容,还应该如何编写。任何指示都会有帮助。当然,我有PHP5.3并可以使用PDO,但是性能是一个考虑因素(魔术函数.),而不是广泛的特性列表(我们也支持这个功能,您永远不会使用)。

OOPS:忘记添加,不需要像CakePHP之类的框架。我正在编写没有框架的简单php,只想要一些库,这些库可以包含在我的项目中,并调用上面的语法。如果需要一点SQL的话,对我来说没问题。

EN

回答 4

Stack Overflow用户

发布于 2012-03-20 10:00:32

例如,如果您不需要一个完整的应用程序框架,您可能已经编写了自己的框架,或者如果您没有使用任何框架,那么我不能推荐足够的红豆。有利的一面是,Redbean还为Zend和CodeIgniter等框架提供了桥梁。

我喜欢Redbean,因为它不需要太多的配置,不需要YAML、XML或其他配置。图书馆很轻,很有表现力。功能的数量是关于“恰到好处”的,没有多余的特性,但是你确实有你需要的所有东西。语法也非常接近您想要的语法。

现在的缺点是:您需要坚持严格表结构。例如,链接表需要ID列。3.0中还删除了对表名前缀的支持。然而,我觉得这些事情并不重要,所以这对我来说不是什么大问题。

如果是的话,您甚至可以对库进行分叉,并根据需要修改它。

票数 1
EN

Stack Overflow用户

发布于 2012-03-20 10:10:16

php-activerecord可能会满足您的需要。模型类应该从ActiveRecord\Model扩展

代码语言:javascript
复制
<?php
class City extends ActiveRecord\Model {
  // Table name will be defaulted to 'cities', but you can override it
  static $table_name = 'mycities';

  // Primary key will be defaulted to 'id', you can override it too
  static $primary_key = 'city_id';

  // Associations
  static $belongs_to = array(
    array('country')
  );

  static $has_many = array(
    array('citizens', 'class_name' => 'User')
  );
}

// Creating
$city = new City(array('name' => 'New York'));
$city->save();

// Find City with id=5, output some data
$anotherCity = City::find(5);
echo $anotherCity->country->location;
foreach ($anotherCity->citizens as $citizen) {
  echo $citizen->full_name;
}

这是一个非常简单的例子,php-activerecord有一些很好的特性:

  • 明智的公约,您可以通过遵循它们来减少代码的数量(实际上,如果您从头开始就应该遵循它们)
  • 验证强制执行业务规则
  • CRUD用于OO-way中的对象操作
  • 回调 -与模型的不同生命周期事件相关联的高级代码段
票数 1
EN

Stack Overflow用户

发布于 2012-03-20 09:52:50

我觉得他们中的很多人。ZendFramework就是这样的一个框架。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9784491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档