首页 后端开发 php教程 重构WEB_PHP

重构WEB_PHP

Jun 01, 2016 pm 12:36 PM
web 可以 应用 开发 我们 系统 重构

1 Abstract
本文主要论述了如何建设web开发中的体系结构。并且使用PHP程序设计语言来阐述构建WEB开发体系结构的实例。

2 前言
web是internet应用的一种方式,从它在1990年出现以来,发展一直很快。从最初的仅仅是文档浏览/查询到现在的基于web方式的应用技术,web技术和应用水平每年都在快速更新和提高。
我们可以使用各种各样的语言来开发web应用。我们将要使用的开发语言是PHP,PHP在1995年开发出第一个版本,到2001年7月根据E-SOFT的统计已经有600万个站点在使用PHP。
参考:
http://www.securityspace.com/s_survey/data/
http://www.w3.org
http://www.php.net

3 问题
WEB的主要功能是传输用户需要的数据资料,开发WEB动态网页也就是开发用户获得需要的数据的过程。
有许多程序员开发各种各样的WEB应用系统仅仅是CASE BY CASE的去做,每次完成一个项目之后又需要做另一个功能相似的项目,而在每次完成之后软件的可重用性和成熟性没有合适的方式得到保证。
仅仅是依靠程序员自身的开发经验来控制代码质量或者使用只有自己才能重用的代码是不能适应大规模的软件生产的。
让我们开发一个可以大家共享的库和结构来开发WEB应用吧。

4 目标
¨ 对数据库等低层操作对象容易封装
¨ 对开发代码容易进行版本管理和分发
¨ 对常用应用系统开发通用应用模块
¨ 对用户定制系统容易采用低层对象构建
¨ 应用容易通过开放接口集成

5 方案
我们可以容易找到一些现成的方案:
¨ microsoft的 .net
¨ sun的j2ee系列
但世界上没有免费的晚餐。
如果使用.net的东西,那末我的设计就绑定在一个专有平台上,然后我开发的东西还要对这个容易崩溃的系统、不喜欢兼容其他系统的厂商交取高额费用。
如果使用j2ee,我也不喜欢一些很笨重缓慢的体系结构。并且这个方案也不能完全满足我的要求。
所幸,我们还有其他的选择:opensource世界的伟大工作:
我们将采用PHP和其他的一些东西来构建我们的应用系统,我们将容易了解低层的细节问题,我们将有一个友好、轻灵、功能齐全并且稳定的系统来完成我们的工作,我们将容易得到其他系统类似的系统设计和开发经验,我们还可以不用担心版权问题。;)

参考:
http://www.microsoft.com/china/net/?MSCOMTB=ICP_Microsoft%20.NET
http://java.sun.com/j2ee/
http://www.valinux.com/



6 采用PHP提供的模型

下面是internet小组在系统结构模型上的示意图:


图一 PHP的WEB开发模型

这幅图中其他部分我都不谈了,只描述我们需要做的web结构上的工作

