笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意义 'use strict' 严格模式:代码规范及其不推荐严格模式理由rootjQuery根节点:document 获取及其声明意义readyList DOM加载相关……typeof undefined 字符串形式'undefined'的存放及其意义. 先看开头的注释: /*! * jQuery J…
TOMCAT源码调试入口是Bootstrap类的main方法,我的启动参数VM: -Dcatalina.home=E:/Tomcat_Source_Code/apache-tomcat-8.0.53-src/catalina-home -Dcatalina.base=E:/Tomcat_Source_Code/apache-tomcat-8.0.53-src/catalina-home -Djava.endorsed.dirs=E:/Tomcat_Source_Code/apache-tomca…
laravel中的数据库也是以服务提供者进行初始化的名为DatabaseServiceProvider,在config文件的providers数组中有写.路径为vendor\laravel\framework\src\Illuminate\Database\DatabaseServiceProvider.php 跟以往的serviceProvider一样在register方法中注册,在boot方法中引导加载. 来看一下register方法.为了保险起见它先通过Model将之前的加载数据给清除掉了…
Pipeline管道模式,也有人叫它装饰模式.应该说管道是装饰模式的一个变种,虽然思想都是一样的,但这个是闭包的版本,实现方式与传统装饰模式也不太一样.在laravel的源码中算是一个比较核心的设计模式了.管道模式,或者说装饰模式的思想,就是在不改变原有程序的基础上,可以方便的在已有程序上添加新的功能. 在说管道模式之前让我们看一下array_reduce这个函数 mixed array_reduce ( array $array , callable $callback [, mixed $i…
laravel里所谓的provider服务提供者,其实是对某一类功能进行整合,与做一些使用前的初始化引导工作.laravel里的服务提供者也分为,系统核心服务提供者.与一般系统服务提供者.例如上一篇博文里介绍的,最早在application中进行注册的event.log.routing这些就是系统的核心服务,laravel的初始化需要他们.那么现在就先来看一下provider的运行流程. protected function registerBaseServiceProviders() { $t…
今天这篇博文来探索一下laravel的路由.在第一篇讲laravel入口文件的博文里,我们就提到过laravel的路由是在application对象的初始化阶段,通过provider来加载的.这个路由服务提供者注册于vendor\laravel\framework\src\Illuminate\Foundation\Application.php的registerBaseServiceProviders方法 protected function registerBaseServiceProvid…
laravel的项目入口文件index.php如下 define('LARAVEL_START', microtime(true)); require __DIR__.'/../vendor/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php'; $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); $response = $kernel->h…
上一篇写到Eloquent ORM的基类Builder类,这次就来看一下这些方便的ORM方法是如何转换成sql语句运行的. 首先还是进入\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php这个类中,先来看一下最常用的where()方法. 如下所示,where方法的代码很长,但前面多个if都是用来兼容各种不同调用式的.我们先抛开这些花哨的调用方式,来看一下最简单的调用方法是怎么运行的. /** * Add a bas…
上次说了provider,那么这次来说说facade 首先是启动的源头,从laravel的kernel类中的$bootstrappers 数组,我们可以看到它的一些系统引导方法,其中的RegisterFacades便是用来注册facade门面类的了. protected $bootstrappers = [ \Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables::class, \Illuminate\Foundation\Bootst…
jQuery选择这样返回对象 var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context );//从jQuery.fn里调用的方法 }; jQuery.fn = jQuery.prototype = { //这里jQuery.prototype,目前在这段代码中没用 . init: function(){ console.log("初始化完成"); return th…