首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP应用程序的部件和层

问PHP应用程序的部件和层
EN

Stack Overflow用户
提问于 2013-01-11 13:35:57
回答 2查看 255关注 0票数 0

我正在建设一个大型网站,并希望使其可伸缩。最近,我阅读了一篇由一位经验丰富的highload项目开发人员(Oleg )撰写的文章,其中指出:

高负荷应用程序必须分为三个部分: 1)前端(HTML,CSS,JS,图片) 2)后端(服务器端:使用PHP、Python或其他服务器端语言的繁重计算任务) 3)数据库

在这种情况下,应用程序将能够承受巨大的流量。此外,本文还指出,SQL查询必须放在应用程序的某个位置。

我正在使用PHP5 OOP和MySQL数据库。我的解决方案:

1)将所有SQL查询放入类中。

2)使用封装在数据库层类中的PHP。

3)每个类都使用数据库层对象初始化,并使用它运行SQL查询。

示例:

代码语言:javascript
复制
// On the public accessible page
$DBH    = new RwtDatabaseLayer(['messages']); # database name
$msgs   = new GetMessages($DBH);

在我的GetMessages课上:

代码语言:javascript
复制
class GetMessages
{
    private $_DBH;

    function __construct($DBH)
    {
        $this->_DBH = $DBH;
    }
    function get_messages()
    {
            $this->_DBH->run(QUERY HERE); // `run` is Database Layer method
    }
 }

因此,公共可访问页面上的代码不包含任何SQL查询。

我做得对吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-11 13:45:03

如果您想要能够处理大量的流量,您应该尝试将缓存合并到您的程序中。从这个意义上说,在专门的类中拥有所有查询将帮助您围绕它们构建一个缓存。静态内容(html,css)也是如此,这些内容可以被压缩/缓存,也可以来自不同的服务器(或自定义CDN)。

我建议看一下memcache (和加速器,如APC)。

票数 2
EN

Stack Overflow用户

发布于 2013-01-11 13:57:42

我强烈建议您阅读许多主要框架使用的Model设计模式,然后至少学习其中一个主要框架,Zend框架2和塞弗尼2将是很好的起点。在尝试创建“巨大流量”网站之前,你真的需要了解技术和设计原则。

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

https://stackoverflow.com/questions/14279312

复制
相关文章

相似问题

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