MVC自定义框架(1)

思考:在以前的代码中我们不难发现,为了实现功能,我们的代码写的很随意,不受任何约束;所有的代码都需要从最基本单元累积,没有任何支撑(代码复用)。实际开发中是这样的方式的吗?

引入:编程早期时,确实如此,所有的功能都是从无到有慢慢写出来的。因为那时候即便是完全相同的功能,在不同电脑上就得有不同的代码。而随着时间推移,随着项目需求越多,项目实现越来越大,就诞生了这样一种技术:框架技术



一、框架技术(了解)

定义:框架技术,是指利用某种编程语言设计出来的,一种能够约束后续代码书写规范,同时还能对功能开发具有一定支撑性的代码结构。

  1. 框架说明:通俗的理解,就是框架会将很多底层的代码写好,然后规范开发者具体要做的事情(通常围绕业务展开)
  • 利于实现代码复用(事实上大量代码复用)
  • 提升开发效率
  • 开发人员可以更多关注当前要实现的功能,而不需要关注底层实现
  • 规范开发人员在限定的区域里展开自己的业务代码实现
  1. 框架规范:框架基本都是基于面向对象的编程语言才有,目前PHP的框架也都是基于MVC思想设计,核心的方式都是封装好相应的安全、权限以及底层实现,开发人员只需要将业务模块按需填充代码即可(MVC即可)。
  • 已完成部分:底层架构已经完全实现
    • 路由设计:用户访问URL
    • MVC底层:DAO设计、公共模型设计、公共控制器设计、视图设计、模板技术实现
    • 安全设计:权限管理设计
    • 插件设计:各类插件设计(验证码、文件上传、验证规则等)
  • 待完成部分:业务功能需要开发者自己完成
    • 数据库设计
    • 视图设计(前端人员)
    • 控制器设计
    • 模型设计
    • 按需配置(利用框架提供的配置,选择性配置)
  1. PHP成熟的框架有很多,项目可以根据实际的需求来选择对应的框架,目前市面最常见的PHP框架有以下几个:
  • ThinkPHP:目前已到5版本,中文操作手册,非常受欢迎
  • Laravel:组件型框架,设计思想先进,但是比较笨重
  • CI:轻量型框架,非常简单
  • YII:重量级框架,也是基于组件

总结

  1. 框架开发是一种快速开发模式
  2. 框架会提供成熟的设计模式,优良的结构,完整的底层设计,开发人员只需要针对业务开展设计即可
  3. 常见的框架有很多,但都是基于MVC思想实现的


思考:框架已经将底层都搭建好了,开发的时候都是根据具体业务写部分代码,那么如何了解一个框架的底层是如何实现的呢?

引入:一个底层框架的实现,自然是有一套设计逻辑。学习一个框架首先是要知道怎么去使用框架解决问题,然后再深入框架是如何实现,学习其设计思路。这里,我们可以先模拟一个简单的框架底层实现,这样对后续框架的学习和使用就很有帮助了。



二、MVC自定义框架分析【掌握】

定义:MVC自定义框架,是基于MVC设计思想下,实现项目单一入口为基准的简单框架,有了该框架,我们就可以在后续的项目中,使用事先设计的框架进行快速开发了。

1.框架结构设计

  • 框架是基于MVC设计
  • 框架是项目单一入口,即所有浏览器发起的请求(无论是用户主动还是被动)都是请求入口文件
  • 数据库操作部门DAO使用PDO的二次封装实现
  • 视图操作借助于Smarty实现
  • 公共控制器处理公共业务代码
  • 公共模型处理公共数据操作代码
  • 整个框架自动加载

2.框架设计思路如下

在这里插入图片描述

三、MVC自定义框架设计【掌握】

定义:MVC自定义框架设计就是按照设计思路,顺着代码的执行顺序去逐步编码,先实现简单的,必须的逻辑代码,后期发现有新的需求,可以回头增加对应的功能(不是修改)。具体的思路我们可以按照根据设计的结构性来划分成多个部分

  • 项目目录结构
  • 入口+初始化部分
  • 控制器部分
  • 模型部分
  • DAO重用部分
  • Smarty插件部分
  • 代码测试

3.1、项目目录结构设计【掌握】

定义:项目目录结构是代码开始前最先设计的部分,规定代码的工作和存储位置,也代表未来访问路径

1.通常一个基于MVC的项目单一入口有以下目录结构

  • /:网站设计根目录

    1.public:公共资源目录(网站访问根目录),包括入口文件,静态资源(css/JavaScript/Image)

    2.app:应用目录,存放MVC代码

     	admin:后台部分
     			controller:存放业务控制器,带admin\controller命名空间
     			model:存放业务模型,带admin\model命名空间
     			view:存放视图模板
     		
    
     	home后台部分
     			controller:存放业务控制器,带admin\controller命名空间
     			model:存放业务模型,带admin\model命名空间
     			view:存放视图模板
    
  • config:配置目录,存放各类配置文件

  • core:核心目录,存放核心文件,如初始化文件、公共控制器、公共模型等,带core命名空间

  • vender:第三方应用目录,如smarty等

总结:

1.网站根目录是指设计的结构根目录,而网站对外的站点可以设置为根目录下的public文件夹(实际网站根目录),这样可以从服务器角度防止用户访问其他PHP文件

2.app目录作为开发者最核心的目录,框架完成后,开发者只要做的就是在app各个目录中写入代码

3.如果前后台能够公用等等模型代码很多(理论上都是操作同样的表,只要数据操作方式一样即可),可以合并放到app目录下

3.2、配置服务器【掌握】

相关推荐
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页