PHP应用程序的部件和层

时间:2013-01-11 13:35:57

标签: php oop

我正在建立一个大型网站,并希望将其扩展。我最近阅读了一篇由经验丰富的高负载项目开发人员(Oleg Bunin)撰写的文章,并指出:

  

Highload应用程序必须分为三个部分:

     

1)前端(HTML,CSS,JS,图像)

     

2)后端(服务器端:使用PHP,Python的繁重计算任务   或其他服务器端语言)

     

3)数据库

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

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

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

2)我使用PHP PDO包装到数据库层类中。

3)每个类都使用Database Layer对象初始化,并使用它来运行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查询。

我这样做了吗?

2 个答案:

答案 0 :(得分:2)

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

我建议看一下memcache(以及加速器,如APC)

答案 1 :(得分:0)

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