国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

從零開始打造自己的PHP框架——第5章

svtter / 1889人閱讀

摘要:小結(jié)至此,整個(gè)框架已經(jīng)基本完成。接下來,我們會(huì)開發(fā)一個(gè)迷你項(xiàng)目,在開發(fā)的過程中,測(cè)試并改進(jìn)我們的框架。源碼分享書簽從零開始打造自己的框架官方文檔中文文檔

目標(biāo)

使用medoo插件來連接和操作數(shù)據(jù)庫。

原文鏈接:http://www.voidking.com/2017/...

medoo基礎(chǔ) 安裝medoo

1、在composer中添加依賴:

"catfan/medoo": "*"

2、更新依賴
composer update

使用medoo

1、config目錄添加medoo_config.php為:

 "mysql",
    "database_name" => "vkphp",
    "server" => "localhost",
    "username" => "root",
    "password" => "",
    "charset" => "utf8",
    "port" => 3306,// 可選參數(shù)
    "prefix" => "vk_",// 可選,定義表的前綴
);

2、core目錄添加medoo.php為:


3、app/ctrl/indexCtrl.php中添加函數(shù):

public function medoo(){
    $medoo = new coremedoo();
    dump($medoo);
}

訪問 http://vkphp.dev/index/medoo ,即可看到medoo的相關(guān)信息。

增刪查改 查找
$ret = $medoo->select("user","*",["username"=>"voidking"]);
dump($ret);
插入
$data = array(
    "username"=>"voidking1",
    "password"=>"voidking1"
);
$ret = $medoo->insert("user",$data);
dump($ret);

因?yàn)閙edoo的版本問題(1.4.5),此時(shí)并沒有打印出這條記錄的id,而是PDOStatement object。此時(shí),要想獲取記錄id,有兩個(gè)方案:

方案一:從medoo中獲取

dump($medoo->id());

方案二:找到vender/catfan/medoo/src/Medoo.php的第1173行,修改為

$this->exec("INSERT INTO " . $this->tableQuote($table) . " (" . implode(", ", $fields) . ") VALUES " . implode(", ", $stack), $map);
return $this->pdo->lastInsertId();
刪除
$ret = $medoo->delete("user",["username"=>"voidking2"]);
dump($ret->rowCount()); // 受影響的行數(shù)
修改
$ret = $medoo->update("user",["username"=>"voidking2"],["username"=>"voidking1"]);
dump($ret->rowCount());
medoo進(jìn)階 回顧

yii框架,對(duì)于每個(gè)表,我們都要?jiǎng)?chuàng)建一個(gè)model類,繼承ActiveRecord類。比如:


在使用的時(shí)候,新建一個(gè)model對(duì)象,調(diào)用其中的方法即可:

$project = new Project();

thinkphp框架,對(duì)于每個(gè)表,我們不用創(chuàng)建model類。在使用的時(shí)候,直接新建一個(gè)默認(rèn)model對(duì)象,傳入表名,調(diào)用其中的方法即可:

$project = M("project");

當(dāng)然,thinkphp也可以自定義model類,繼承Model類。比如:


使用D方法新建自定義model對(duì)象,找不到定義類的情況下會(huì)調(diào)用M方法:

$project = D("project");

yii和thinkphp的兩種實(shí)現(xiàn)方案,異曲同工,同樣都包含了默認(rèn)model類和自定義model類。
yii中,默認(rèn)model類為ActiveRecord,如果要自定義model類,繼承它即可。
thinkphp中,默認(rèn)model類為Model,如果要自定義model類,繼承它即可。

model.php

鑒于yii的實(shí)現(xiàn)方式,我們也來新建一個(gè)model基類,其他的model類都繼承它。

1、core目錄下,新建model.php,內(nèi)容如下:

table_name = strtolower(end($name_arr));
        parent::__construct();
        //dump($this->table_name);
    }

    public function list_all(){
        $ret = $this->select($this->table_name,"*");
        return $ret;
    }

    public function find_by_id($id){
        $ret = $this->select($this->table_name,"*",["id"=>$id]);
        return $ret;
    }

    public function find_by_condition($condition){
        $ret = $this->select($this->table_name,"*",$condition);
        return $ret;
    }

    public function add($data){
        $ret = $this->insert($this->table_name,$data);
        return $this->id();
    }

    public function del($condition){
        $ret = $this->delete($this->table_name,$condition);
        return $ret->rowCount(); // 受影響的行數(shù)
    }

    public function edit($data,$condition){
        $ret = $this->update($this->table_name,$data,$condition);
        return $ret->rowCount();
    }

}

2、在app/model目錄中新建user.php,內(nèi)容如下:


3、在app/ctrl/indexCtrl.php中添加函數(shù):

$user = new appmodeluser();
dump($user->list_all());
dump($user->find_by_id(1));
dump($user->find_by_condition(["username"=>"voidking"]));
dump($user->add(["username"=>"voidking1","password"=>"voidking1"]));
dump($user->edit(["username"=>"voidking2"],["username"=>"voidking1"]));
dump($user->del(["username"=>"voidking2"]));

訪問 http://vkphp.dev/index/model ,可以看到操作結(jié)果:

操作完成后,也許會(huì)感覺數(shù)據(jù)庫表比較亂。這時(shí)可以清空表,并且重新從1開始自增id。
truncate vk_user;

小結(jié)

至此,整個(gè)框架已經(jīng)基本完成。接下來,我們會(huì)開發(fā)一個(gè)迷你項(xiàng)目,在開發(fā)的過程中,測(cè)試并改進(jìn)我們的框架。

源碼分享

https://github.com/voidking/v...

書簽

從零開始打造自己的PHP框架

Medoo官方文檔

Medoo中文文檔

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26191.html

相關(guān)文章

  • 從零開始打造自己PHP框架——6

    摘要:前言第到章,我們完成了一個(gè)屬于自己的框架,麻雀雖小五臟俱全。接下來,我們使用框架開發(fā)一個(gè)迷你項(xiàng)目書簽收藏。內(nèi)包含框架的核心文件。源碼分享書簽從零開始打造自己的框架與之詳解 前言 第0到5章,我們完成了一個(gè)屬于自己的php框架,麻雀雖小五臟俱全。接下來,我們使用vkphp框架開發(fā)一個(gè)迷你項(xiàng)目——書簽收藏。在開發(fā)過程中,也許會(huì)遇到很多問題,這時(shí)候我們就可以對(duì)框架進(jìn)行調(diào)整,使之更加完善。 系...

    shusen 評(píng)論0 收藏0
  • 從零開始打造自己PHP框架——0

    摘要:市場(chǎng)上已經(jīng)有了這么多好的框架,為什么還要開發(fā)自己的框架答假裝大神。為了在裝神的道路上走的更遠(yuǎn),小編決定開發(fā)一個(gè)自己的框架,命名為。源碼分享書簽從零開始打造自己的框架 前言 使用過thinkphp和yii,涉獵過shopnc。市場(chǎng)上已經(jīng)有了這么多好的框架,為什么還要開發(fā)自己的框架?答:假裝大神。為了在裝神的道路上走的更遠(yuǎn),小編決定開發(fā)一個(gè)自己的php框架,命名為vkphp。 原文地址:h...

    妤鋒シ 評(píng)論0 收藏0
  • 從零開始打造自己PHP框架——4

    摘要:本篇,我們就在自己的項(xiàng)目中使用來進(jìn)行依賴管理。輸入,即可安裝依賴到目錄中,并且自動(dòng)生成和。安裝依賴,提示從提示可以看出,讀取的是中的依賴,而不是最新的。訪問,正常工作。源碼分享書簽從零開始打造自己的框架中文網(wǎng)中文文檔 Composer Composer 是 PHP5.3以上 的一個(gè)依賴管理工具。它允許你申明項(xiàng)目所依賴的代碼庫,它會(huì)在你的項(xiàng)目中為你安裝他們。Composer 不是一個(gè)包管...

    madthumb 評(píng)論0 收藏0
  • 從零開始打造自己PHP框架――2

    摘要:命名空間的作用解決重名問題。不同的命名空間中,可以存在相同類名和函數(shù)名。完全限定名稱,或包含了全局前綴操作符的名稱,例如,或。源碼分享書簽從零開始打造自己的框架使用命名空間基礎(chǔ)使用命名空間后備全局函數(shù)常量基礎(chǔ)安裝進(jìn)階安裝 目標(biāo) 本篇,我們來實(shí)現(xiàn)加載控制器、數(shù)據(jù)查詢和頁面渲染。 原文地址:http://www.voidking.com/2017/... 加載控制器 控制器 在app目錄下...

    daydream 評(píng)論0 收藏0
  • 從零開始打造自己PHP框架——3

    摘要:內(nèi)包含框架的核心文件。在目錄中,新建,內(nèi)容如下判斷文件是否存在判斷配置是否存在沒有配置項(xiàng)找不到配置文件找不到配置文件配置類在目錄中,新建配置文件和。使用修改目錄中的和。源碼分享書簽從零開始打造自己的框架 目標(biāo) 本篇,我們的目標(biāo)有三個(gè): 調(diào)整項(xiàng)目結(jié)構(gòu) 加載配置類 添加日志類 原文地址:http://www.voidking.com/2017/... 調(diào)整項(xiàng)目結(jié)構(gòu) vkphp ├─ap...

    fengxiuping 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<