- 博客(17)
- 收藏
- 关注
原创 Laravel框架源码设计模式分析(五)——建造者模式
Laravel的源码中有许多地方都用到了建造者模式,像我们要做数据库查询的时候(就像下面这串代码)直接调用方法传入参数就直接可以代替数据库查询语句。//等价于select * from login where num=$num and pwd=$pwd$sql=DB::table('login')->where('num','=',$num)->where('pwd','=',$pwd).........
2021-07-25 22:18:47 551 3
原创 Laravel框架源码设计模式分析(四)——策略模式
Laravel中许多的模块都包含驱动Driver。通过驱动,让我们在使用 Laravel 的这些模块时,能够很快的切换模块的具体实现方式。而这种驱动选择的实现,就是使用了策略模式。下面以laravel队列模块Queue为例,队列模块支持六种不同驱动处理队列中的任务比如SyncQueue : 同步队列、DatabaseQueue : 数据库队列、BeanstalkdQueue : Beanstalk 队列、SqsQueue : Amazon SQS 队列、SqsQueue .........
2021-07-23 18:52:09 591 1
原创 Laravel框架源码设计模式分析(三)——装饰器模式
在laravel中支持了 "monolog"日志系统,同时添加了自己的一些记录日志的功能,这也使得Larvael的日志记录功能非常完善。在Lavravel中,使用Log门面来记录日志,Log门面背后实际上是Illuminate\Logger\WriterLog,而在WriterLog函数中注入了Monolog\Logger,他们都实现了一个接口LoggerInterface。这里的抽象构件和抽象装饰角色都是LoggerInterface这个接口,而Monolog中的Logger类就是具体装饰角.......
2021-07-22 22:42:13 620 1
原创 Laravel框架源码设计模式分析(二)——门面模式
不知道大家看找源码中的设计模式是否会看看每个包或者类的名字来猜这快代码用了什么设计模式,其实确实是有根据的,名字是个设计模式,十有八九就是用了那个设计模式。像这里的support这个包里面放置了一个Facades包,这不就是门面模式的英文吗,确实这里面放置的类都是一些门面类,这些门面类都继承于同一个父类Facade.php。文件路径:vendor\laravel\framework\src\Illuminate\Support\FacadesFac...
2021-07-21 23:53:37 834 4
原创 Laravel框架源码设计模式分析(一)——单例模式
单例模式在laravel中使用的非常多,有一些对象我们只需要一个,不希望造成浪费,就就会用到单例,在源码中用到singleton()这个放弃,其实就用到单例模式了。比如线程池(threadpool)、缓存(cache)、对话框、处理偏好设置和注册表(register)对象等等。以下是分析Container中使用到的单例模式。Laravel框架中的大部分功能都是在容器中实现的,是一个用于管理类依赖和执行依赖注入的强大工具,而它最常用的功能就有服务提供者。...
2021-07-20 23:33:56 1586 3
原创 Laravel框架源码设计模式分析(0)——安装和简介
由于学校课程设计需要研究Laravel框架中源码的,所以熬了几天的夜一点点的分析了此框架的源码,找到源码中使用到的一些设计模式,还做了一些小demo。当时做这个的时候发现网上的资料实在是太少了,真多东西都是要自己一点点去看懂源码的,所以也可能会有一些错误,希望码友们赐教,多多交流。写这份博客是给自己的课设做了个总结,同时也能帮助到需要完成作业的同学。那么首先先介绍以下Laravel这个框架,Laravel 是一套简洁、优雅的PHP Web开发框架(PHP Web Fram...
2021-07-19 23:50:54 583 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人