Laravel 的消息队列剖析 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

laravel的消息队列剖析==============这篇来自于看到朋友转的58沈剑的一篇文章:在实际工作中也不止遇见过一次这个问题,我在想着以前是怎么处理的呢?我记得当初在上家公司的时候直接使用的是laravel的queue来实现的。当然,这里说的laravel的queue实际上也是基于redis的队列实现的。正好今天遇上这个问题,追下底层机制。使用如下:```php...
阅读全文

PHP 笔试面试题精选(一) | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

(原文地址:)本期题目重点涉及基础知识,安全,跨域,及两个简单的设计模式,预告下期重点是:计算机网络,WebSocket,http协议,tcp协议相关一、PHP部分1.函数内部 static 和 global 关键字的作用static 是静态变量,在局部函数中存在且只初始化一次,使用过后再次使用会使用上次执行的结果; 作为计数,程序内部缓存,单例模式中都有用到。glob...
阅读全文

Laravel 跨域解决方案 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

我们在用 `laravel` 进行开发的时候,特别是前后端完全分离的时候,由于前端项目运行在自己机器的指定端口(也可能是其他人的机器) , 例如 `localhost:8000` , 而 `laravel` 程序又运行在另一个端口,这样就跨域了,而由于浏览器的同源策略,跨域请求是非法的。其实这个问题很好解决,只需要添加一个中间件就可以了。1. 新建一个中间件 ```p...
阅读全文

像使用 Laravel Query 一样的搜索 Elasticsearch | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

需要使用到ES大数据引擎,但无奈,不管是官方包还是Github上都没有找到自己想要的,那还说什么呢,自己操刀来一份吧。Github地址:Composer和安装和Laravel下的加载Version MatrixElasticsearch Versioncrcms/elasticsearch Branch= 6.01.= 5.0, < 6.00.Insta...
阅读全文

Laravel HTTP——Pipeline 中间件装饰者模式源码分析 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

前言本文 GitBook 地址: 当所有的路由都加载完毕后,就会根据请求的 `url` 来将请求分发到对应的路由上去。然而,在分发到路由之前还要经过各种中间件的计算。`laravel` 利用装饰者模式来实现中间件的功能。从原始装饰者模式到闭包装饰者装饰者模式是设计模式的一种,主要进行对象的多次处理与过滤,是在开放关闭原则下实现动态添加或减少功能的一种方式。下面先看一个装...
阅读全文

Laravel Queue——消息队列任务与分发源码剖析 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

前言本文 GitBook 地址: 在实际的项目开发中,我们经常会遇到需要轻量级队列的情形,例如发短信、发邮件等,这些任务不足以使用 `kafka`、`RabbitMQ` 等重量级的消息队列,但是又的确需要异步、重试、并发控制等功能。通常来说,我们经常会使用 `Redis`、`Beanstalk`、`Amazon SQS` 来实现相关功能,`laravel` 为此对不同的后台队列服务...
阅读全文

PHPer 面试指南-协议篇 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

Git 地址:每次面试多多少少都会被问到 HTTP、HTTPS、TCP、Socket、 OAuth 等等之类协议,协议相关的问题也可以说是面试必备,所以我把这些知识单独收集成了一篇文章。 网络协议有哪些? 应用层:HTTP、FTP、SSH、SMTP 表示层 会话层 传输层:TCP、UDP 网络层:IP 数据链路层 物理层...
阅读全文

Laravel 生成假数据步骤 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

1. 生成数据模型 我们为资源推荐模型取名 Link ,使用命令行新建模型,顺便创建数据库迁移:$ php artisan make:model Models/Link m 修改数据库迁移文件为以下:{timestamp}\_create\_links_table<?phpuse Illuminate\\Support\\Facades\\Schema; ...
阅读全文

Laravel 5.5 辅助函数文档更新内容 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

骏妞儿今天翻译了一遍 Laravel 5.5 的辅助函数文档,把新增的函数整理一下广而告之 `array_random()`该函数从数组中返回一个随机值:```php$array = ;$random = array_random($array);// 4 (随机获取)```你也可以指定要返回的随机数的数量作为第二个可选参数。一旦你指定了第二个参数,即使数量为...
阅读全文

Laravel 中简约而不简单的 Macroable 宏指令 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

百度百科的定义: 计算机科学里的宏(Macro),是一种批量处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。 我一开始接触宏是在大学上计算机基础课程时,老师讲office时说的。那时老师介绍宏操作时没太在意,只记得这一操作很强大,它能使日常...
阅读全文