thinkphp5 开发的那点事

知识点1:* 应用程序的流程图。对于一般的框架是这样的。*

thinkphp5 开发的那点事_第1张图片

  • index.php文件作为前端控制器,初始化运行CodeIgniter所需的基本资源;
  • Router检查http请求,以确定如何处理请求;
  • 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程;
  • 在加载应用程序控制器之前,对http请求以及任何用户提交的数据进行安全检查;
  • 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源
  • 最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图会先被缓存起来用于后续请求。
    注释:前端控制器属于设计模式的一种,它用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。该程序可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序。

知识点2:对MVC设计模式的思考
MVC 是一种 用于将应用程序的逻辑层和表现层分离出来的软件方法。在实践中,由于这种分离 所以你的页面中只包含很少的 PHP 脚本。
* 模型:代表数据结构。通常来说,模型类将包含帮助你对数据库进行增删改查的方法。可以说包含了DOA层和模型层。
* 视图:是要展现给用户的信息。一个视图通常就是一个网页,但是在CI中,一个视图也可以是一部分页面(例如页头、页尾),它也可以是一个RSS页面,或者其他任何类型的页面。(表现层中的模板层)
* 控制器:是模型、视图以及其他任何处理http请求所必须的资源的中介,并生成网页。

知识点3:tp5开发中的错误与调试、日志
如果异步ajax访问tp5,不会返回trace信息。
项目开发的时候,出现错误在所难免,最大的困惑在于发现问题所在,其次才是如何解决问题。因此懂得如何调试和跟踪问题非常之关键。
总的来说有:trace信息(右下角)、错误页面(能解决80%的错误)、断点调试(dump,halt,trace控制台输出)、日志分析


学习框架需要掌握的一些概念
* LAMP是基于Linux、Apache、Mysql和php的开放资源网络开发平台,也就是web平台,其中的php有时候用Perl或Python去替换。Linux是开发系统,Apache是最通用的网络服务器,mysql是带有网络管理附加工具的关系型数据库,php是流行的对象脚本语言。php包含了多数其他语言的优秀特性来使得它的网络开发更加有效。
我喜欢使用WAMPServer作为win7下的集成环境。
* OOP,面向对象编程是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。
为了实现整体运算,每个对象都能够接收信息、处理数据和向其他对象发送信息。OOP主要有以下的概念和组件:
* 组件:数据和功能一起在运行着的计算机程序中形成的单元,也就是多个对象组合在一起,向外提供相同功能的组合体。组件在OOP计算机程序中是模块和结构化的基础。
* 抽象性:对信息主要方面关注的能力。
* 封装、继承和多态,这三种特性在书本上已经讲的不厌其烦了。[坏笑]
* ORM:(object/relation mapping)对象-关系映射,是随着面向对象的软件开发方法发展而产生的。==面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级环境中永久存放数据的主流数据存储系统。对象和关系数据是也为视图的两种表现形式,业务在内存中表现为对象,在数据库中表现为关系数据库。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系==,也就是代码中的对象和数据库中的数据之间,需要一个转化的桥梁,这个桥梁就是ORM。
* CURD:它代表了对数据的基本原子操作:增、删、改、查。

  • ActivRecord:可以简单理解为ORM层的一种实现方式,它遵循标准的ORM模型:表映射为记录,记录映射到对象,字段映射到对象的属性。它能够很大程度的快速实现模型的操作,而且简单易懂。

    ActiveRecord的主要思想是:

    • 每个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录,通常表的每个字段在类中都有对应的field(属性)
    • ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD
    • ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑

    ActiveRecord比较适用于:

    • 业务逻辑比较简单,当你的类基本上和数据库中的表一一对应时,ActiveRecord是非常方便的,即你的业务逻辑大多数是对表单操作
    • 当发生跨表的操作时,往往会配合使用事务脚本,把跨表事务提升到事务脚本中
    • ActiveRecord最大优点是简单、直观。一个类包括数据访问和业务逻辑。如果配合代码生成器使用就更方便了。这些优点是ActiveRecord特别适合WEB快速开发。
  • CBD架构模式
    核心+行为+驱动

    • 核心(Core):就是框架的核心代码,不可缺少的东西,thinkphp这个框架就是基于MVC的开发框架。
    • 行为(Bahevior):行为在thinkphp架构中起到了去足轻重的作用,在系统核心之上,设置了很多标签扩展位,而每个标签位置可以依次执行各自的独立行为。行为扩展就此诞生,而且很多系统功能也是通过内置的行为扩展完成的,所有的行为扩展都是可替换和增加的,由此形成了底层框架的可组装的基础。
    • 驱动(Driver):数据库驱动、缓存驱动、标签库驱动和模板引擎驱动,以及外置的类扩展。
  • 单一入口
    通常是指一个项目或者应用具有一个统一(但并不一定是唯一)的入口文件,也就是一个项目的所有功能操作都是通过这个入口文件进行的,并且入口文件是执行的第一步。
    单一入口的好处是控制比较灵活,因为拦截方便,类是如一些权限控制、用户登录方面的判断和操作可以统一处理了。

    欢迎转载!!!

你可能感兴趣的:(程序类)