Heim  >  Artikel  >  Backend-Entwicklung  >  阅读laravel源代码有感

阅读laravel源代码有感

WBOY
WBOYOriginal
2016-06-23 13:27:58798Durchsuche

        由于公司一直使用的是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,之后我会出一系列阅读源代码的资料的,一是因为工作上的需要,二是本身比较感兴趣,喜欢的朋友可以持续关注下奥。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn