2011-06-10 39 views
1

下载了一些开放源代码的PHP脚本,例如Wordpress和Moodle,以研究它们在那里构建代码等的方式。但是,在查看这两个脚本时,我总是无法找到数据库查询(选择,插入,更新)?为什么他们如此隐藏,我如何找到他们?开源PHP项目中的数据库查询?

回答

4

它们可能实际上是通过ORM层生成的。哪一个是通过对象方法生成查询的对象。

+0

有趣的是,学习这种方法有多困难并且需要多长时间? – ritch 2011-06-10 16:01:18

+0

许多框架已经内置在ORM层中。 ZF有Zend_Db_Select。那可能是一个开始的好地方。 – datasage 2011-06-10 16:04:26

0

没有隐藏,那里只是用OOP方式写的!

1

查看Wordpress中的/wp-includes/user.php以获取实施的具体细节。你会看到SQL语句,以及为处理它们的代码,如下所示:

$user_nicename_check = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND user_login != %s LIMIT 1" , $user_nicename, $user_login)); 
1

在WordPress中,他们在wp-db.php,有趣的是:)“隐藏”的低层次数据库中的大多数要求该代码尽可能地将数据库中的“业务逻辑”隔离开来。

这使得它更容易做出一个改变,而无需重新对码,另外,或支持多个数据库(或其他存储)后端,而不必垃圾与检查你的代码,看看哪种DB你的正在使用。

如果你真的想弄清楚在一个大型的开源项目中发生了什么,尤其是面向对象的项目,可能值得使用能够分析代码并跳转到定​​义的编辑器/ IDE,比如NetBeans。这通常会使您在阅读时更容易遵循代码,而无需弄清楚哪个类正在调用哪个文件(尤其是在PHP自动加载发生时)。