我正在建立一个大型网站,并希望使其具有可扩展性。我最近阅读了一篇由经验丰富的高负载项目开发人员 (Oleg Bunin) 撰写的文章,其中指出:
高负载应用必须分为三个部分:
1) 前端(HTML、CSS、JS、图像)
2) 后端(服务器端:使用 PHP、Python 或其他服务器端语言的繁重计算任务)
3) 数据库
在这种情况下,应用程序将能够承受巨大的流量。文章还指出,SQL
查询必须放在应用程序的一个地方。
我正在使用 PHP5 OOP 和 MySQL 数据库。我的解决方案:
1) 我将所有 SQL 查询放入类中。
2)我使用包装到数据库层类中的PHP PDO。
3) 每个类都使用数据库层对象进行初始化,并使用它来运行 SQL 查询。
例子:
// On the public accessible page
$DBH = new RwtDatabaseLayer(['messages']); # database name
$msgs = new GetMessages($DBH);
在我的GetMessages
课堂上:
class GetMessages
{
private $_DBH;
function __construct($DBH)
{
$this->_DBH = $DBH;
}
function get_messages()
{
$this->_DBH->run(QUERY HERE); // `run` is Database Layer method
}
}
因此,我的公共可访问页面上的代码不包含任何 SQL 查询。
我这样做对吗?