如何使用PHP开发高效的WEB系统
小项目 - 简单而直接的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则作为前端和系统的胶水,快速而灵活的把这些粘合起来。
转载于:https://blog.51cto.com/richardzhu/196734
如何使用PHP开发高效的WEB系统相关推荐
- Web系统版本更新与迭代方式——持续集成与持续部署(Python Django框架)
一.持续集成与持续部署 在软件工程中,CI/CD是指持续集成和持续交付或者持续部署的组合. CI/CD通过构建应用程序.在测试和部署中实施自动化,从而在开发团队和运维团队之间架起一座桥梁,让项目能够更 ...
- pythondjangoweb典型模块开发实战 pdf下载_胡阳《Django企业开发实战高效Python Web框架指南》PDF及代码...
Python社区中的框架Django 的定位是企业级开发框架,全功能 Web开发框架,少代码快速开发 Web应用.从开发速度还是上线后新功能的迭代,Django 都能很好地满足需求. 学完 Pytho ...
- Google Chrome,是由Google开发的,一款设计非常简单、十分高效的Web浏览工具!
目录 chrome浏览器一般指Google Chrome 2018年11月 Google Chrome是由Google开发的一款设计简单.高效的Web浏览工具. chrome浏览器一般指Google ...
- 基于java的信访项目_基于web系统的信访设计与开发.doc
基于web系统的信访设计与开发 毕业设计 题 目 基于web系统的信访设计与开发 英文题目 Design and Development of visit Website 学生姓名: 学 号: 专 业 ...
- Django企业开发实战 高效Python Web框架指南 笔记 (一)
Django企业开发实战 高效Python Web框架指南 笔记 (一) 内容: 作者是 the5fire,他的博客地址:https://www.the5fire.com/957.html 2016年 ...
- 想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~ #精选JAVASCRIPT前端开发...
想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~ 作为一个软(ku)件(bi)工(de)程(ma)师(nong),你有没有觉得做什么事都没时间?没时间学习新东西,没时间去回顾.整理原来写的烂代 ...
- 在英文Win7操作系统上部署C#开发的Web系统出现乱码的解决方法
今天,迁移机器,把一个使用C#开发的Web系统部署到一台英文版Win7操作系统上,部署好以后,系统可以登录,只是网页上出现汉字乱码. 在这台电脑上,打开Word等文本编辑器,是可以正常输入.显示中文的 ...
- asp.net摄影网站系统VS开发sqlserver数据库web结构c#编程计算机网页源码项目
一.源码特点 ASP.NET C# 摄影网站系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发.开发环境为vs2010,数据库为sqlser ...
- asp.net鲜花网站系统VS开发sqlserver数据库web结构C#编程
一.源码特点 asp.net鲜花网站系统是一套完善的WEB设计管理系统,系统具有完整的源代码和数据库 ,系统主要采用B/S模式开发. 应用技术:ASP.NET c#+sqlserver ...
- web系统快速开发_开发一个快速销售系统
web系统快速开发 http://www.internationalnewsandviews.com/wp-content/uploads/2017/03/flash-sale-banner.png ...
最新文章
- php上传图片到文件夹,2018.09.14PHP获取页面上传的图片存到指定文件夹再存到数据库中...
- python 字符编码问题
- 张亚勤:从信息化生存到互联网化生存 百度重构互联网安全防护体系
- Executor框架
- 在公司如何远程控制家中电脑
- 用limit 实现java的简单分页
- 马上开课 | 临床基因组学数据分析实战助力解析Case,快速发表文章
- WebDev.WebServer.exe遇到问题需要关闭
- 转:解决vs2015生成软件在XP中运行时提示“不是有效的WIN32应用程序”
- 跨界造智能机器人,娃哈哈能“喝”出新辉煌吗
- Java基础篇:如何使用 break 退出循环
- cartographer探秘第四章之代码解析(五) --- 后端优化 --- 闭环约束2 --- FastCorrelativeScanMatcher2D
- 记录一次es商品门店查询,关键字SearchSourceBuilder
- DCMM GBT 36073-2018 数据管理能力成熟度评估模型(Word版)
- 大意导致Java访问DB2库时导出SQLCODE=-301, SQLSTATE=07006错误
- 霸榜11个月,神车MINI EV进退两难!
- 你真的了解牛顿第一定律吗
- 计算机考试音乐怎么粘贴,用手机或电脑怎样剪切和接音乐?
- LeetCode 2315. 统计星号
- 关于SearchView的一些小细节