Laravel Event——事件系统的启动与运行源码分析 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

前言本文 GitBook 地址: `Laravel` 的事件系统是一个简单的观察者模式,主要目的是用于代码的解耦,可以防止不同功能的代码耦合在一起。`laravel` 中事件系统由两部分构成,一个是事件的名称,事件的名称可以是个字符串,例如 `event.email`,也可以是一个事件类,例如 `App\Events\OrderShipped`;另一个是事件的 `listener`...
阅读全文

MySQL 并发处理 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

并发处理 当多个连接对记录进行修改时保证数据的一致性和完整性 为什么要用到并发控制 假设我们的数据库中存在着商品的记录,现在有两个用户进行登陆,假设一个用户要删除id为22的记录,一个用户要读取id为22的记录,那么会发生什么样的结果呢,结果可能是正在读取信息的用户报错而退出,也可能是他会得到一条和实际信息不符的信息。所以这个时候我...
阅读全文

慎用 “微服务” 架构 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

2014年,Martin Fowler 与 James Lewis 共同提出了微服务的概念,然后微服务就开始火遍大江南北,很多技术团队和公司开始使用微服务架构,然而,谁用谁痛谁知道,“微服务”绝对不是银弹。使用“微服务”架构一定要慎重! 什么是“微服务”?“微服务”并没有严格意义上的定义和规范,借用一段维基百科上的描述: 微服务 (Microservices) 是一种软件架构风格...
阅读全文

【单篇】PHP 知识补全 —— 生成器 (generator)和协程的实现 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

我博客的原文地址 转载请注明原文地址!先说一些废话PHP 5.5 以来,新的诸多特性又一次令 PHP 焕发新的光彩,虽然在本文写的时候已是 PHP 7 alpha 2 发布后的一段时间,但此时国内依旧是 php 5.3 的天下。不过我认为新的特性迟早会因为旧的版本的逐渐消失而变得越发重要,尤其是 PHP 7 的正式版出来后,因此本文的目的就是为了在这之前,帮助一些 PHPer ...
阅读全文

使用 Docker 和 Laradock 进行 PHP 开发 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

为什么要使用DockerDocker能极大地减少环境配置和环境差异带来的工作,能相当程度提高生产力.以往我们使用的Homestead等虚拟机只能实现开发环境的共享,并不能用到生产环境中,无法减少运维的工作. 什么是Docker?Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本! 使用 Docker,可以让应用...
阅读全文

大陆居民身份证、港澳台居民居住证 Composer 包:验证、获取基本信息以及生成假数据 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

地址:IdValidator.php===============`中华人民共和国居民身份证`、`中华人民共和国港澳居民居住证`以及`中华人民共和国台湾居民居住证`号码验证工具(PHP Composer 版)支持 15 位与 18 位号码。基于 。安装```bashcomposer require "jxlwqq/idvalidator"```使用 `44...
阅读全文

Laravel 源码分析-路由是如何调用到控制器 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

概述laravel 的路由相比其他PHP框架非常灵活和优雅,它也能做的在url不变的情况下改变调用的控制器和方法。那么这到底在 laravel 里是怎么完成的呢 路由到底是如何获取的?这没什么神秘的,回忆一下我们写一个单页过程化 PHP 脚本时我们是如何接收 HTML 页面传输的参数的?是的,也许你想起来了我们会使用 PHP 的超全局变量 `$_SERVER`、`$_G...
阅读全文

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

本文 GitBook 地址: 运行队列处理器 队列处理器的设置`Laravel` 包含一个队列处理器,当新任务被推到队列中时它能处理这些任务。你可以通过 `queue:work` 命令来运行处理器。要注意,一旦 `queue:work` 命令开始,它将一直运行,直到你手动停止或者你关闭控制台:```phpphp artisan queue:work``` 可以指...
阅读全文

【PHP - 雷】foreach 與 reference 的雷 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

前言==前陣子公司定期技術研討會時,有人提出了一個問題。```php$arr = ; foreach ($arr as &$a) {}foreach ($arr as $a) {}var_dump($arr); ```考慮以上程式碼執行結果,試問陣列 `$arr` 在執行結束後的值會是如何?註:執行環境 PHP 7.1 without swoole結果:`...
阅读全文

Laravel 之嵌套事务 transactions 实现 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

写在之前关于mysql 的事务嵌套可以查看这个地址: 里面有这么一句话。 Transactions cannot be nested. This is a consequence of the implicit commit performed for any current transaction when you issue a START TRANSACTION st...
阅读全文