本文2253.5字,需要5.63分钟
感觉好长时间没写东西了,一方面主要是自己的角色发生了变化,每天要面对各种各样的事情和突发事件,不能再有一个完整的长时间让自己静下来写代码,或者写文章。
另一方面现在公司技术栈不再停留在只有 Laravel + VUE 了,我们还有小程序、APP 等开发,所以我关注的东西也就多了。
接下来我还是会继续持续「高产」,把写技术文章当作一个习惯,坚持下去。
好了,废话不多说,今天来说一说「」。
一直想好好研究下 Eloquent。但苦于 Eloquent 有太多可研究的,无法找到一个切入点。前两天看一同事好像对这个「」了解不多,所以今天就拿它作为入口,扒一扒其实现源代码。
首先还是拿一个 Demo 为例:
Demo
这个代码比较简单,就是通过已有属性,计算 Baby 几岁了,得到属性。
前端就可以直接拿到结果:
同样的,还有方法来定义一个修改器。
源代码
读代码还是从使用入手,如上通过调用属性,这个属性没在类中定义,所以只能通过 PHP 的魔术方法调用了。
我们看看类的方法:
好了,我们开始解读源代码了:
重点自然就在第二个上,主要判断数组中是否包含该属性,如果没有,则会执行函数:
这就对上了我们的中自定义的函数,也就返回了。
接下来就是执行函数,进而执行函数:
好了,到此我们基本就知道了获取自定义的流程了。
相信解析也是很简单的。
总结
好长时间没写东西了,先从最简单的入手,练练手。解析需要费很多脑细胞,接下来的一段时间我会围绕着这个主题好好研究下去,尽可能的全部解读一遍::
参考
Eloquent: 修改器 https://laravel-china.org/docs/laravel/5.7/eloquent-mutators/2297
__get()使用说明 http://php.net/manual/zh/language.oop5.overloading.php#object.get
未完待续coding01 期待您继续关注
领取专属 10元无门槛券
私享最新 技术干货