PHP的面向对象编程.ppt
PHP里的面向对象Oop,mvc,framework1.分享几个概念分享几个概念好的程序员都是代码堆出来的,写程序没有捷径!程序员也是一个创意性的工作,每一个新的功能都是一个新的创意!KISS原则(KeepItSimple,Stupid),要把一个系统做的连白痴都会用。Keyword:用户体验!奥卡姆剃刀原理(OccamsRazor)。如无必要,勿增实体(Entitiesshouldnotbemultipliedunnecessarily)。不要重复发明轮子(DontReinventtheWheel)2.PHP是什么?是什么?PHP(PersonalHomePage,HypertextPreprocessor),PHP于1994年由RasmusLerdorf创建。PHP是一种在服务器端执行的脚本语言。语言的风格类似于C语言。LAMP,LNMP。Memcached,redis.(运行环境,web服务器,数据库,服务端语言,内存级数据缓存)Php5.0之前是面向函数式编程,数据在不同方法中的传递完成了整个编码过程。Php5.0开始使用新的脚本解析引擎,同时完全实现面向对象。http:/ Oriented Programming,面向对象的编程实现。首先根据客户需求抽象出业务对象;然后对需求进行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装、抽象的编程思想,实现业务需求;最后通过整合各模块,达到高内聚、低耦合的效果,从而满足客户要求。面向对象是在结构化设计方法出现很多问题的情况下应运而生的。对象。(帮助页,一个问题,类型/问题/答案)对象的状态和行为。(类型/问题/答案组成;添加/删除/修改/排序/分类)。类。具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。属性,方法,参数,返回。5.Php的面向对象的面向对象 类类类的定义:ClassGameHelpPrivate$type;Private$question;Private$answer;Private$author;PublicfunctionaddQuestion()PublicfunctioneditQuestion()ProtectedfunctioncheckExist()PrivatefunctionquestionAuthor()访问限制:访问限制:Public protected private6.Php的面向对象的面向对象 继承继承类的定义:ClassGameHelpPrivate$type;Private$question;Private$answer;Private$author;PublicfunctionaddQuestion()PublicfunctioneditQuestion()ProtectedfunctioncheckExist()PrivatefunctionquestionAuthor()ClassQuestionextendsGameHelp$q=newQuestion();$q-addQuestion();$q-checkExist();7.Php的面向对象的面向对象 构造函数和析构函数构造函数和析构函数ClassExamplePrivate$nums;Publicfunction_construct()$this-nums=5;Public function showNum()Return$this-num;Public function _destruct()$e=newExample();Echo$e-showNum();$this,表示当前对象。构造构造函数,函数,在建立一个对象实例时被执行。析构析构函数,函数,PHP将在对象被销毁前调用这个函数。8.Php的面向对象的面向对象 静态成员静态成员静态成员与对象的实例无关,只与类本身有关.他们用来实现类要封装的功能和数据,但不包括特定对象的功能和数据.静态成员包括静态方法和静态属性.class Counter private static$count=0;const VERSION=2.0;function _construct()self:$count+;function _destruct()self:$count-;static function getCount()return self:$count;9.MVCMVC是 模型(Model),视图(View)和控制(Controller)的缩写。一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑。View,视图是用户看到并与之交互的界面。Model,模型表示企业数据和业务规则。Controller控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。10.MVC注意事项注意事项MVC是一种软件设计方式。更多体现在开发/代码层面完整的产品设计包括:1。用户交互/用户体验2。需求分解3。功能/模块设计4。系统设计5。系统架构6。分层开发MVC仅适用小型项目,便于快速开发部署。MVC模式在复杂系统里,仅用于用户通讯部分。Module,动态模块加载11.框架是什么?框架是什么?一种规范,横向-多人协作,纵向-功能扩展,版本改进。常用功能的实现/封装。特定场景的适用性。特点:单一入口,请求分发。书写上的约定。那些模块按什么格式大致分大致分2种:基于表单的,基于事件的种:基于表单的,基于事件的12.我们的框架我们的框架i.php是入口,a=xxxx,a是固定参数,xxxx表示功能号,对应到xt_gong_neng数据表。每个功能号代表一个单独的功能/实现。Bean目录,文件格式:b_xxxxxx,xxxxxx为数据表名称,所有文件继承bean类,封装了对单个数据表的多种操作。model目录,所有的功能实现,返回数据结果给controller,调用bean完成数据操作。Controller目录,接收用户输入,把请求发送到不同的model,获得结果,调用view,返回结果给用户。View,html部分。照葫芦画瓢!