05 2019 档案
swoole的process模块创建和使用子进程
摘要:swoole中为我们提供了一个进程管理模块 Process,替换PHP的 pcntl 扩展,方便我们创建进程,管理进程,和进程间的通信。 swoole提供了2种进程间的通信: 1、基于 unix socket 的管道 pipe。 2、基于 sysvmsg 的消息队列。 我们可以通过 new swoo
阅读全文
swoole中http_server的配置与使用
摘要:swoole中为我们提供了一个swoole_http_server类,方便我们处理http请求。 但是它对http协议的支持并不完整,所以一般建议在前面加一层nginx进行代理,对于php文件的处理交由swoole处理。 一、创建一个简单的http服务 二、处理静态文件 swoole中已经帮我们内置
阅读全文
swoole中使用task进程异步的处理耗时任务
摘要:我们知道,swoole中有两大进程,分别是 master 主进程和 manager 管理进程。 其中 master 主进程中会有一个主 reactor 线程和多个 reactor 线程,主要的作用就是用来维护TCP连接,处理网络IO,收发数据。 而 manager 管理进程,作用则是 fork 和管
阅读全文
php使用inotify扩展监控文件或目录的变化
摘要:一、安装inotify扩展 1、下载inotify扩展源码 对于php7以上版本,请下载 inotify-2.0.0.tgz。 2、编译安装 3、修改php.ini,添加 二、使用inotify进行文件监控 php的inotify扩展提供了监控文件或目录的功能,可以用来实现,服务的热更新,或安全监控
阅读全文
php使用supervisor管理进程脚本
摘要:supervisor是用python开发的一个在linux系统下的进程管理工具,可以方便的监听,启动,停止一个或多个进程。当一个进程被意外杀死后,supervisor监听到后,会自动重新拉起进程。 一、supervisor的安装 1、通过easy_install安装 2、通过yum安装 3、通过pi
阅读全文
php捕获Fatal error错误与异常处理
摘要:php中的错误和异常是两个不同的概念。 错误:是因为脚本的问题,比如少写了分号,调用未定义的函数,除0,等一些编译语法错误。 异常:是因为业务逻辑和流程,不符合预期情况,比如验证请求参数,不通过就用 throw new 抛一个异常。 在php5的版本中,错误是无法被 try {} catch 捕获的
阅读全文
go语言使用go-sciter创建桌面应用(八) 窗口显示时,自动加载后端数据。
摘要:有些时候我们需要在窗口创建并显示时,加载一些后端的配置,这就需要用到view提供的几个事件。 statechange 状态改变时,最大化,最小化,显示,隐藏,会触发事件回调。 activate 窗口激活或停用时,可以理解为获取焦点或失去焦点,触发事件回调。 demo.go的代码如下: demo.ht
阅读全文
laravel中视图的基本使用(七)
摘要:laravel中的视图默认保存在 resources\views 目录下。在控制器中,我们通常使用 view() 方法返回一个视图文件。 对于有多层目录结构的视图,我们可以通过 (.) 点号进行分隔。 我们可以通过 view() 的第二个参数 或 with() 方法来给视图传递数据。 有些时候我们需
阅读全文
laravel中的表单请求类型和CSRF防护(六)
摘要:laravel中为我们提供了绑定不同http请求类型的函数。 但有些时候,我们通过创建资源控制器,里面的 update() 方法绑定的是 PUT 类型的http请求。 这就需要我们通过表单提交模拟PUT请求。我们可以自已添加一个 _method 的隐藏字段,值为 PUT。 也可以使用laravel为
阅读全文
laravel中控制器的创建和使用(五)
摘要:laravel中我们可以使用 artisan 命令来帮助我们创建控制器文件。 TestController 控制器名我们可以任意指定。文件默认会创建在 app\Http\Controllers 目录下。 打开控制器文件,我们就可以添加自已的方法了。 在路由文件 routes/web.php 中配置路
阅读全文
laravel模型中非静态方法也能静态调用的原理
摘要:刚开始用laravel模型时,为了方便一直写静态方法,进行数据库操作。 直到有朋友告诉可以不用这么写,声明一个 protected 方法,方法中用 $this。在外部使用时,也可以像调静态函数一样调用。 试了一下,发现还真可以,按理说受保护的 protected 非静态方法,在外部是无法这么调用的
阅读全文