laravel 手札
分享larvel在项目运用中的必得体会
pardon110
这个作者很懒,什么都没留下…
展开
-
笔记之连续数增维
程序不仅仅是存储数据,通常具备描述数据关系(数据结构),操作数据行为(算法)。本文演示一维数组通过reduce 方法转二维,达到符合需求改变数据关系的小程序。问题实现一个方法,将一维数组内的连续序列,变成该数组内的二维数组元素// 输入 [1,1,1,2,3,4,5,8,10,22,24,25,26,66]// 输出[1,1,[1,2,3,4,5],8,10,22,[24,25,...原创 2019-12-07 22:10:40 · 183 阅读 · 0 评论 -
Closure之bindTo 简述 laravel源码分析 基础
导语类似于go语言的方法的接收者,js中的apply,bind,call改变函数对象的调用者,以及其它语言的上下文context。php也可以给函数指定this,即通俗意义上的改变其宿主。而bindTo就是这一作用,(注:php中函数都是closure实例,将函数绑定到实例对象上的用bindTo方法)例1:使用bindTo 给目标类添加执行初始条件(注册)class A{ ...原创 2018-04-13 10:23:08 · 390 阅读 · 0 评论 -
laravel源码分析之 Macroable mixin
前置知识:Mixin(织入)模式并不是GOF的《设计模式》归纳中的一种,但是在各种语言以及框架都会发现该模式(或者思想)的一些应用。简单来说,Mixin是带有全部实现或者部分实现的接口,其主要作用是更好的代码复用。对比java interface和python protocol,这二者本身是没有任何实现的,都是需要使用者来实现相应的方法。laravel场景:Mixin本身也是一种能力的承诺,但Mi...原创 2018-04-14 09:59:16 · 560 阅读 · 0 评论 -
Eloquent 多态关联详解 morphTo morphMany morphMap morphs
应用场景 开始,建一张文章表,一张评论表 。基本一对多关系,表结构如下posts id - integer title - string body - textcomments id - integer body - text post_id - integer但是,如果以后又多了页面, 图片,视频....., 哪怕是评论也可以有评论,但是总不...原创 2018-06-02 14:20:15 · 4298 阅读 · 0 评论 -
PSR4 目录映射
PSR4 VS PSR01.在类名中使用下划线没有任何特殊含义。2. 命名空间与文件目录的映射方法有所调整。假如我们有一个命名空间:Foo/classFoo 是顶级命名空间,其存在着用户定义的与目录的映射关系:"Foo/" => "src/"按照PSR0标准,映射后的文件目录是: src/Foo/class.php但是按照PSR4标准,映射后的文件目录就会是: src/class.p...原创 2018-06-03 16:33:21 · 791 阅读 · 0 评论 -
Laravel 权限控制 Gate Policy
关于权限本质 针对一段可执行的逻辑单元描述是否开启生产的断言(判断真假)。定义 必定有一用户实例或唯一标识参数,以及与之关联的使用资源。通常使用闭包或函数或方法使用 调用权限逻辑单元句柄,参数 权限操作对象,用户信息。源起最基本的权限控制,三元运算符 ?:。很显然条件判断,后面跳到相应的执行逻辑。laravel的思路是将执行逻辑(生产代码),授权(条件判断逻辑)进行分离。重...原创 2018-06-04 09:17:18 · 2054 阅读 · 0 评论 -
laravel源码分析之公设
在分析源码之前,有一些公设作为前情提要。 公设(一般指公理)是指依据人类理性的不证自明的基本事实,经过人类长期反复实践的考验,不需要再加证明的基本命题。类的自动加载 为了代码的复用需要用到函数,类,包,框架…。很显然对于php任何框架,类的自动加载是避免不了的。最开始使用require/include语句,还好php5之后出现了类的自动加载。 autoload机制可以使得P...原创 2018-06-06 15:49:55 · 177 阅读 · 0 评论 -
laravel源码分析之主线
任何框架都有自己的主线,laravel亦如是。源起 应用请求入口 public/index.php 文件,其主要作用如下 载入 Composer 生成的自动加载设置 从 bootstrap/app.php 脚本获取 Laravel 应用实例中央处理器 根据请求类型,请求被发送到 HTTP/Console 内核(分别用于处理 Web 请求和 Artisan 命令)...原创 2018-06-06 16:30:06 · 313 阅读 · 0 评论 -
laravel 源码分析之模型事件
前情提要Laravel的ORM模型在一些特定的情况下,会触发一系列的事件。比如:creating, created, updating, updated, saving, saved, deleting, deleted, restoring, restored。 实际有三种方式可以定义一个模型事件,这里以saved事件来做例子,其他事件都一样。事件定义events属性...原创 2018-06-15 08:36:08 · 367 阅读 · 0 评论 -
Laravel 常用技能清单
路由路由组语法 group(array $attributes, Closure|string $routes)要点: 共享属性应该以数组的形式传入 Route::group 方法的第一个参数中。数组键名middleware 中间件namespace 命名空间domain 子域名路由prefix 路由前缀name 路由名称前缀示例 ...原创 2018-11-15 11:46:37 · 207 阅读 · 0 评论 -
laravel之Eloquent关联
定义模型 用对象表示的表实例,负责与数据库的交互逻辑构建关联模型 要连接到的最终模型关联方法 返回一个关联关系的方法 关联属性 $with属性 由关联方法名组成的数组,通常用于渴求式加载 连接表 又称中间表,通常用于多对多关系主键 模型的唯一标识符外键 模型对外的通路 正向 模型主键匹配关联模型外键 反向 模型外键匹配关键模型主键 父级模型 拥有下属分支的...原创 2018-06-25 13:54:26 · 572 阅读 · 0 评论