阅读laravel源代码有感

来源:互联网 发布:cad可以画网络拓扑图吗 编辑:程序博客网 时间:2024/05/16 17:07

        由于公司一直使用的是yaf框架,至少有很多项目是基于yaf框架的。相信所有用过yaf的朋友们也能够清晰的感受到yaf的功能是在是太简洁了,基本上就提供了一个mvc模式、一个自动加载机制、一个路由机制,剩下的基本什么都没有。

       当然啦,作为一个C语言框架,就不要求它什么了,而且毕竟是一个人维护的,人的时间也是有限的,而且鸟哥也一直在维护自己的yaf框架,再次表示衷心的感谢。于是,本着统一的要求,于是就决定仔细看看各大主流框架的具体实现方式,然后从里面抽出一些东西来让自己使用。

       首先想到的框架就是laravel,不仅仅是因为它是一个比较优雅的框架,也不仅仅是因为它有着超高的市场占有率,而且就从其功能和性能上,都有着比较卓越的表现,但是一直没有怎么细心研究过其源码,不得不说是一个损失。

      研究一个框架,很重要的就是研究它的各种机制的实现流程,对于其提供的助手函数,倒在其次,毕竟我们本身写这些类库的效率也并不低。

      好啦,不说废话啦。今天只是大致的看了半小时左右的DB层的实现,而且自己也对其进行了适当修改,比如它的Database下面的Query里面还有两个文件夹,我们就直接把它放到一个文件夹中,而且我们还根据其自动加载方式进行了重命名,比如Connection会被重命名为DBX_Query_Connect,可能熟悉yaf和laravel的朋友们会知道我在library下面建立了一个DBX目录,然后其中有个Query子目录,然后里面放着Connect.php文件。

     不过感受最深的一点就是它的跳转真心厉害,就是一个简单的$conn->table("t_admin")->get();就有不下二十处的跳转,核心就是三个地方,一个是Builder,一个是Processor,一个是Grammar,当然,我们发现还有一个Arr,它是在源代码的Support目录下的Arr.php文件,它被调用了一个方法。一般来说,执行一次查询,五到十次的跳转,这个复杂度我们都是喜闻乐见的,而且通常我们一般也会这么搞。但是十次到二十多次的跳转,未免就会让人思路不清晰了,也就决定了想要比较熟练的驾驭它,还是需要花费很大的功夫的。

      对了,这里说一下我看的代码版本是5.1.4,之后我会出一系列阅读源代码的资料的,一是因为工作上的需要,二是本身比较感兴趣,喜欢的朋友可以持续关注下奥。

0 0
原创粉丝点击