/laravel-use

laravel使用总结

Primary LanguagePHP

中间件

  • 面向切面编程(AOP), 统一拦截请求、权限控制
  • demo:记录程序的执行时间中间件
  • 注册中间件,分为:全局中间件、路由中间件、控制器构造函数

数据库操作

原生查询、查询构造器、ORM

  • value返回一行中的某个字段
  • pluck返回某一列,数据是集合
  • get多行是集合,first、find是对象
  • where查询构造语句,打印出一条sql, 在后面加->dump()
  • updateOrInsert 不存在就写入,存在更新
  • 使用ORM,longtext为json, 指定cast指定存、取的时候是array。
  • 使用ORM新增数据,create()返回模型对象、受模型约束,insert()返回布尔值没有通过模型。
  • 使用ORM新增数据,先创建模型对象,在fill, 在save()。

集合的使用

  • 获取所有的键或值:keys() values()
  • 获取指定键对应的值,第二个参数指定生成集合的键:pluck()
  • 获取特定的键值:only() except()
  • 回调函数过滤,不传回调函数所有返回false元素被删除:filter()
  • 第一个first(), 最后一个last(), 前面两个take(2)
  • 集合元素拼接:implode()
  • 判断是否有值contains(), 判断是否有键has()
  • 判断集合是否为空:isEmpty()
  • 集合循环:each() map()
  • 指定键作为集合的键:keyBy()
  • 根据指定键对集合项进行分组:groupBy()
  • 集合的键和对应值进行互换:flip()
  • 将一个集合的值作为键,与另一个集合后数组的值进行结合:combine()
  • 笛卡尔集:crossJoin()

控制反转、依赖注入、容器

  1. 高耦合

    类A的功能借助类B, 类B是类A的依赖,如果类A的内部去实例化类B, 会出现较高的耦合, 一旦类B出现问题,类A也需要改造。每个类之间有很多依赖,要解决这个问题就是控制反转。

  2. 控制反转 IOC (Inversion Of Control)

    控制反转是一种**,解决类依赖类高耦合的。具体是:类A对类B的控制权抽离出来,交给一个第三方去做,把 控制权反转给第三方就叫控制反转。

  3. 依赖注入 DI (Dependency Injection)

    依赖注入是控制反转的实现方法。具体是:IOC容器来控制依赖,通过构造函数、属性、或者工厂模式等方法, 注入到类A内,对类A和类B进行解耦。

  4. IOC容器自动注入

    依赖注入,实现自动注入,需要IOC容器。使用PHP反射进行注入。依赖注入是依构造函数的形式传入,所以我们需要自动注入 构造函数指定的参数。 我们只注入类实例,其他参数原样传入。

  5. demo例子php artisan demo:di