上篇文章标题乱起,被吐槽了,这次学乖了。 上篇文章中介绍了如何解析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语句,让开发人员直接面向持久化后 ...