一,面向对象的思想
1.1解释:将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性,灵活性,可扩展性。
对象由属性和方法组成
对象在PHP 中使用一种zend_object_value的结构储存的
1.2对象和类的概念以及关系:
类是定义一系列属性和操作的模板,而对象则把属性进行具体化,然后交给类处理。
对象就是数据,对象本身不包含方法
1.3魔术方法:
__construct 构造方法 一个类只能有一个构造函数
__set __get 重载
__get
__toString 定制输出结果:
__call() 重载方法
1.4类的组合和继承
继承:子类继承父类的属性和方法;子类拥有父类的属性和方法,子类也可以拥有自己的属性和方法;
耦合:是一个软件结构内不同模块之间互连程度的度量;
继承的劣势:
继承破坏封装性
继承是紧耦合性
继承扩展复杂
1.5多态: 同一类的对象收到相同的消息时,会得到不同的结果.
多态性是一种通过多种状态或阶段描述相同对象的编程方式。
1.6接口 对于实现我的所有类,看起来都应该像我现在的这个样子。
接口为抽象而生
TRAITS可视为加强型的接口
接口作为一种规范和契约存在
由于PHP 是弱类型,且强调灵活,所以不推荐大规模使用接口,而是仅在部分内核代码中使用接口。从语义上考虑,可以更多的使用抽象类!
接口的不足:一是没有契约限制,二是缺少足够多的内部接口
1.7反射

对文件里的类进行描述,逐个生成描述文档!
1.8 PHP 的异常处理
try
{ //...}
catch(Exception $e)
{ //...}
PHP中try{}catch{}是异常处理.
将要执行的代码放入TRY块中,如果这些代码执行过程中某一条语句发生异常,则程序直接跳转到CATCH块中,由$e收集错误信息和显示.
异常:是程序运行中不符合预期的情况及与正常流程不同的情况。
异常只有手动抛出后才能捕获,或者是有内建的异常机制时时,会先触发错误,再捕获异常!
1.9PHP错误: 会使脚本运行不正常!
错误级别由低到高:warning notice deprecated fetal error
php.ini 中 error_reporting() 设置错误级别;
set_error_handler(error_function, error_types); 自定义的错误处理函数
二,面向对象设计的五大原则
2.1 单一职责原则:(SRP)
减少类之间的耦合;提高类得复用性;
工厂模式(Factory):允许你在代码执行时实例化对象。
2.2接口隔离原则(ISP);

理解:一个类对另外一个类的依赖性应当是建立在最小的接口上的。
客户端程序不应该依赖它不需要的接口方法;
2.2.1对接口的污染

2.3开放-封闭原则:(OCP)
一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。


2.4替换原则:(LSP)(看得不是很懂)
2.5依赖倒置原则(看得不是很懂)
四,PHP网络技术 与应用
HTTP 超文本传输协议 Hyper Text Transfer Protocol


4.1工作原理:






参数解析: method 请求方法
request url 请求地址
HTTP Version :请求的HTTP协议版本

2.响应 状态行 消息报头 响应正文

响应状态

3.应用实例:模拟灌水机器人
遵循HTTP协议和服务器进行交互,实现一个简单的浏览器;

4.进程通信的相关观念
4.1端口(protocol port) 用于标识通信的进程
网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源;
端口号小于256 定义为常用端口
FTP 常用端口 21号 HTTP 80端口 SMTP 25端口
两个进程间的通信链路称为连接;
五,SESSION;



网友评论