Swoole 源码分析——Server 模块之 ReactorThread 事件循环(下) | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

`swPort_onRead_check_eof` EOF 自动分包 我们前面说过,`swPort_onRead_raw` 是最简单的向 `worker` 进程发送数据包的方法,`swoole` 会将从客户端接受到的数据包,立刻发送给 `worker` 进程,用户自己把数据包拼接起来 如果启用了 `EOF` 自动分包,那么 `swoole` 会检测 `EOF` 符号,拼接完毕...
阅读全文

用 Swoole HTTP 服务器运行 Lumen 项目的实现方法 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

原文链接: LNMP虽是传统的Web应用架构组合,无奈NginX + PHPFPM的搭配运行效率实在太低;而Swoole HTTP服务器具有NginX级别的性能,且本身嵌入在PHP中,完全可以替代NginX + PHPFPM。于是一直在探索用Swoole HTTP服务器运行传统PHP应用的途径。这里主要介绍一下Swoole HTTP服务器运行Lumen项目的实现方法:Swoole H...
阅读全文

Laravel 控制器前置方法与后置方法的代码变更设置 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

进入laravel的核心文件 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php 查找到方法 _callAction_: 源码为:```phppublic function callAction($method, $parameters){ return calluserfu...
阅读全文

转发:概念数据模型、逻辑数据模型、物理数据模型详解 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。 数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。 数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。 数据约束:数据模型中的数据约束主要描述数据结构内数据...
阅读全文

Swoole 源码分析——Server 模块之 Worker 事件循环 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

`swManager_loop` 函数 `manager` 进程管理 `manager` 进程开启的时候,首先要调用 `onManagerStart` 回调 添加信号处理函数 `swSignal_add`,`SIGTERM` 用于结束 `server`,只需要 `running` 设置为 0,`manager` 会逐个杀死 `worker` 进程;`SIGUSR1` 用于重载...
阅读全文

Swoole 源码分析——Server 模块之 Stream 模式 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

`swReactorThread_dispatch` 发送数据`reactor` 线程会通过 `swReactorThread_dispatch` 发送数据,当采用 `stream` 发送数据的时候,会调用 `swStream_new` 新建 `stream`,利用 `swStream_send` 发送数据。```phpint swReactorThread_dispatch(s...
阅读全文

解锁 Redis 锁的正确姿势 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

解锁redis锁的正确姿势=============redis是php的好朋友,在php写业务过程中,有时候会使用到锁的概念,同时只能有一个人可以操作某个行为。这个时候我们就要用到锁。锁的方式有好几种,php不能在内存中用锁,不能使用zookeeper加锁,使用数据库做锁又消耗比较大,这个时候我们一般会选用redis做锁机制。setnx=====锁在redis中最简单的数据结...
阅读全文

Laravel 错误日志的插件 (Laravel-log-viewer) | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

记录错误日志,可以更容易调试问题或者错误。效果](https://lccdn.phphub.org/uploads/images/201704/13/5698/mTq8ZJjuzd.jpg)代码```phphttps://github.com/rap2hpoutre```安装```phpcomposer require rap2hpoutre/lara...
阅读全文

学习开发自己的 Composer 包,并使用 GitHub 实时更新到 Packagist | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

composer是什么Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。Composer 受到了 node's npm 和 ruby's bundler 的强烈启发。而当时 PHP 下并...
阅读全文

说说 PHP 的魔术方法及其应用 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

PHP中将所有__(两个下划线)开头的类方法作为魔术方法,这方法之所以称为魔术方法是因为其实现的功能就如变魔术一样感觉很神奇。在特定的事件下触发,这真的很酷。 __construct()这个方法应该是最常用的,被称为构造器或者构造方法,当一个对象被实例化时会被首先调用,而在 PHP 框架中一些过滤器,中间件及依赖注入也一般在这个方法中完成。父类的构造器可以被子类继承和重写。```...
阅读全文