上篇文章標題亂起,被吐槽了,這次學乖了。 上篇文章中介紹了如何解析Expression生成對應的SQL語句,以及IQueryable的一些概念,以及我們所搭建的框架的思想等。但還沒把它們結合並應用起來。這一篇文章將更黃更暴力,揭露IQueryable在實際使用中延遲加載的實現原理,結合 ...
在上一篇博客中,我們抽象出了Controller的基類,實現了頁面的渲染和返回JSON字符串的功能。 那作為一個框架,我們現在還缺少什么 是的,大家應該已經注意到了,我們在這之前從來沒有連接過數據庫,我們缺少一個ORM Object Relational Mapping 。 在php中連接mysql有三種方式,分別是使用原生函數 mysqli擴展和PDO擴展,詳細內容可以查看我之前的博客 PHP的 ...
2016-02-21 00:38 0 1724 推薦指數:
上篇文章標題亂起,被吐槽了,這次學乖了。 上篇文章中介紹了如何解析Expression生成對應的SQL語句,以及IQueryable的一些概念,以及我們所搭建的框架的思想等。但還沒把它們結合並應用起來。這一篇文章將更黃更暴力,揭露IQueryable在實際使用中延遲加載的實現原理,結合 ...
完整項目地址:https://github.com/Evai/Aier 上一篇中我們已經建立了一個空的 Composer 項目,本篇將講述如何構建路由。 下面我們就開始自己來構建路由,先去 GitHub 搜一下:點此查看搜索結果 推薦 https://github.com ...
作為一個框架,我們還沒有相應的緩存組件,下面我們就來構建我們的緩存組件。 先來定義一下接口,在 src 文件夾下創建 cache 文件夾,在cache文件夾下創建 CacheInterface.php 文件,其中定義 Cache 相應的接口,其內容如下: 定義了 buildKey/get ...
首先,我們來說一下,為什么要創建自己的框架? 為什么要創建自己的框架呢?如果你跟周圍的人討論,每個人都會告訴你重復發明輪子是一件糟糕的事情,你最好選擇一個已有的框架,忘掉“創建自己的框架”這種想法。大部分情況,他們是正確的,但是我想到了幾個創建自己的框架的好處: 了解更多框架的底層架構 ...
來與大家構建一個屬於自己的ORM框架。 思路的話很簡單,就是將lambda轉換成我們對應的數據庫所需的 ...
上一篇博客中,我們搭建了一個最簡單的框架,從單一入口的public/index.php進入,解析出相應的Controller和Action,去執行,渲染出相應的頁面或者輸出相應的數據。 但是我們可以看到在public/index.php文件中,是一堆代碼,如果之后,我要添加權限/事件等等的機制 ...
任何系統的基礎,都可以算是各種數據的增刪改查(CRUD)。最早操作數據是直接在代碼里寫SQL語句,后來出現了各種ORM框架。C#下的ORM框架有很多,如微軟自己的Entity Framework、第三方的NHibernate。這些ORM框架甚至可以直接隱去具體SQL語句,讓開發人員直接面向持久化后 ...