PHP中MVC模式下类的动态加载实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:WANGYUEWANG
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:应用PHP作为Web项目开发语言,类文件之间的相互引用常见又频繁,但在MVC开发模式之下,由于类文件位置的分散,而使得类间引用关系条理不清。为优化代码编写效率与执行效率,运用当前控制器、行为方法路由地址动态装载和改写自动加载类的方法,实现随请求的改变动态加载类文件。
  关键词:MVC
  中图分类号:TP393 文献标识码:A
  文章编号:1009-3044(2019)34-0060-02
  软件项目开发中,为提高效率,提高程序员的代码产量,框架的应用尤其广泛。PHP因其上手快,业务框架多等特点成为现今B/S模式开发下热门语言,程序设计人员可以根据业务需求灵活选用不同的框架进行快速代码部署[1]。然而,无论哪种框架模式,都需要程序人员对原生代码的熟知与灵活运用,就PHP开发环境下MVC模式的代码设计来说,分离的组织代码路径的获取是令人头疼,也是最容易代码运行中产生错误的地方。为此,创建一个动态路径的加载应用会极大方便编码,解脱程序员在不同路径的烦琐搜寻。
  1 问题环境的描述
  1.1 MVC模式
  MVC(ModeIViewController)即模型一视图一控制器的缩写,是流行至今的一个软件设计典范,多种开发语言中均有运用[2]。它是一种运用业务逻辑、数据以及应用交互界面分离的方法来组织代码,将众多的业务逻辑汇集到一个部件中,在需要改进与个性化定制界面及用户交互的时,无须重新编写业务逻辑,从而提高编码效率。
  1.2文件手动加载
  PHP项目开发中,模型、视图与控制器为保证相互独立,编码文件所在目录分散,造成文件调用过程中文件包含关系错综复杂,程序员需耗费相当精力实现被包含文件的加载,且包含条理混乱,错误频发。对项目的后期维护与迭代都会产生相当的影响。
  为此,项目设计起始就应解决模块间的加载困扰,应用某策略,使得在文件调用中无须关顾太多路径问题。
  2 自动加载实现
  MVC模式下,模型、视图与控制器分属不同目录文件位置(如图2),用户首先访问人口页面视图,视图请求控制器,控制器响应特定行为,获取相应模型数据,而后将处理结果反馈到视图中呈现给用户。因而,在访问请求中需明确控制器和控制器执行的行为名称。在用户的首次访问时,因请求地址可能只包含域名而未给定控制器与行为名,故而使用默认初始化的CONTROLLER_NAME和ACTION_NAME,当用户请求非首页页面时,由于链接地址中明确给出了控制器和行为名称,在经过路由装载后,生成当前控制器和视图的路径并存放与“URL”和“VIEW_”中,当实例化类对象时,自动调用经重写和注册的自动加载类方法,实现包含文件后台加载。
  2.1 常量的定义
  在实际项目中,站点代码会因环境不同部署在不同存储位置,故而应首先获取存储目录(ROOT_PATH),再依据站点的目录结构进行设定。具体描述见表1。
  2.2 路由装载
  MVC模式页面的访问,一般域名地址相同,不同页面区别只在于地址信息中控制器、行为方法和应用平台等信息的不同。当控制器、行为方法或应用平台参数值发生改变时,执行路由解析会针对不同URL,获取不同的控制器和行为方法名,调用不同的模型应用。代码如下:
  private static function initRoutes0{
  $c=isset($_REQUEST["c"])? $_REQUEST["c"]: $GLOBALS[”config"][¨app¨][’default_controller’];//接收控制器名
  $a=isset($_REQUEST["a”])?
  $_REQUEST["a"]:
  $GLOBALS["config"]["app"][ ’default_action’];//接收行為方法名
  $p=isset($_REQUEST["p"D? $_REQUEST["p"): $GLOBALS[”config"][¨app¨Ⅱ7 default_platform 7];//接收平台名
  define(”CONTROLLER_NAME”,$c)//定义常量控制器名
  define(”ACTION_NAME”,$a);//定义常量行为方法名
  define(”PLATFORM—NAME”,$p);//定义常量平台名
  define(”一URL_”,
  CONTROLLER_PATH.
  PLAT-FORM_NAME.DS);//当前的控制器目录
  define(“_VIEW一”,VIEW_PATH. PLATFORM_NAME. DS);//当前视图目录:”
  )
  2.3 类的自动加载
  为实现控制器类中方法能调用不同视图和模型,需要在实例化类对象之前,加载类的定义,即要完成对不同存储位置下类的引用。为优化代码的性能,节省无谓的精力消耗,应用类自动加载方案。将自动加载类_autoLoad0方法运用pl_auto-load_register0重新注册改写,当代码解析为新引用类时,自动调用改写方法,计算路由路径地址予以实例化加载,以实现不同文件目录下的类的自动加载。改写代码如下:
  private static function autoLoad($class_name){
  $class_map=array(’ MySqIDB’ =
其他文献
摘要:中华传统文化是中华民族的灵魂,是实现中华民族伟大复兴的精神支柱。随着我国对传统文化的不斷重视,通过哪种渠道传播传统文化更容易被人们接受成为文化传播过程中面临的首要问题。近几年手机互联网的不断发展,使手机游戏成为人们喜闻乐见的娱乐工具。在手机游戏中渗透传统文化是传播中华文化的创新表现,也是互联网时代传播传统文化的新渠道。因此,本文主要阐释手机游戏作为传统文化传播新渠道的具体表现和重要意义,以及
摘要:对高职院校大一学生的计算机信息技术知识的掌握程度进行了调查,在调查结果的基础上,提出了大学生计算机信息技术课程的教学改革内容,探究了与之相适应的教学模式。  关键词:计算机信息技术课程;调查结果;教学模式  中图分类号:TP311 文献标识码:A  文章编号:1009-3044(2019)31-0157-02  大学生计算机信息技术课程是高校非计算机专业的大学生必修的一门公共基础课程,其目标
摘要:在目前中职院校教育教学中,计算机网络技术课程在整个课程体系中属于重要的一门,也是计算机专业的必修课程,因而有效开展计算机网络技术课程教学十分重要,也是计算机人才培养的重点要求。在新时期教育教学背景下,中职计算机网络技术教师应当通过有效措施及策略进一步改进教学,以保证课程教学能够得到更加满意的效果,在此基础上更好培养计算机网络技术专业人才,促使课程教学更好发展。  关键词:中职教育;计算机网络
摘要:面对高性能计算、大数据分析和浪涌型IO高并发、低时延(集中式网盘)应用,RDMA技术可以提供极低的延时和更高速的数据传输处理。RDMA技术要求的无损网络通过在交换机上支持RoCE协议来实现。而RoCE协议中的PFC,ECN等水线设置可以通过静态配置或者动态配置算法来实现低延时和无损传输,本文主要就这些水线参数的设置做理论推导分析,可以作为水线调参优化的理论原则。  关键词:RDMA;PFC;
期刊
摘要:信息技术的不断发展,极大地提高了医疗服务水平,同时也提高了医务人员的服务效率,减轻了负担。传统的脑卒中病人的随访评分记录以纸质形式进行存档,这种方式存储的数据不能被直接提取、统计和分析,会造成严重的资源浪费。一般的脑卒中评分系统,是针对神经内科医生的普遍需求,医生难以针对自身的需求对系统进行修改。考虑到很多医生大学有过VB学习经验,采用ExceIVBA技术,综合运用VBA的多种功能,以医生作
摘要:高职院校C语言程序设计教学工作中,若能与学科竞赛相互结合,不仅可以增强学生们的学习动力,并可以在合理竞争中,锻炼发展学生们专业技能。基于此,本文首先介绍了高职院校C语言程序设计教学工作的发展现状;其次,分析了高职院校C语言程序设计发展方向;最后,探究了基于学科竞赛的高职院校C语言程序设计教学方法。  关键词:高职院校;C语言;学科竞赛;教学需求  中图分类号:TP311 文献标识码:A  文
摘要:工程教育专业认证的核心任务是学生专业培养目标达成度,倡导逆向设计课程教学模式和教学方案,并强调建立专业持续改进机制以保证专业教育质量和专业教育活力。该文以软件工程专业的软件工程课程为例,阐述了在工程教育认证背景下,针对软件工程课程的教学内容、方法和评价等进行的研究与改革。结果表明:结合本课程的在线开放课程平台,课堂教学及工程实践的内容得到了丰富和提升,同时多样化的教学形式和过程化的教学评价,
摘要:当前随着科学技术地快速发展,办公软件应用课程也受到了多数人员的关注,该门课程是实践性较强的课程,单靠传统理论为主的教学方法已经无法适应时代发展,满足不了学生个性化的学习需求,因此这就要求教师要做好教学改革与创新,有效将一体化教学模式引入进来。通过一体化教学能够促进学生及时对所学知識进行吸收与消化,增强学生的实践技能。基于此,本文就对这方面的内容进行了分析,并提出办公软件应用课程一体化教学的实
本文结合物联网本科专业实践教学的经历,分析了当前物联网专业实践教学中存在的问题,体现了物联网实践教学涉及多学科、教师综合知识要求的特点,指出当前校企联合实践教学的弊端,实践教学内容安排与学生课堂知识脱节,导致学生实践教学难度大,被动接收的局面,丧失了主动实践的机会。针对这些问题,本文提出了物联网实践教学的内容、实施细则和管理制度的思路,用于保障实践教学的顺利实施及质量保障。
分析了大学计算机基础课程存在的问题,构建了一种新的教学模式,根据学生的计算机能力对学生进行分层教学,实现“因材施教”,借助SPOC平台实施翻转课堂的教学改革,使得学生成