这几年我比较少写 PHP 了. 有阵子很迷它, 但是因为工作关系, 把较多的时间花在网络封包和数据库的分析工作上. 而且因为年记较大了所以也很难找到写程序的工作多半都在做工程师的 “工头” 对于这几年 PHP 的变化我来不及参与. 在这裡收集这几年对 PHP 的变化, 写篇心得过过本人自己的乾隐: 回顾您以往的职业生涯, 您有好好的管理您写的 CODE 吗? 还是每次都写到需求超级肥大了, 才延伸出一大堆的程序码管理问题. 在这裡本人设计一个开发框架的架构, 让你的程序更简洁而且让你的程序更有条有理的被应用. 当然这些架构教程我己经简化很多, 如果放入太多的设计反而会得到反效果. 如果您是比较重口味的 PHP 设计者, 先说声报歉了. 如果您常为了需求肥大难以管理你的程序, 这篇文章对您来说会是个值得参考的文章, 至少它有著我十几年的需求开发经验. 一.常见的 PHP 应用的架构:在往下教程下去前, 本人先定义一些名词, 以方便大家接下去阅读教程.
它可以用在什麽地方?a.让你可以把从 DB 的资料捞到快取一份到 MEMCACHE ,来减轻资料库的工作负担, 这在大型而且流量很高的系统上, 它辨演很重要的角色就是可以减轻 DB 的工作量. b.有一些不用储存用完就不要的资料, 也可以利用 memcache 直接存取不用再交给 DB 去处理. c.注意一件事: memcache 本身是一个 TCP 的服务在单台 linux 伺服器下最多只能使用1024个请求, 当然你可以用 ulimit 提高它, 但是请先了解它的本质用对地方. 它本身并不能做为程序本身加快程序效能的工具, 但是它是一个可以做到分散式的存取架构, 并且可以减轻 DB 负担的工具, 的好用工具. 所以在使用它时要选对时机, 千万不要烂用.
二.功能方块介绍:到这裡我们必需要将图裡的方块切的更细让大家理解请耐心的看完下一张图: 1. 数据库逻辑层 :Access Logic Layer 主要的工作是做为与 DB 和 Content Logic 沟通的区块, 在这裡本人建议大家在设计物件库或函式库前, 先参考这个架构. 把所有跟资料库存取的逻辑全部包装在这个区块下, 例如大家在设计DB时最爱用 Factory 来做 DB 的切换, 同时把这些逻辑全部整到这一层让您的程序更有层次更好管理. 看到这裡大家一定对一些使用 Factory 设计的 OOP DB 存取函式库不漠生. 这时我要介绍大家一个名词, Object-relational_mapping : http://en.wikipedia.org/wiki/Object-relational_mapping 什麽地方有 ORM ?就是大家常用的. CAKE PHP 当然…您也可以自己写, 重点是, 要懂得怎麽有效率的去管理你的存取层的逻辑. 而一但定义了这一层. 强烈建议在接下来的 Content Logic Layer , Presentation Logic Layer 严格禁止其它逻辑层的逻辑跳过它来存取资料库. 这麽做有什麽好处? : 补充说明:
|