6.1 类封装层
这一层我们将完成整个站点的底层数据构建:
我们参照phplib(http://phplib.netuse.de )和siteManager(http://www.roadsend.com )的结构来实现对异种数据库的封装和站点开发过程中必须的类:



图二 类封装层结构(引用siteManager的资料)
这里面包括了下面的类:
¨站点配置
¨基本模块----数据库访问 等
¨对话管理
¨界面模版管理
¨输入类型实体-选择/文本等
¨输入实体过滤器---email过滤器/数字过滤器
¨debug

通过这样的结构我们可以完成class layer的功能,提供整对web开发的最底层类。

6.2 应用总线
应用总线是从某种意义上来讲是个概念层的东西。它提供一个接口来连接应用,让各种通过class layer编写的应用模块容易结合在一起。
我们先了解一下总线的意义,拿硬件的总线做个比喻:
网卡、声卡、显卡这三个不同用途的硬件可以通过PCI总线连接到一起,并且通过CPU协同统一协调的工作,您不会因为这些硬件是由不同厂商提供的而无法正常工作。因为PCI总线是工业标准的通讯方式,这些硬件都使用同一种"语言"来交流。



图三 一个硬件总线结构的样例

我们的任务要完成的就是这样一个"WEB软件应用模块总线"结构:
这似乎很难,所幸的是,phpgroupware和webmin都可以作为一个好的例子:



图四 web应用总线示意图

通过统一的接口协议,我们可以容易集成应用到统一的整体,并拥有一个应用开发平台。
具体的内容在这里就不再多谈了。

参考:
http://www.phpgroupware.org
http://www.webmin.com

7 结论
我们通过上面的系统结构设计,并在许多网站和内部web应用系统上的具体应用,可以逐渐形成自己的成熟、稳定的系统结构体系。
并且在系统开发过程中可以有效的利用工具来自动生成web开发的默认模块配置,加快web应用开发和产品化进程。


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

CUDA之通用矩阵乘法:从入门到熟练! CUDA之通用矩阵乘法:从入门到熟练! Mar 25, 2024 pm 12:30 PM

通用矩阵乘法(GeneralMatrixMultiplication,GEMM)是许多应用程序和算法中至关重要的一部分,也是评估计算机硬件性能的重要指标之一。通过深入研究和优化GEMM的实现,可以帮助我们更好地理解高性能计算以及软硬件系统之间的关系。在计算机科学中,对GEMM进行有效的优化可以提高计算速度并节省资源,这对于提高计算机系统的整体性能至关重要。深入了解GEMM的工作原理和优化方法,有助于我们更好地利用现代计算硬件的潜力,并为各种复杂计算任务提供更高效的解决方案。通过对GEMM性能的优

华为干昆 ADS3.0 智驾系统 8 月上市 享界 S9 首发搭载 华为干昆 ADS3.0 智驾系统 8 月上市 享界 S9 首发搭载 Jul 30, 2024 pm 02:17 PM

7月29日,在AITO问界第四十万台新车下线仪式上,华为常务董事、终端BG董事长、智能汽车解决方案BU董事长余承东出席发表演讲并宣布,问界系列车型将于今年8月迎来华为干昆ADS3.0版本的上市,并计划在8月至9月间陆续推送升级。 8月6日即将发布的享界S9将首发华为ADS3.0智能驾驶系统。华为干昆ADS3.0版本在激光雷达的辅助下,将大幅提升智驾能力,具备融合端到端的能力,并采用GOD(通用障碍物识别)/PDP(预测决策规控)全新端到端架构,提供车位到车位智驾领航NCA功能,并升级CAS3.0全

四款值得推荐的AI辅助编程工具 四款值得推荐的AI辅助编程工具 Apr 22, 2024 pm 05:34 PM

这个AI辅助编程工具在这个AI迅速发展的阶段,挖掘出了一大批好用的AI辅助编程工具。AI辅助编程工具能够提高开发效率、改善代码质量、降低bug率,是现代软件开发过程中的重要助手。今天大姚给大家分享4款AI辅助编程工具(并且都支持C#语言),希望对大家有所帮助。https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI编码助手,可帮助你更快、更省力地编写代码,从而将更多精力集中在问题解决和协作上。Git

如何在iPhone中撤消从主屏幕中删除 如何在iPhone中撤消从主屏幕中删除 Apr 17, 2024 pm 07:37 PM

从主屏幕中删除了重要内容并试图将其取回?您可以通过多种方式将应用程序图标放回屏幕。我们已经讨论了您可以遵循的所有方法,并将应用程序图标放回主屏幕如何在iPhone中撤消从主屏幕中删除正如我们之前提到的,有几种方法可以在iPhone上恢复此更改。方法1–替换应用程序库中的应用程序图标您可以直接从应用程序库将应用程序图标放置在主屏幕上。第1步–横向滑动以查找应用程序库中的所有应用程序。步骤2–找到您之前删除的应用程序图标。步骤3–只需将应用程序图标从主库拖动到主屏幕上的正确位置即可。这是将应用程序图

PHP中箭头符号的作用及实践应用 PHP中箭头符号的作用及实践应用 Mar 22, 2024 am 11:30 AM

PHP中箭头符号的作用及实践应用在PHP中,箭头符号(->)通常用于访问对象的属性和方法。对象是PHP中面向对象编程(OOP)的基本概念之一,在实际开发中,箭头符号在操作对象时发挥着重要作用。本文将介绍箭头符号的作用以及实践应用,并提供具体的代码示例来帮助读者更好地理解。一、箭头符号的作用访问对象的属性箭头符号可以用来访问对象的属性。当我们实例化一个对

常用常新!华为Mate60系列升级HarmonyOS 4.2:AI云增强、小艺方言太好用了 常用常新!华为Mate60系列升级HarmonyOS 4.2:AI云增强、小艺方言太好用了 Jun 02, 2024 pm 02:58 PM

4月11日,华为官方首次宣布HarmonyOS4.2百机升级计划,此次共有180余款设备参与升级,品类覆盖手机、平板、手表、耳机、智慧屏等设备。过去一个月,随着HarmonyOS4.2百机升级计划的稳步推进,包括华为Pocket2、华为MateX5系列、nova12系列、华为Pura系列等多款热门机型也已纷纷展开升级适配,这意味着会有更多华为机型用户享受到HarmonyOS带来的常用常新体验。从用户反馈来看,华为Mate60系列机型在升级HarmonyOS4.2之后,体验全方位跃升。尤其是华为M

AI程序员哪家强?探索Devin、通义灵码和SWE-agent的潜力 AI程序员哪家强?探索Devin、通义灵码和SWE-agent的潜力 Apr 07, 2024 am 09:10 AM

2022年3月3日,距世界首个AI程序员Devin诞生不足一个月,普林斯顿大学的NLP团队开发了一个开源AI程序员SWE-agent。它利用GPT-4模型在GitHub存储库中自动解决问题。SWE-agent在SWE-bench测试集上的表现与Devin相似,平均耗时93秒,解决了12.29%的问题。SWE-agent通过与专用终端交互,可以打开、搜索文件内容,使用自动语法检查、编辑特定行,以及编写和执行测试。(注:以上内容为原内容微调,但保留了原文中的关键信息,未超过指定字数限制。)SWE-A

学习如何利用Go语言开发移动应用程序 学习如何利用Go语言开发移动应用程序 Mar 28, 2024 pm 10:00 PM

Go语言开发移动应用程序教程随着移动应用市场的不断蓬勃发展,越来越多的开发者开始探索如何利用Go语言开发移动应用程序。作为一种简洁高效的编程语言,Go语言在移动应用开发中也展现出了强大的潜力。本文将详细介绍如何利用Go语言开发移动应用程序,并附上具体的代码示例,帮助读者快速入门并开始开发自己的移动应用。一、准备工作在开始之前,我们需要准备好开发环境和工具。首

See all articles