欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php設(shè)計(jì)模式總結(jié)上-創(chuàng)新互聯(lián)

1 編程選擇等寬字體

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括岳塘網(wǎng)站建設(shè)、岳塘網(wǎng)站制作、岳塘網(wǎng)頁(yè)制作以及岳塘網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,岳塘網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到岳塘省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!

2 source code pro 字體

3 運(yùn)行環(huán)境搭建,推薦 easyphp

4 關(guān)于命名空間:

面向?qū)ο蟮母呒?jí)特性

介紹、使用:

namespace test1;

下面的所有代碼都屬于這個(gè)命名空間里面的。

調(diào)用:test1\funciton_name(); 即可。

5 類(lèi)自動(dòng)載入特性

function __autoload($class); // 以前是這么干的。

{

require __DIR__.'/'.$class.'.php';

}

// 后來(lái)被廢紙了, 5.3以后用 spl_autoload_register('autoload1');

這樣就不沖突了,防止不同框架之間的沖突。自己隨便定義自動(dòng)載入函數(shù)。

6 基礎(chǔ)框架:

psr-0規(guī)范

1 命名空間必須與絕對(duì)路徑一致

2 類(lèi)名首字母大寫(xiě)

3  除了入口文件外的其它.php文件只有一個(gè)類(lèi),不能有可執(zhí)行代碼

開(kāi)發(fā)符合psr-0規(guī)范的基礎(chǔ)框架

1 全部使用命名空間

2 所有php文件必須自動(dòng)載入,不能有include/require

3 單一入口

文件:

index.php

App 文件夾

imooc 文件夾

類(lèi)名 文件名 命名空間 必須一致

注冊(cè) 自動(dòng)載入 類(lèi);include 包含進(jìn)來(lái)。

7 數(shù)據(jù)結(jié)構(gòu)

spl 數(shù)據(jù)結(jié)構(gòu)  4種常用的數(shù)據(jù)結(jié)構(gòu)

$stack = new splstack(); 棧定義

$stack->push('data1');// 入棧

echo $stack->pop();//出棧

隊(duì)列

$queue = new splQueue();

$queue->enqueue('data1');

$queue->enqueue('data2');

echo $queue->dequeue();

$heap = new splMinHeap();//最小堆

$heap->insert('data1');//插入

echo $heap->extract();//提取

固定尺寸數(shù)組

$array = new splFixedArray(10);

$array[0] = 123;

$array[1] = 234;

var_dump($array);

8 鏈?zhǔn)讲僮?/p>

$db->where()->limit()->order();

class Database{

function where(){}

function order(){}

function limit(){}

}

傳統(tǒng):

$db->where();

$db->limit();

$db->order();

鏈?zhǔn)讲僮鞯暮诵木褪牵好總€(gè)方法后,return $this;

class Database{

function where(){return $this;}

function order(){return $this;}

function limit(){return $this;}

}

9 魔術(shù)方法的使用

1 __get/__set 對(duì)象屬性接管

2 __call/__callStatic  方法/靜態(tài)方法 調(diào)用

3 __toString // 轉(zhuǎn)換字符串

4 __invoke // 當(dāng)成函數(shù)執(zhí)行

對(duì)于對(duì)象不存在的屬性的時(shí)候自動(dòng)執(zhí)行

class Object{

function __set($key,$value){

$this->array[$key] = $value;

}

function __get($key){

return $this->array($key);

}

}

對(duì)于對(duì)象不存在的方法的時(shí)候自動(dòng)執(zhí)行

class Object{

function __call($func,$param){

return 'magic function \n';

}

// 類(lèi)的靜態(tài)方法

static function __callStatic($func,$param){

return 'magic static function \n';

}

// echo $obj; 把類(lèi)當(dāng)作字符串用

function __toString(){

return __CLASS__;

}

//echo $obj($param); 把類(lèi)當(dāng)函數(shù)用

function __invoke($param){

return 'invoke';

}

}

10 基礎(chǔ)設(shè)計(jì)模式

3種基本設(shè)計(jì)模式

工廠(chǎng)模式、單立模式、注冊(cè)模式

工廠(chǎng)方法或類(lèi)生成對(duì)象,而不是在代碼中直接new

單例模式:使某個(gè)類(lèi)的對(duì)象僅允許創(chuàng)建一個(gè)

