机器语言:简单的二进制语言 php
二进制:算法
0000 加载;0001 存储;编程
汇编语言:用特定的符号表明的指令设计模式
Load 加载缓存
store 存储 网络
解决问题的过程:面向过程数据结构
对象:世界万物皆为对象,一切不可见的事物也是对象函数
对象组成:学习
一、元素部分:构成(至关于对象的数据模型,用于描述对象的数据信息,另称为对象的属性或者对象的成员变量)this
2、行为部分:做用(对象的行为模型,用于描述对象能够作什么,又被称为对象的方法)
对象的特色:
一、每个对象都是一个特定的事物,职能是完成特定的职能,每个对象都是独一无二的,每个对象都是能够重复使用的。
面向对象:
就是在编程的时候,始终把对象放在心上
普通方法须要对象来调用,须要绑定$this,普通方法必需要有对象,让对象来调用
静态方法不属于对象,所以不须要绑定$this,也就是说静态方法不须要对象也能够调用
面向对象的编程:
就是在编程的时候,数据结构都经过对象的形式(属性、方法)存储
为何要学习面向对象:
一、对象的描述方式更加贴合真实的世界,有利于大型业务的理解
二、在程序设计的过程当中,用对象的视角分析世界的时候,可以拉近程序设计和真实世界的距离。
面向对象的实质:
把生活中要解决的问题,都用对象的方式(属性、方法)进行存储。
面向对象的基本思路:
一、识别对象
二、识别对象的属性
三、识别对象的行为
面向对象的基本原则:
高内聚:
1、对象只负责一条特定的职能,这件职能可大可小
2、全部对象相关的内容,都封装到对象内部
低耦合:
一、外部世界只能够看到对象的一些属性,并不是所有
二、外部世界能够看到对象能够作某些事情,并不是所有
面向对象和面向过程的区别:
1、面向过程经过步骤来划分
2、面向对象是经过功能来划分
面向对象的优势:容易维护、开发效率高
类:
物以类聚,把具备类似特性的对象归类到一个类中。类,定义了这些类似对象,拥有着相同的属性和方法。类,是类似对象的描述,称为类的定义,类的对象成为类的一个实例,类的属性和方法统称为类的成员。
面向对象的三大特色
封装:把客观的事物封装成抽象的类,而且类能够把本身的数据和方法只让可信的类或者对象来操做,对不可信的进行信息隐藏
继承:子承父类,继承以后,上一个类的东西能够任意调用
一、父类中定义的类成员能够不用再子类中重复定义,节约了变成的时间和代价
二、同一个父类的子类,拥有相同的父类定义的类成员,所以外部调用他们的时候能够一视同仁
三、子类能够修改和调整父类定义的类成员,咱们称之为重写,一旦子类重写了,就会按照重写后的执行
多态:对相同的行为作出不一样的反应
成员变量就是实例化类的一部分,至关于对象的组成部分。
$this是PHP里面的伪变量表示对象自身,能够经过$this->的方式,来访问对象自己的属性和方法
类常量:
1、属于类自身,不属于对象实例,不能经过对象实例来访问
2、类常量不能用public、protected、private、static(访问控制)来访问。
3、子类能够重写父类中的常量、能够经过parent::的方式来调用父类中的常量。
4、常量的值只能是标量string、bool、int、float、nul
访问控制:
Public:共有的类成员能够在任何地方访问
Private:私有的类成员,只能被类本身自己访问
Protected:受保护的类成员,能够被自身和他的子类访问
接口:
就是把不一样类的共同的行为进行了定义,而后在不一样的类里面实现不一样的功能interface,一旦某个类实现了某个接口,那么就必须实现接口中定义的方法。
某一个类继承类和继承接口的区别:
一、实现接口和继承类很是类似,可是接口不能直接建立本身的对象
二、继承的父类必须有该方法的实现,子类能够重写父类的方法也能够不重写
三、接口里面的方法不须要具体实现,只要定义了方法名称和参数就能够,具体的实现必须在实现类里定义。类的方法必须有实现,接口的方法必须为空。
抽象类:
任何一个类,若是它里面至少有一个方法是是被声明为抽象的,那么那就必须声明为抽象类,抽象类不能被实例化,被定义为抽象的方法,只是声明了他的调用方式,不能定义他具体的功能实现,继承一个抽象类的时候,子类必须定义父类中全部的抽象方法。
PHP设计模式:
工厂模式、单例模式、注册树模式、适配器模式、策略模式、数据对象映射形式、观察者模式、原型模式、装饰器模式、迭代器模式、代理模式
面向对象设计模式:
策略模式、工厂模式、单例模式、观察者模式。
观察者模式:当一个对象的状态发生了改变时,以来于他的对象所有会收到通知而且自动更新。观察者模式实现了低耦合、非侵入式的通知与更新机制
一个事件发生后要执行一连串的更新操做,传统的编程方式就是在事件的代码后面直接加入处理逻辑,当更新的逻辑增多以后,代码会变得难以维护,这种方式是耦合的,侵入式的,若是要增长新的逻辑须要修改事件主题的代码,因此观察者模式实现了低耦合,非侵入式的通知与更新机制
单例模式:
将构造函数声明成私有的形式、声明一个静态方法来实例化本身、声明一个私有的或者受保护的属性、判断当前的属性有没有调用成功、在设定好的工厂模式中调用单例方法。
策略模式:
将一组特定的行为和算法封装成类,以适应某些特定的上下文环境。
Smarty:
比较好的视图引擎
基于该引擎开发出的模板要更贴近标准的HTML、语法简单易懂、良好的缓存机制、扩展性良好、网络资源多
常见的视图引擎:
Smarty phpLIB
什么是smarty:
smarty是使用PHP写出来的模板引擎,是目前世界上最著名的PHP模板引擎之一,他分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将本来与HTML混在一块儿的PHP代码逻辑分离
smarty的特色:
一、速度快(相对于其余的模板引擎)
二、编译型(采用smarty编写的程序在运行时要编译成一个非模板技术的PHP文件)
三、缓存技术(它能够将用户最终看到了HTML文件缓存成一个静态的HTML文件)
四、插件技术(smarty能够自定义插件)
不适合smarty的地方:
正由于smarty缓存技术,使得它不太适合那些对实时性要求比较高的
Smarty 插件
Function 函数插件
Mondifiers 修饰插件
Block function 区块函数插件
一、引入主文件
二、实例化主文件的类
三、开启smarty配置
MVC:
M: modle 模型(数据处理)
V:view 视图(页面显示)
C:controller 控制层(业务逻辑)
C实现业务逻辑或者思路拿着C层的参数请求M层在M层作数据处理,将值返回C层,最后C层把数据显示到V层操做
入口文件: