摘要:小結至此,整個框架已經基本完成。接下來,我們會開發一個迷你項目,在開發的過程中,測試并改進我們的框架。源碼分享書簽從零開始打造自己的框架官方文檔中文文檔
目標
使用medoo插件來連接和操作數據庫。
原文鏈接:http://www.voidking.com/2017/...
medoo基礎 安裝medoo1、在composer中添加依賴:
"catfan/medoo": "*"
2、更新依賴
composer update
1、config目錄添加medoo_config.php為:
"mysql", "database_name" => "vkphp", "server" => "localhost", "username" => "root", "password" => "", "charset" => "utf8", "port" => 3306,// 可選參數 "prefix" => "vk_",// 可選,定義表的前綴 );
2、core目錄添加medoo.php為:
3、app/ctrl/indexCtrl.php中添加函數:
public function medoo(){ $medoo = new coremedoo(); dump($medoo); }訪問 http://vkphp.dev/index/medoo ,即可看到medoo的相關信息。
增刪查改 查找$ret = $medoo->select("user","*",["username"=>"voidking"]); dump($ret);插入$data = array( "username"=>"voidking1", "password"=>"voidking1" ); $ret = $medoo->insert("user",$data); dump($ret);因為medoo的版本問題(1.4.5),此時并沒有打印出這條記錄的id,而是PDOStatement object。此時,要想獲取記錄id,有兩個方案:
方案一:從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()); // 受影響的行數修改$ret = $medoo->update("user",["username"=>"voidking2"],["username"=>"voidking1"]); dump($ret->rowCount());medoo進階 回顧yii框架,對于每個表,我們都要創建一個model類,繼承ActiveRecord類。比如:
在使用的時候,新建一個model對象,調用其中的方法即可:
$project = new Project();thinkphp框架,對于每個表,我們不用創建model類。在使用的時候,直接新建一個默認model對象,傳入表名,調用其中的方法即可:
$project = M("project");當然,thinkphp也可以自定義model類,繼承Model類。比如:
使用D方法新建自定義model對象,找不到定義類的情況下會調用M方法:
$project = D("project");yii和thinkphp的兩種實現方案,異曲同工,同樣都包含了默認model類和自定義model類。
model.php
yii中,默認model類為ActiveRecord,如果要自定義model類,繼承它即可。
thinkphp中,默認model類為Model,如果要自定義model類,繼承它即可。鑒于yii的實現方式,我們也來新建一個model基類,其他的model類都繼承它。
1、core目錄下,新建model.php,內容如下:
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(); // 受影響的行數 } public function edit($data,$condition){ $ret = $this->update($this->table_name,$data,$condition); return $ret->rowCount(); } }2、在app/model目錄中新建user.php,內容如下:
3、在app/ctrl/indexCtrl.php中添加函數:
$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 ,可以看到操作結果:
操作完成后,也許會感覺數據庫表比較亂。這時可以清空表,并且重新從1開始自增id。
小結
truncate vk_user;至此,整個框架已經基本完成。接下來,我們會開發一個迷你項目,在開發的過程中,測試并改進我們的框架。
源碼分享https://github.com/voidking/v...
書簽從零開始打造自己的PHP框架
Medoo官方文檔
Medoo中文文檔
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26191.html
摘要:前言第到章,我們完成了一個屬于自己的框架,麻雀雖小五臟俱全。接下來,我們使用框架開發一個迷你項目書簽收藏。內包含框架的核心文件。源碼分享書簽從零開始打造自己的框架與之詳解 前言 第0到5章,我們完成了一個屬于自己的php框架,麻雀雖小五臟俱全。接下來,我們使用vkphp框架開發一個迷你項目——書簽收藏。在開發過程中,也許會遇到很多問題,這時候我們就可以對框架進行調整,使之更加完善。 系...
摘要:市場上已經有了這么多好的框架,為什么還要開發自己的框架答假裝大神。為了在裝神的道路上走的更遠,小編決定開發一個自己的框架,命名為。源碼分享書簽從零開始打造自己的框架 前言 使用過thinkphp和yii,涉獵過shopnc。市場上已經有了這么多好的框架,為什么還要開發自己的框架?答:假裝大神。為了在裝神的道路上走的更遠,小編決定開發一個自己的php框架,命名為vkphp。 原文地址:h...
摘要:本篇,我們就在自己的項目中使用來進行依賴管理。輸入,即可安裝依賴到目錄中,并且自動生成和。安裝依賴,提示從提示可以看出,讀取的是中的依賴,而不是最新的。訪問,正常工作。源碼分享書簽從零開始打造自己的框架中文網中文文檔 Composer Composer 是 PHP5.3以上 的一個依賴管理工具。它允許你申明項目所依賴的代碼庫,它會在你的項目中為你安裝他們。Composer 不是一個包管...
摘要:命名空間的作用解決重名問題。不同的命名空間中,可以存在相同類名和函數名。完全限定名稱,或包含了全局前綴操作符的名稱,例如,或。源碼分享書簽從零開始打造自己的框架使用命名空間基礎使用命名空間后備全局函數常量基礎安裝進階安裝 目標 本篇,我們來實現加載控制器、數據查詢和頁面渲染。 原文地址:http://www.voidking.com/2017/... 加載控制器 控制器 在app目錄下...
摘要:內包含框架的核心文件。在目錄中,新建,內容如下判斷文件是否存在判斷配置是否存在沒有配置項找不到配置文件找不到配置文件配置類在目錄中,新建配置文件和。使用修改目錄中的和。源碼分享書簽從零開始打造自己的框架 目標 本篇,我們的目標有三個: 調整項目結構 加載配置類 添加日志類 原文地址:http://www.voidking.com/2017/... 調整項目結構 vkphp ├─ap...
閱讀 3709·2021-11-11 10:58
閱讀 2492·2021-09-22 15:43
閱讀 2879·2019-08-30 15:44
閱讀 2201·2019-08-30 13:08
閱讀 1831·2019-08-29 17:28
閱讀 896·2019-08-29 10:54
閱讀 686·2019-08-26 11:46
閱讀 3517·2019-08-26 11:43