機器語言:簡單的二進制語言 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層操做
入口文件: