PHP是一个很优秀的工具,它可以简单,也可以复杂。不一样的项目,应该用不一样的PHP。

  小项目 - 简单而直接的PHP

  一般对于一个功能页面在20以下的网站,我们可以用一个很简单的框架结构来写。在这个规模上,我建议是使用比较直接的面向过程编码方法,原因很简单,没有必要把class文件弄的N 多,结果controller里边就一个new就完了。当然,需求频繁变化的项目除外。

  在这个级别上,php优点表现的很明显:快速开发,一目了然。缺点同时也被隐藏得很好。

  中型项目 - 结构优美的OO化的PHP

  对于一个中型项目,我建议使用一个良好设计的框架来做,这个框架可以是基于MVC模型,封装了众多底层操作的,当然,一定要有一个好的最好是透明的cache机制,这样,我们为了适应变化而加入的OO机制可以运行得更快更好。

  在这个级别上。php的缺点开始凸现,像对OO支持的不完整(这个PHP5有很大改进),只能单线程模式。另外一些外围工具开始出现缺乏支持,像PHP没有好的重构工具,没有好的集成到IDE中的单元测试工具。优点当然还是原来的快速开发,广泛的可用的开源资源。

  大型项目 - 扩展、优化后的PHP

  这里的大型项目,简单的指分布式项目,就是说,你的程序需要被部署在N台服务器上了。在这个层级上,PHP比起j2ee的确缺乏很多支持。我曾和shadow在735上详细讨论过PHP要在大型系统上应用需要解决的一些问题,当然这些问题不光是PHP这个语言的问题,也包括了周边开发的问题:

  1、 PHP的页面代码共享,PHP的源代码被载入内存一次以后,就在其中保留 - 这个用APC和Zend的优化器可以搞定。

  2、PHP页面之间的数据对象共享,a.php和b.php之间可以共享一个数据对象,比如数组,这个现在可以用序列化来作,但是会有文件io,这块可以用共享内存或者memcached来处理。

  3、PHP的数据库连接池,因为在多前端的情况下,PHP控制不住对数据库的连接,所以需要在数据库前边去作一个连接池,类似于sqlrelay的东西。另外数据缓存也是很重要的,大压力开发有一个tip,就是能不动数据库就不要动数据库。

  4、PHP的前端cache系统。一个透明的可控制的cache机制,确保网站的页面以最少次数查询数据库。这个有很多实现,但是没有找到特别好的。

  5、一个PHP应用,成功的解决调这几个问题以后,应付稍微大一点的压力是没有什么问题的。

  在这个级别上,重要的是,把PHP java C++ python之类融合起来,使其成为一个高效系统。我们可以用memcached来做分布式内存管理,可以用Lucene 来作全文检索,用ejb 容器来放一些业务逻辑组件,PHP则作为前端和系统的胶水,快速而灵活的把这些粘合起来。

曾经实现过 PHP .NET,PHP Java之类的融合!

转载于:https://blog.51cto.com/richardzhu/196734

