自己动手,写一个简单PHP框架 (6)

数据抽象层

我们知道虽然数据库都支持标准SQL语句,但不同的数据库之间还是会存在很大的差异,这导致我们在操作不同的数据库时不能统一SQL语句,一旦更换了数据库,那意味着所有的SQL都将重写。为了避免这种灾难性的后果,我们就需要对数据进行封装。

封装的意义就在于不管数据库如何变化,我们都只需要使用相同的代码去获取和构建我们需要的数据结构,而不用关心不同数据库之间对于SQL的支持不同而造成的差异。

Continue reading

Tagged ,

好吧,博客正式更名 XiaoF to LaoNi

转眼毕业快7年了,马上就要成家,突然感觉自己老了很多,Xiao似乎不再适合,好吧,那就叫我LaoNi吧

自己动手,写一个简单PHP框架 (番外3)

Smarty究竟缓存了什么?

缓存技术总是Web开发中一个乐此不疲的话题,无论多么强大的服务器,总有它的瓶颈,而缓存技术可以有效缓解瓶颈期的到来。
如同上一篇文章中提到的ADODB Recoredset Cache,它也是一种缓存,我将这种缓存成为数据库级的缓存,它是缓存的第一步,也是最为重要的一步。

我将缓存等级分为4个等级,他们重要性如箭头所示的那样:
数据库级 -> 服务级 -> 脚本级 -> 客户端级

今天要来探讨的是另一个等级的缓存,它工作在脚本下,所以我把这种缓存成为脚本级缓存。

Continue reading

Tagged , , ,

自己动手,写一个简单PHP框架 (番外2)

ADODB Recordset Cache 探秘

ADODB支持一种叫 记录集缓存(Recordset Cache) 的技术,可以将查询结果保存到磁盘,再次查询时可以直接读取磁盘的缓存,免去了查询数据库的时间,提高执行效率。
但在使用时,发现官网的手册也有些许错误,而且网上似乎关于这方面的文章比较少,
对于Recordset Cache也仅仅是提到而已,没有更进一步探讨,所以写了这篇文章,也是为自己的框架打一个基础。
Continue reading

Tagged , , ,

自己动手,写一个简单PHP框架 (番外1)

让URL地址变得整洁

自从Web进入1.5时代,地址栏就变成传递参数的一个重要途径。
我们运用 ?name1=value1&name2=value2……的形式向后一个页面传递参数,
它使用方便,因此几乎所有的页面都会用到地址栏传递参数。

但是链接一旦但有参数,对于搜素引擎就不是那么友好了,而且如果参数过多,就会给人非常凌乱的感觉。
因此将参数静态化(去除 ? 和 & ),使URL看起来像一个静态的HTML文件,变得重要起来。
Continue reading

Tagged ,

自己动手,写一个简单PHP框架 (5)

路径的选择

在一般的网站在访问时输入的URL路径总是服务器上的文件一一对应,
比如:http://mydomain/test/function.php ,它会访问服务器根目录下 /test/function.php 这个文件,

但框架不允许我们这么做,我们必须让所有请求全部到达 index.php ,
然后在进行相应的处理,否则我们之前做的工作就全部浪费了。
Continue reading

Tagged ,

自己动手,写一个简单PHP框架 (4)

加载启动项

接着上一篇,现在我们需要加载整个框架所必需一些类,整个框架的功能将在这些类中实现。
当然今后要是有更多的功能扩展,也需要在这里添加新的类。

在程序的最后,执行了 initialize.php ,到那时候,框架将被初始化
Continue reading

Tagged ,

自己动手,写一个简单PHP框架 (3)

常量的定义

从这篇文章开始,我们正式开始编写这个框架。框架的一大特点就是某些目录、某些字符被使用的非常频繁,我们可以将这些定义为常量,以便在程序中调用,这样不仅在后期修改时可以更加方便,更能增加程序的可读性。

常量我们全部定义在 index.php 中,下面给出了代码。
我们首先获取的 index.php 所在目录,作为框架的根目录,然后定义了各个常用的目录。
在今后的调用中,这些常量将被经常使用到。
Continue reading

Tagged ,

自己动手,写一个简单PHP框架 (2)

框架的流程

整个网站以 index.php 为入口。

index.php 主要负责定义框架需要用到的常量

bootstrap.php 主要负责加载框架需要的类库
这些类,如:
· config.php 负责读取配置文件
· database.php 定义数据连接、封装数据库操作函数
· session.php 定义并封装Session操作
· request.php 定义并封装数据传递操作
等等……
Continue reading

Tagged ,

自己动手,写一个简单PHP框架

经常的,我们去使用一些开发框架,以便能够更好的协作开发、加快开发效率。
但框架也是有弊端的,封装性与性能是一对矛盾体,封装也深程序性能也就越低。
所以面对一些小项目或者自己的小站时,何不自己动手来编写一个简单又实用的框架呢?

在今后的一系列文章里,将围绕这个小小的框架扩展开来,由浅入深讲述在构建过程中所必要的知识、遇到的问题、
解决的方法,也算是和大家一起来分享。
Continue reading

Tagged ,