Browsed by
Category: laravel

SOLID in PHP

SOLID in PHP

https://www.script-tutorials.com/design-patterns-in-php/ https://nicole929chan.wordpress.com/category/solid/ https://nicole929chan.wordpress.com/category/tdd-%E7%B7%B4%E7%BF%92/

Laravel5 tips

Laravel5 tips

helpers: logger() 或者 Log门面Illuminate\Log\Logger 你可以使用 Log 门面记录日志信息,如上所述,日志系统提供了定义在 RFC 5424 规范中的八种日志级别:emergency、alert、critical、error、warning、 notice、info 和 debug: Path helpers: Str::slug() Arr:has() Str::uuid() Arr::pluck()

Eloquent ORM cheatsheet

Eloquent ORM cheatsheet

Defining model in Laravel Overide default database table name Overide default database table primary key Time stamps 时间戳 指定数据库连接 获取模型数据 Query Scopes /范围查询

The execution priorities of Laravel’s middlewares

The execution priorities of Laravel’s middlewares

Laravel 多个中间件的执行顺序 问题 一个路由需要用到多个中间件,其中一个是 Laravel 自带的 auth 中间件。 发现这个中间件不管放在哪里,总是在自定义中间件之前执行。 如果业务需要自定义中间在 auth 之前执行,还是有办法的。 解决方案 观察定义中间件的 app\Http\Kernel 类,是继承的 Illuminate\Foundation\Http\Kernel 类。 再打开 Illuminate\Foundation\Http\Kernel ,发现有这样一个数组 注释里写得比较清楚了:列表中的中间件会按照顺序优先在其他中间件之前执行。 那么需要自定义中间件在 auth 之前执行,只需要在 app\Http\Kernel 重载这个数组就行了。 auth 中间件对应的类 \Illuminate\Auth\Middleware\Authenticate,…

Read More Read More

Forward: Beanstalkd usage and example

Forward: Beanstalkd usage and example

origin: https://blog.csdn.net/m_nanle_xiaobudiu/article/details/80466702 一  Beanstalkd 是什么 Beanstalkd,一个高性能、轻量级的分布式内存队列系统 二  Beanstalkd 特性 优先级(priority) 注:优先级就意味 支持任务插队(数字越小,优先级越高,0的优先级最高) 延迟(delay) 注:延迟意味着可以定义任务什么时间才开始被消费,也就实现了定时任务(比如为了增加网站活跃性,增加定时评论,定时点赞功能) 持久化(persistent data) 注:Beanstalkd 支持定时将文件刷到日志文件里,即使beanstalkd宕机,重启之后仍然可以找回文件 预留(buried) 注:Beanstalkd支持把一个任务设置为预留,这样,消费者就无法取出这个任务了,等合适的时机再把这个任务拿出来消费 任务超时重发(time-to-run) 注:消费者必须在指定的时间内处理完这个任务,否则就认为消费者处理失败,任务会被重新放到队列,等待消费 三 管道(tube)与任务(job) 注:生产者生产任务,并根据业务需求将任务放到不同管道中,比如和注册有关的任务放到注册管道中,和订单有关的放到订单管道中 注:任务从进入管道到离开管道一共有5个状态(ready,delayed,reserved,buried,delete) 生产者将任务放到管道中,任务的状态可以是ready(表示任务已经准备好,随时可以被消费者读取),也可以是delayed(任务在被生产者放入管道时,设置了延迟,比如设置了5s延迟,意味着5s之后,这个任务才会变成ready状态,才可以被消费者读取) 消费者消费任务(消费者将处于ready状态的任务读出来后,被读取处理的任务状态变为reserved) 消费者处理完任务后,任务的状态可能是delete(删除,处理成功),可能是buried(预留,意味着先把任务放一边,等待条件成熟还要用),可能是ready,也可能是delayed,需要根据具体业务场景自己进行判断定义 具体示意图:…

Read More Read More

PHP Magic Methods

PHP Magic Methods

魔术方法:两个下划线开头的格式。 PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload ①__get、__set这两个方法是为在类和他们的父类中没有声明的属性而设计的__get( $property ) 当调用一个未定义的属性时访问此方法(获取)__set( $property, $value ) 给一个未定义的属性赋值时调用(设置)这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没有权限访问的属性) ②__isset、__unset__isset( $property ) 当在一个不可访问的属性上调用isset()或empty()函数时被调用。__unset(…

Read More Read More