如何使用PHP开发高效的WEB系统相关推荐

  1. Web系统版本更新与迭代方式——持续集成与持续部署(Python Django框架)

    一.持续集成与持续部署 在软件工程中,CI/CD是指持续集成和持续交付或者持续部署的组合. CI/CD通过构建应用程序.在测试和部署中实施自动化,从而在开发团队和运维团队之间架起一座桥梁,让项目能够更 ...

  2. pythondjangoweb典型模块开发实战 pdf下载_胡阳《Django企业开发实战高效Python Web框架指南》PDF及代码...

    Python社区中的框架Django 的定位是企业级开发框架,全功能 Web开发框架,少代码快速开发 Web应用.从开发速度还是上线后新功能的迭代,Django 都能很好地满足需求. 学完 Pytho ...

  3. Google Chrome,是由Google开发的,一款设计非常简单、十分高效的Web浏览工具!

    目录 chrome浏览器一般指Google Chrome 2018年11月 Google Chrome是由Google开发的一款设计简单.高效的Web浏览工具. chrome浏览器一般指Google ...

  4. 基于java的信访项目_基于web系统的信访设计与开发.doc

    基于web系统的信访设计与开发 毕业设计 题 目 基于web系统的信访设计与开发 英文题目 Design and Development of visit Website 学生姓名: 学 号: 专 业 ...

  5. Django企业开发实战 高效Python Web框架指南 笔记 (一)

    Django企业开发实战 高效Python Web框架指南 笔记 (一) 内容: 作者是 the5fire,他的博客地址:https://www.the5fire.com/957.html 2016年 ...

  6. 想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~ #精选JAVASCRIPT前端开发...

    想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~ 作为一个软(ku)件(bi)工(de)程(ma)师(nong),你有没有觉得做什么事都没时间?没时间学习新东西,没时间去回顾.整理原来写的烂代 ...

  7. 在英文Win7操作系统上部署C#开发的Web系统出现乱码的解决方法

    今天,迁移机器,把一个使用C#开发的Web系统部署到一台英文版Win7操作系统上,部署好以后,系统可以登录,只是网页上出现汉字乱码. 在这台电脑上,打开Word等文本编辑器,是可以正常输入.显示中文的 ...

  8. asp.net摄影网站系统VS开发sqlserver数据库web结构c#编程计算机网页源码项目

    一.源码特点         ASP.NET C# 摄影网站系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发.开发环境为vs2010,数据库为sqlser ...

  9. asp.net鲜花网站系统VS开发sqlserver数据库web结构C#编程

    一.源码特点         asp.net鲜花网站系统是一套完善的WEB设计管理系统,系统具有完整的源代码和数据库 ,系统主要采用B/S模式开发. 应用技术:ASP.NET c#+sqlserver ...

  10. web系统快速开发_开发一个快速销售系统

    web系统快速开发 http://www.internationalnewsandviews.com/wp-content/uploads/2017/03/flash-sale-banner.png ...

最新文章

  1. php上传图片到文件夹,2018.09.14PHP获取页面上传的图片存到指定文件夹再存到数据库中...
  2. python 字符编码问题
  3. 张亚勤:从信息化生存到互联网化生存 百度重构互联网安全防护体系
  4. Executor框架
  5. 在公司如何远程控制家中电脑
  6. 用limit 实现java的简单分页
  7. 马上开课 | 临床基因组学数据分析实战助力解析Case,快速发表文章
  8. WebDev.WebServer.exe遇到问题需要关闭
  9. 转:解决vs2015生成软件在XP中运行时提示“不是有效的WIN32应用程序”
  10. 跨界造智能机器人,娃哈哈能“喝”出新辉煌吗
  11. Java基础篇:如何使用 break 退出循环
  12. cartographer探秘第四章之代码解析(五) --- 后端优化 --- 闭环约束2 --- FastCorrelativeScanMatcher2D
  13. 记录一次es商品门店查询,关键字SearchSourceBuilder
  14. DCMM GBT 36073-2018 数据管理能力成熟度评估模型(Word版)
  15. 大意导致Java访问DB2库时导出SQLCODE=-301, SQLSTATE=07006错误
  16. 霸榜11个月,神车MINI EV进退两难!
  17. 你真的了解牛顿第一定律吗
  18. 计算机考试音乐怎么粘贴,用手机或电脑怎样剪切和接音乐?
  19. LeetCode 2315. 统计星号
  20. 关于SearchView的一些小细节

热门文章

  1. uiuc工程学院计算机,UIUC的ECE「伊利诺伊大学香槟分校电气与计算机工程系」
  2. Win10装Ubuntu双系统步骤做法
  3. c语言语法语义解析器,一个简单的C语言词法分析与语法分析器【原】
  4. 在Vue项目中添加vue router
  5. Ubuntu 磁盘自动挂载解决
  6. Spring ——《第一章》Spring的基本应用
  7. 安装包 — 夜神模拟器下载地址
  8. SQL Sever — 实现表中数据的:增、删、改、查
  9. rk3399_android7.1的HDMI显示实现固定分辨率
  10. LeetCode Longest Increasing Subsequence