首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Laravel5.3之Decorator Pattern

    说明: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的源码。

    32251

    Laravel5.3之Container源码解析

    说明:本文主要学习Laravel中Container的源码,主要学习Container的绑定和解析过程,和解析过程中的依赖解决。分享自己的研究心得,希望对别人有所帮助。...实际上Container的绑定主要有三种方式:bind(),singleton(),instance(),且singleton()只是一种'shared' = true的bind(),这些已经在Laravel...学习笔记之IoC Container实例化源码解析聊过,其实现方法并不复杂。...开发环境: Laravel5.3 + PHP7 + OS X 10.11 PHPUnit测试下绑定 在聊解析过程前,先测试下\Illuminate\Container\Container中绑定的源码,这里测试下...关于在PHPStorm中配置PHPUnit可参考这篇:Laravel学习笔记之基于PHPStorm编辑器的Laravel开发 make()源码解析 从以上testcase知道,make()是负责从Container

    1.4K21

    Laravel5.3之bootstrap源码解析

    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()处理...Handler'; $this->{$method}($app, $log); } configureHandlers()这方法也是一个技巧,找到方法名然后调用,这在Laravel...异常处理 异常处理是十分重要的,Laravel中异常处理类\App\Exception\Handler中有一个方法report(),该方法可以用来向第三方服务(如Sentry)发送程序异常堆栈(以后在一起聊聊这个

    7K51

    Laravel5.3之PHP反射(Reflection) (上)

    开发环境: Laravel5.3 + PHP7 Introspection Functions Introspection Functions是用来操作object class的一些函数,PHP提供了大量的...源码中好多个地方使用到class_exists()方法来判断指定类是否存在,如\Illuminate\Database\Connection::isDoctrineAvailable()的源码:...中只有一处使用了class_alias(),用来给config/app.php中$aliases[ ]注册别名,可看下Laravel5.3之bootstrap源码解析,看下Laravel中如何使用的:...中大量地方在用了,如Application::getProvider($provider)方法,是个很好用的方法: public function getProvider($provider)...(测试只能是public),Laravel只有一处用到了该方法\Illuminate\Database\Eloquent\Model::cacheMutatedAttributes() :line 3397

    2.1K41

    Laravel5.3之Session源码解析(中)

    Laravel5.3把session垃圾回收放在了启动过程中,尽管Laravel5.1是放在session关闭过程的,本篇聊下垃圾回收,这也是session第一步启动session的过程。...开发环境:Laravel5.3 + PHP7 Session垃圾回收 首先看下session中间件的源码\Illuminate\Session\Middleware\StartSession::class...总之,Laravel提供了三种方法来读取session数据: Session::get(); Session::pull(); Session::all(); session数据存储 session数据存储方法包括...: // '更新式存储',即如果redis中有'session.store'数据,就使用'Store'来update旧数据 Session::put('session.store', '...Laravel提供了三种方法来暂存数据: Session::flash(); Session::reflash(); Session::keep(); 总结:本文主要学习下Laravel的session

    1K41
    领券