不需要递归
1 | $items = array( |
插入排序算法
1 | class Person |
分表
1 | namespace App\Models; |
sentry 升级
1 | server { |
基于雪花算法的 PHP ID 生成器
1 | https://github.com/godruoyi/php-snowflake |
内置web服务器
1 |
|
响应宏
1 | 在任意一个ServiceProvider的boot方法里(ResponseMacroServiceProvider),使用Response Facade注册 |
Intervention Image 合成图片
1 | use Intervention\Image\ImageManager; |
nginx 配置多域名
1 | 这个是精确匹配问题: |
插入折半排序
1 | class Person |
sql拼接
1 | $statusInStr = implode(',', '1,2,3'); |
x-www-form-urlencoded 与 multipart/form-data
1 | x-www-form-urlencoded,表单默认的 Content-type 类型,支持 ASCII-text 文本内容 |
Model::setAttribute()
1 | App\GameWork::create([ |
处理unicode解码
1 | // change unicode to unt-8 |
恶意提交攻击
1 | // check 环境ip |
切换镜像
1 | composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ |
composer Failed to execute unzip
1 | composer 多线程下载的扩展包(hirak/prestissimo),因为是全局安装的,其原理就是下到缓存,然后以后全部都走缓存安装。所以我第一件事 先全局卸载掉它 |
sentry
1 | $ git clone https://github.com/getsentry/onpremise.git |
抽离 vendor
1 | 在 bootstrap 注册 autoload 就可以了。 |
dd 函数
1 | function dd(...$args) |
listen sql
1 | \DB::listen(function (QueryExecuted $sql) { |
模型事件 updated
1 | 只有 $sku->{attribute} != $sku->getOriginal({attribute}) 不一致的时候才会触发 |
获取所有 collection
1 | foreach (\DB::connection('xxx')->getMongoDB()->listCollections() as $collection) { |
获取带参数的 sql 语句
1 | DB::table('users')->where('id', 1)->toSql(); |
命令行输出进度条
1 | namespace App\Commands; |
with 通过闭包筛选
1 | class User extends Model |
Laravel cookie加密解密
1 | $data = 'laravel'; |
Eloquent Builder 添加自定义方法
1 | \Illuminate\Database\Query\Builder\Builder::macro('active', function () { |
修改模型对象的某个属性
1 | $user = new User; |
laravel技巧
1 | 使用一次查询代替多次查询AdminUser::with('admin_user_info')->where('id', '>', 1)->get(); |
外部调用类的私有方法
1 | class A |
30 分钟未付款自动取消订单
1 | 先保证 redis 的版本大于 2.8 ,现在绝大部分不成问题了,然后修改 redis 的配置文件,加入:notify-keyspace-events "Ex" |
guzzle异步请求
1 | $request = new \GuzzleHttp\Psr7\Request('GET', 'http://www.example.com'); |
删除数组元素
1 |
|
如何查Session内容
1 | 首先配置Session存储,使用Memcached |
redis队列缓存
1 | // 加上时间戳存入队列 |
laravel服务容器
1 | class UserStatsCsvExporter implements UserStatsExporterContract |
反射动态代理
1 | class mysql{ |
安装
1 | https://pecl.php.net/package/imagick |
phpstorm gitbash
1 | 打开 PHPStorm 的设置,定位到 Tools -> Terminal |
composer 找不到文件
1 | findClasses 函数中,有这么一个去除代码中 heredoc 或 nowdoc 的操作: |
分组查询
1 | select `u`.`id`,`u`.`name`,`u`.`num` from `users` as `u` left join (select `user_id`,count(*) as `num` from books group by `user_id`) as `b` on `u`.id = `b`.user_id 查询每个人的书数量 |
取k个不重复的数
1 | function getRandomN($max, $num) { |
Intervention Image 库处理图片
1 | composer require intervention/image |
Redis PubSub实现简单消息推送
1 | <!DOCTYPE html> |
FFmpeg 截取视频
1 | //获取文件路径 |
求两个集合的交集
1 | $m = [1, 2, 3, 4]; |
无限级分类
1 | & 引用赋值 |
MVC 的 “拓展 “模式
1 | 我们把 model 当成 Eloquent class,用一个处理数据库逻辑的 Repository 来辅助它,同样对于 controller 来言,它也有一个辅助它的功臣,那就是能处理商业逻辑 Service,这样就解决了臃肿的问题,view 呢?我们是不是忽略了它,并不是的,它也有属于它的处理显示逻辑的 Presenter。 |
window composer reuqire
1 | composer require "overtrue/laravel-wechat:~4.0" |
位非运算
1 | echo ~48&~75; |
php html to pdf image
1 | git clone https://github.com/krakjoe/wkhtmltox |
控制反转,依赖注入
1 | // 定义写日志的接口规范 |
英文字符占 0.5 个,中文字符占 1 个
1 | // 计算单字节. |
支付宝 App 第三方登录获取 用户信息
1 | /** |
树状数据结构存储方式
1 | CREATE TABLE `categories` ( |
PHP 中基于 Casbin 做 RBAC + RESTful 权限控制
【系统】打造自己最喜爱的 Windows10 —— U 盘启动盘制作篇
LeetCode-Algorithms 算法题 PHP 实现