MySQL PHP类推荐

4
我过去几年一直在使用ezSQL,但觉得它已经过时了。尽管我喜欢它的简单性和使用json进行基于文件的缓存能力,但对于小结果集而言。
因此,在启动新项目时,我正在寻找更好的mysql类php建议。我知道数据库仅为mysql,因此可移植性不是要求。我读到了mysqli扩展,pdo等等,但不知道哪一种最适合我的情况。该站点执行的读取操作比写入操作多得多,尽管在管理员工具中有很多写入操作到数据库中。我看了doctrine,但不知道是否对我所需的太“臃肿”了。希望这不是太含混了。有任何建议吗?
编辑:
该网站不小,我认为它是一个高流量的网站,有大量的db查询。

不是直接回答你的问题,但你可以查看PHP框架。例如Yii框架使用活动记录,我认为它非常好。 - Eray
我习惯于在.NET的实体框架中使用DAAB(数据访问应用程序块),我知道我会很喜欢找到一个类似的面向PHP的数据库不可知类。 - stephenbayer
作为ezSQL的作者,我很想知道您决定转向哪个工具以及原因。另一个可能性是您可以fork ezSQL并将其带到下一个级别的简单性和可扩展性(这是我没有时间做的事情)。值得注意的是,我在我的创业公司Pluggio.com上使用ezSQL,迄今为止,即使有许多关键付费客户,我也没有理由考虑使用其他任何东西。此外,我不确定转移到新的数据库层是否会在优化方面带来太多好处...下一步可能是学习mem-cached、分片等技术。 - Justin Vincent
@Justin Vincent,首先感谢您的建立ezSQL,它为我提供了很好的帮助。我想问一下,因为我觉得它可能已经过时了,也许有更好的选择。不过除此之外,ezSQL真的很好用,我特别喜欢它的基于文件的缓存功能。但是我自己没有时间将其推向更高的水平。 - John
3个回答

1
你对ezSQL有什么不喜欢的地方吗?我经常希望能在遇到其他协议/语言时也有类似的东西。在我看来,每个语法都应该像ezSQL一样编写,用尽可能少的词语、最清晰、最合乎逻辑的顺序描述要执行的操作。你是真的有性能问题,还是只是担心有更好的东西出现了?我同意ezSQL很少被提及,但我还没有找到任何与它的简洁性、简明性和功能相匹配的东西...

我只是觉得它有点过时,但除此之外,我发现它非常易于使用,特别是基于文件缓存的系统。 - John
如果它没坏,就不要修理它。如果你喜欢它...就给它买束花吧。 - Alex Gray
2
在PHP 5.5中,只支持mysqli和PDO,旧的mysql_query、mysql_fetch_assoc等函数将被弃用。EzSQL仍然使用SQLite2而不是SQLite3。看起来它没有得到很好的更新... - wintercounter

0

根据我对ezSQL(通过它的WordPress挂件)的了解,我认为Doctrine也太过于复杂,因为它是一个完整的数据库数据映射器,而你可能更想知道如何摆脱最近使用的ezSQL,我认为这是个好主意。

基本上,你可能会对数据访问抽象层感兴趣。这可以是PDO,因为它内置于PHP中。即使你不需要更改数据库服务器,它也会为你提供定义良好的接口来查询和访问数据。

由于你是从头开始构建网站,我建议你考虑使用一些轻量级框架。在我看来,一个很好的入门介绍是When Flat PHP meets Symfony,它展示了一个Web应用程序如何从模式和灵活的设计中受益。


我从零开始,所以我有重新开始的能力。我不知道哪些例子适合你。我只需要调用 ezsql 连接到数据库,在整个站点中使用它,并将数据库对象传递给执行特定查询(如创建/读取/更新/删除)的类。 - John
@John:是的,我在审查你的问题时已经阅读了它。我会在我的答案中添加一个建议。 - hakre
我会看一下。我最初考虑的框架是CodeIgniter。 - John
Codeigniter也有一个数据库访问层,而且在其中他们也使用PDO。无论选择哪个框架,这个链接都值得一读。 - hakre

0

从经验来看:

  • Doctrine - 非常易于使用,我喜欢Doctrine查询语言 - 我从未进行过初始设置,所以我不确定它有多难。它拥有非常好的社区和大量的教程。
  • Propel - 用了一段时间。完成了工作,与Doctrine非常相似。然而,文档非常糟糕,社区也很懒惰。我发现当我不知道某些东西时,很难找到答案,通常我不得不在Google论坛上发布问题。

注意:如果您从头开始,您可能需要查看一些框架,例如symfony + doctrine是一个很好的组合,可以使开发变得更加容易。

链接: - http://www.doctrine-project.org/ - http://www.propelorm.org/


是的,我考虑过使用现有的框架。我的担忧是我可能会被框架束缚住。也就是说,有时候我会收到一些非常奇怪的功能请求,我担心这些请求会超出框架的“规则”范围。或者我会花费时间尝试弄清楚如何让框架为我所需的工作。很难解释,作为开发人员,我被告知我们不能拒绝任何请求,这对我来说非常令人沮丧。 - John
@John 我理解你的意思。我过去习惯于编写简单明了的 PHP 代码并使用自己的标准等等。然而,一旦我的项目变得相当庞大,我发现在没有使用某些指导方针和结构的情况下很难进行管理。这就是框架所提供的。你应该已经在使用某种 MVC 结构来使它保持整洁,使用框架只是意味着你会获得很多支持和很多方法,这将帮助你更好地实现它。虽然我赞同你的观点,在开始时你会发现一切都需要更长的时间。给它一些时间! - Luke
@John 使用框架与Doctrine的一个优点是可以轻松添加新模块和通过命令行或NetBeans内置功能更改数据库。一切都是对象,易于管理,易于逻辑查询和我的最爱单元测试。 - Luke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接