注冊(cè)模式:全局共享和交換對(duì)象。

工廠(chǎng)模式:工廠(chǎng)方法替換new 操作

class Factory{

static function createDatebase(){

$db = new Database();

return $db;

}

}

$db = IMooc\Factory::createDatabase();

方便統(tǒng)一修改變化;

單列模式: 防止資源浪費(fèi),一次創(chuàng)建

  class Database

{

private $db;

private function __construct() //創(chuàng)建私有

{

}

static function getInstance()

{

if(self::$db){

return self::$db;

}else{

self::$db = new self();

return self::$db;

}

}

}

注冊(cè)模式:

class Register{

protected static $objects;

function set($alias,$object){

self::$objects[$alias] = $object;

}

function get($name){

return self::$objects[$name];

}

function _unset($alias){

unset(self::$objects[$alias]);

}

}

用法:$db = Register::get('db1');

適配器模式:

1 適配器模式,可以將截然不同的函數(shù)接口封裝成統(tǒng)一的API

2 實(shí)際應(yīng)用舉例,php的數(shù)據(jù)庫(kù)操作有mysql,mysqli,pdo3種模式,可以統(tǒng)一成益智的接口

class mysql {}

class mysqli {}

class pdo{}

<?php

namespace IMooc;

interface IDatabase

{

function connet($host,$user,$passwd,$dbname);

function query($sql);

function close();

}

class Datebase{

}

mysql.php

<?php

namespace IMooc;

use IMooc\IDatabase;

class MySQL [implements] IDatabase{  [implements]  貌似需要替換

protected $conn;

function connect($host,$user,$passwd,$dbname){

$conn = mysql_connect($host,$user,$passwd);

mysql_select_db($dbname);

$this->conn = $conn;

}

function query($sql){

$res = mysql_query($sql);

return $res;

}

function close(){

}

}

// 使用

$db = new IMooc\Databes\MySQL();

$db->connect('127.0.0.1','root','passwd','dbname');

$db->query($sql);

1首先約定接口,

2實(shí)現(xiàn)接口的所有方法

策略模式

1 將一組特定的行為和算法封裝成類(lèi),以適應(yīng)某些特定的上下文環(huán)境,這種模式就是策略模式

2 實(shí)際應(yīng)用舉例,假如一個(gè)電商網(wǎng)站系統(tǒng),針對(duì)男性女性顯示不同。

增加策略即可:

實(shí)現(xiàn)和使用

接口文件

UserStrategey.php

<?php

namespace IMooc;

interface UserStrategy{

function showAd();

function showCategory();

}

策略實(shí)現(xiàn)文件

femalUserStrategy.php

<?php

namespace IMooc;

class FemalUserStrategy implemets UserStragey{

function showAd(){

echo '男性廣告';

}

function showCategory(){

echo '男人';

}

}

// 女性同上

// 使用文件 index.php

<?php

class Page{

protected $strategy;

function index(){

if(isset($_GET['female'])){

// 男性邏輯

}

// 傳統(tǒng)如上

// 策略模式如下

echo "AD:";

$this->strategy->showAd();

}

function setStragegy(\IMooc\UserStrategy $strategy){

$this->strategy = $strategy;

}

}

$page = new Page;

if(isset($_GET['female'])){

$strategy = new \IMooc\FemalUserStrategy();

}else{

$strategy = new \IMooc\MaleUserStrategy();

}

$page->setStrategy($strategy);

$page->index();

策略模式的控制反轉(zhuǎn)、依賴(lài)導(dǎo)致

面向?qū)ο蟮慕怦睢:苤匾?/p>

數(shù)據(jù)對(duì)象映射模式

1 數(shù)據(jù)對(duì)象映射模式,是將對(duì)象和數(shù)據(jù)存儲(chǔ)映射起來(lái),對(duì)一個(gè)對(duì)象的操作會(huì)映射為對(duì)數(shù)據(jù)的操作

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

名稱(chēng)欄目:php設(shè)計(jì)模式總結(jié)上-創(chuàng)新互聯(lián)
文章來(lái)源:http://www.chinadenli.net/article12/ceeddc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈企業(yè)網(wǎng)站制作Google品牌網(wǎng)站建設(shè)移動(dòng)網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作