要安装运行laravel5.3 先看一下你的php版本是不是>=5.6 否则就免看了 先到composer官网手工下载最新版的composer文件 composer.phar 即可 https://.../local/bin/composer 给composer赋予最高权限,以防止后面的命令出现权限限制 chmod -R 777 /usr/local/bin/composer 用composer安装 laravel...创建项目名称为blog composer create-project laravel/laravel blog 5.3.* 速度有些慢 ,静静等待。。。...-S localhost:8888 -t public 这段命令的意思是 指定当前目录的public目录为根目录 开启8888端口 在浏览器打开http://localhost:8888 就可以看到laravel...你也可以用laravel项目目录自带的artisan工具启动laravel项目 php artisan serve 然后打开 http://localhost:8000 ?
说明:Laravel中Middleware的实现主要利用了Decorator Pattern的设计,本文主要先学习下Decorator Pattern如何实现,为后面学习Middleware的设计做个铺垫...开发环境:Laravel5.3 + PHP7 + OS X 10.11 Decorator Pattern Decorator Pattern作为一种结构型模式,可以给现有对象Component装饰decorate...就像Laravel中每一个middleware就是一个feature,如果想要增加一个不缓存request的feature,可以增加一个middleware假设叫做NoCacheMiddleware,写好后只需要在...views.' -> echo 'Close session of this request.' -> echo 'Add queued cookies to the response.' -> 在Laravel...总结:本文主要学习Laravel如何使用Decorator Pattern来设计Middleware。下一篇学习下Laravel中Middleware的源码。
type,通常在使用函数进行回调时,如使用call_user_func(callback, parameters)进行回调时,需要传入回调callback,实际上有几种callback type的,在Laravel...开发环境:Laravel5.3 + PHP7 (Function/Static Class Method) Callback Type Function Callback Type是把函数名作为callable...objectMethod($app) { return $app; } } Closure 把Closure作为参数传进去作为回调参数这种方式在Laravel...中大量使用,比如Laravel的Pipeline源码就大量使用这种方式,Pipeline的源码可看:Laravel5.3Middleware源码解析。
说明:本文主要学习Laravel中Container的源码,主要学习Container的绑定和解析过程,和解析过程中的依赖解决。分享自己的研究心得,希望对别人有所帮助。...实际上Container的绑定主要有三种方式:bind(),singleton(),instance(),且singleton()只是一种'shared' = true的bind(),这些已经在Laravel5.3...开发环境: Laravel5.3 + PHP7 + OS X 10.11 PHPUnit测试下绑定 在聊解析过程前,先测试下\Illuminate\Container\Container中绑定的源码,这里测试下...Container(); } public function testBindClosure() { // Arrange $expected = 'Laravel...之基于PHPStorm编辑器的Laravel开发 make()源码解析 从以上testcase知道,make()是负责从Container中解析出service的,而且在testBindDependencyResolution
说明:本文主要学习Laravel中Container的源码,主要学习Container的绑定和解析过程,和解析过程中的依赖解决。分享自己的研究心得,希望对别人有所帮助。...实际上Container的绑定主要有三种方式:bind(),singleton(),instance(),且singleton()只是一种'shared' = true的bind(),这些已经在Laravel...开发环境: Laravel5.3 + PHP7 + OS X 10.11 PHPUnit测试下绑定 在聊解析过程前,先测试下\Illuminate\Container\Container中绑定的源码,这里测试下...Container(); } public function testBindClosure() { // Arrange $expected = 'Laravel...关于在PHPStorm中配置PHPUnit可参考这篇:Laravel学习笔记之基于PHPStorm编辑器的Laravel开发 make()源码解析 从以上testcase知道,make()是负责从Container
Laravel5.3之Decorator Pattern已经聊过Laravel使用了Decorator Pattern来设计Middleware,看Laravel源码发现其巧妙用了Closure和PHP...开发环境:Laravel5.3 + PHP7 + OS X 10.11 PHP内置函数array_reverse、array_reduce、call_user_func和call_user_func_array...看Laravel源码之前,先看下这几个PHP内置函数的使用。...Laravel5.3之IoC Container实例化源码解析已经聊过Application的实例化,得到index.php中的$app变量,即\Illuminate\Foundation\Application...看过这篇Laravel5.3之Decorator Pattern文章就会发现,在Client类利用Decorator Pattern进行依次装饰的时候,是按照$middlewares[ ]数组中值倒着new
说明:Laravel在把Request通过管道Pipeline送入中间件Middleware和路由Router之前,还做了程序的启动Bootstrap工作,本文主要学习相关源码,看看Laravel启动程序做了哪些具体工作...Laravel在入口index.php时先加载Composer加载器:Laravel5.2之Composer自动加载,然后进行Application的实例化:Laravel5.3之IoC Container...Application对象再从容器中解析出Kernel服务,然后进行Request实例化(Request实例化下次再聊),然后进行Bootstrap操作启动程序,再通过Pipeline送到Middleware:Laravel5.3...开发环境:Laravel5.3 + PHP7 + OS X 10.11 在Laravel5.3之Middleware源码解析聊过,Kernel中的sendRequestThroughRouter()处理.../logs/laravel.log', // storage/log/laravel.log is_null($maxFiles) ?
上一节课 https://my.oschina.net/lilugirl2005/blog/783370 上一节课我们讲了laravel5.3的安装,这节讲laravel5.3的一些基础命令和配置 Listeners...文件夹 进入laravel项目目录输入命令 创建用户注册的事件监听 看看 php artisan make:listener UserSignUpListener --event=UserSignUp
说明:Laravel中经常使用PHP的Function Handling来设计代码,本文主要学习PHP的Function Handling特性,来提高写代码时的设计质量。...call_user_func( ) func_get_arg( ) func_get_args( ) func_num_args( ) function_exists( ) 开发环境:Laravel5.3...在Laravel中大量使用这两个内置函数来设计代码,比如\Illuminate\Foundation\Application::fireAppCallbacks()的源码: /** * Call...Laravel中的IlluminateFoundationApplication::environment()使用了这三个函数来设计代码,很巧妙: /** * Get or check the...','staging', 'development')即判断当前Laravel运行环境是否是'production','staging', 'development'中的一种。
说明:Laravel中经常使用PHP的反射特性来设计代码,本文主要学习PHP的反射特性,来提高写代码时的设计质量。...开发环境: Laravel5.3 + PHP7 Introspection Functions Introspection Functions是用来操作object class的一些函数,PHP提供了大量的...中只有一处使用了class_alias(),用来给config/app.php中$aliases[ ]注册别名,可看下Laravel5.3之bootstrap源码解析,看下Laravel中如何使用的:...'; public $publicNoDefaultVar; public $publicDefaultVar = 'public_laravel';...public $publicNoDefaultVar; public $publicDefaultVar = 'public_laravel'; private
开发环境:Laravel5.3 + PHP7 数据库连接器 连接工厂类ConnectionFactory中通过简单工厂方法实例化了MySqlConnection,看下该connection的构造函数:...$config)->connect($config); }; } 闭包里的代码这里还没有执行,是在后续执行SQL语句时调用Connection::select()执行的,之前的Laravel...版本是没有封装在闭包里而是先执行了连接操作,Laravel5.3是封装在了闭包里等着执行SQL语句再连接操作,应该是为了提高效率。...从这里也可看出where()语句可以这样使用: // where(['id' => 1]) // where([ // ['name', '=', 'laravel...,并且wheres[ ]是一个'table'结构,如果有多个where过滤器,就在wheres[ ]中按照'table'结构存储,如[['id', '=', '1'], ['name', '=', 'laravel
说明:本文主要通过学习Laravel的session源码学习Laravel是如何设计session的,将自己的学习心得分享出来,希望对别人有所帮助。...Laravel在web middleware中定义了session中间件\Illuminate\Session\Middleware\StartSession::class,并通过该中间件来设计session...redis中读取session值; (2)操作session,对session数据CRUD增删改查操作; (3)关闭session,把session_id写入到response header中,默认是laravel_session...开发环境:Laravel5.3 + PHP7 启动Session 首先看下\Illuminate\Session\Middleware\StartSession::class中间件源码中handle()...Illuminate\Session\Store $session */ $session = $this->getSession($request); // 获取session实例,Laravel
说明:Laravel之bootstrap源码解析中聊异常处理时提到过Sentry这个神器,并打算以后聊聊这款神器,本文主要就介绍这款Errors Tracking神器Sentry,Sentry官网有一句话个人觉得帅呆了...开发环境:Laravel5.3 + PHP7 Sentry安装与配置 使用Sentry有两种方式:Sentry Cloud和Sentry Server。...Sentry提供针对几乎每种语言的平台Sentry Platform,这里介绍下如何在Laravel程序中集成Sentry。...Sentry for Laravel中介绍了如何集成进Laravel,主要就是安装下Sentry Laravel包: // 生产环境也需要这个包,不需要加 --dev composer require...通过Exception Stack也能发现Laravel的执行流程。
实际上,在Laravel5.3中关闭session主要包括两个过程:保存当前URL到session介质中;在Response Header中存入cookie。...其中,Laravel5.3把垃圾回收提前到了中间件的前置操作,中篇有聊到。OK,学习下关闭session的源码吧先。...开发环境:Laravel5.3 + PHP7 关闭Session 首先看下\Illuminate\Session\Middleware\StartSession::class中间件源码的handle()...总之,Laravel关闭session的第二件事就是给Response Header添加'laravel_session' cookie。...总结:本小系列主要学习了Laravel Session的源码,学习了Session的三大步。后续有好的技术再分享吧,到时见。
$config)->connect($config); }; } 闭包里的代码这里还没有执行,是在后续执行SQL语句时调用Connection::select()执行的,之前的Laravel...版本是没有封装在闭包里而是先执行了连接操作,Laravel5.3是封装在了闭包里等着执行SQL语句再连接操作,应该是为了提高效率。...并且,在$bindings[]属性中把where过滤器与值相互绑定存储,如果有多个where过滤器,就类似这样绑定,['where' => [1, 'laravel', ...], ...]。...版本是没有封装在闭包里而是先执行了连接操作,Laravel5.3是封装在了闭包里等着执行SQL语句再连接操作,应该是为了提高效率。...并且,在$bindings[]属性中把where过滤器与值相互绑定存储,如果有多个where过滤器,就类似这样绑定,['where' => [1, 'laravel', ...], ...]。
:在上篇中学习了session的启动过程,主要分为两步,一是session的实例化,即\Illuminate\Session\Store的实例化;二是从session存储介质redis中读取id = laravel_session...Laravel5.3把session垃圾回收放在了启动过程中,尽管Laravel5.1是放在session关闭过程的,本篇聊下垃圾回收,这也是session第一步启动session的过程。...开发环境:Laravel5.3 + PHP7 Session垃圾回收 首先看下session中间件的源码\Illuminate\Session\Middleware\StartSession::class...Laravel提供了\Illuminate\Support\Arr辅助类来操作数组,支持.语法来操作数组,同时还提供了\Illuminate\Support\Str辅助类来操作字符串。...Laravel提供了三种方法来暂存数据: Session::flash(); Session::reflash(); Session::keep(); 总结:本文主要学习下Laravel的session
说明:本文主要学习Laravel Database模块的Query Builder源码。...实际上,Laravel通过Schema Builder来设计数据库,通过Query Builder来CURD数据库。...开发环境: Laravel5.3 + PHP7 Folder/File Description Capsule Capsule文件夹下只有一个Manager类,主要实现了容器实例化,DatabaseManager..., $name, 2) : [$name, null]; } public function getDefaultConnection() { // laravel
开发环境:Laravel5.3 + PHP7 Builder::toSql() 看下toSql()的源码: public function toSql() { // $this
', [ 'Set-Cookie' => 'Laravel=0; path=/; Expires=Thu, 01-Jan-1970 00:00:00 GMT; Secure',
领取专属 10元无门槛券
手把手带您无忧上云