php
文章平均质量分 80
梦情与你
这个作者很懒,什么都没留下…
展开
-
Yaf自定义autoload以实现Model文件和Controller文件命名区分
Yaf在自启动的时候, 会通过SPL注册一个自己的Autoloader, 出于性能的考虑, 对于框架相关的MVC类, Yaf> Autoloader只以目录映射的方式尝试一次.原创 2021-04-14 10:20:18 · 466 阅读 · 0 评论 -
PHPCS的安装配置及使用
良好的代码规范可以提高代码可读性,降低团队沟通维护成本PSR标准PSR是PHP Standards Recommendation的简称,这个是[php-fig](PHP Framework Interop Group)(https://github.com/php-fig)组织制定的一套规范。至今,php-fig已经发布了五个规范:PSR-0:自动加载标准,该标准已被废弃,使用PSR-4替代PSR-1:基本的编码风格PSR-2:编码风格(更严格)PSR-2中文说明PSR-3:日志记录器转载 2020-11-21 20:45:26 · 3960 阅读 · 0 评论 -
think-queue 消息队列 + redirs + Supervisor进程管理工具
think-queue 消息队列 + redirs + Supervisor进程管理工具文章目录think-queue 消息队列 + redirs + Supervisor进程管理工具前言一、Supervisor是什么?二、使用场景1. 教育机构对结课学员课时,定时清零。生产端 我们利用tp command创建自定义指令,查看[创建自定义指令详解](https://www.kancloud.cn/manual/thinkphp6_0/1037651)。消费端 是处理队列中的数据。处理成功就删除队列中原创 2020-11-06 16:22:32 · 584 阅读 · 0 评论 -
php redis pipeline管道技术
概念如果需要一次执行多个redis命令,以往的方式需要发送多次命令请求,有redis服务器依次执行,并返回结果,为了解决此类问题,设计者设计出了redis管道命令:客户端可以向服务器发送多个请求,而不必等待回复,并最终在一个步骤中读取回复,从而大大增加了协议性能代码示例1 、不使用管道技术$stime=microtime(true); //获取程序开始执行的时间echo '开始内存:'.memory_get_usage(), ''; echo PHP_EOL;$redis = new \Re原创 2020-05-19 14:30:04 · 3103 阅读 · 9 评论 -
PHP中间件(middleware)理解
一 、 什么是中间件中间件是一个轻量级、底层的插件系统,可以介入应用主题从请求到响应的处理过程。说明白点,中间件其实就是一个闭包,而且返回一个闭包。中间件为过滤进入应用的HTTP请求提供了一套便利的机制,常用于验证用户是否经过认证,添加响应头(跨域),记录请求日志等。二 、 用到的一些概念1.闭包函数也就是常说的匿名函数(什么是匿名?没有函数名不就是匿名了么…秀- -),允许临时创建一...原创 2020-05-07 16:28:37 · 3541 阅读 · 0 评论 -
rabbitMQ + yii2 (php)路由
在前面的学习中,我们实现了一个简单的日志系统。 可以把日志消息广播给多个接收者。本篇中我们打算新增一个功能–使得它能够只订阅消息的字集。 列如我们只需要把严重的错误日志写入文件中,但同时也把所有的日志信息输入到控制台中。绑定 bindings前面的例子,我们已经创建绑定:$channel->queue_bind($queue_name, 'logs');绑定是指交换机和队列的关...原创 2019-06-21 21:57:11 · 317 阅读 · 0 评论 -
rabbitMQ + yii2 (php) Hello World
今天我们学习一下rabbitMQ在php的基本使用。已yii2框架为例。在这我们将用PHP编写两个程序,生产者发送一个消息,消费者接收信息并打印出来。在使用php-amqplib API时我们会掩盖一些细节,把精力集中在这个非常简单的事情开始。这是一个“Hello World”的消息。一、安装php-amqplib库1、composer 安装{ "require": { ...原创 2019-06-18 16:09:59 · 421 阅读 · 0 评论 -
rabbitMQ + yii2 (php)远程过程调用(RPC)
今天我们共同学习下使用MQ来构建一个RPC系统。包含一个客户端和一个RPC服务端。现在的情况是,我们没有一个值得被分发的足够耗时的任务,所以接下来,我们创建一个模拟RPC服务。客户端的接口为了展示rpc服务如何使用,我们创建了一个简单的客户端,关于RPC的注意事项:尽管RPC在计算机领域是一个常用模式,但它也有一些问题,当一个问题被抛出时,程序员往往意识不到这到底是由本地调用还是由较慢的R...原创 2019-06-26 14:08:21 · 827 阅读 · 0 评论 -
在yii2中创建控制台命令(console)
今天我们共同学习一下在yii2中创建命令。一 、 首先 根目录下console目录就是配置的地方1、查看当前项目控制台已有的脚本命令正如你在截图中看到,Yii 中已经定义了一组默认情况下可用的命令:AssetController - 允许合并和压缩你的 JavaScript 和 CSS 文件。 在 资源 - 使用 asset 命令 一节可获取更多信息。CacheController ...原创 2019-06-18 19:06:29 · 3076 阅读 · 0 评论 -
rabbitMQ + yii2 (php)主题交换机
为什么需要主题交换机?在上一篇的学习中,我们改进了日志系统。我们使用直连交换机代替了扇形交换机,从只能盲目的接收广播信息改进为有选择的接收日志。尽管直连交换机能够改善我们的系统。但是也有缺点 – 没办法基于多个标准执行路由操作。在我们的日志系统中,我们不只是希望订阅基于严重程度的日志,同时还希望订阅基于发送来源的日志。如果这样的话,将会给予我们非常大的灵活性,我们既可以监听来源于“cron...原创 2019-06-24 16:38:56 · 311 阅读 · 0 评论 -
rabbitMQ +php(PCNTL) 服务端守护进程(二)
随着互联网的发展,php快速开发的特点,现在越来越多的团队将php作为服务端的编程语言,大家都知道php是单线程,但使用PCNTL和POSIX等扩展实现多进程编程,相比多线程编程,多进程就容易的多。在使用php开发服务端时,很多时候避免不了和多进程打交道,个人才疏学浅,有疏漏。请望指正。php创建守护进程开始之前, 请确认已安装扩展pcntl和posix。请使用php -m创建守护进程...原创 2019-07-12 20:23:34 · 761 阅读 · 0 评论 -
rabbitMQ + nohup 服务端守护进程(一)
随着互联网的发展,php快速开发的特点,现在越来越多的团队将php作为服务端的编程语言,大家都知道php是单线程,但使用PCNTL和POSIX等扩展实现多进程编程,相比多线程编程,多进程就容易的多。在使用php开发服务端时,很多时候避免不了和多进程打交道,个人才疏学浅,有疏漏。请望指正。php创建守护进程开始之前, 请确认已安装扩展pcntl和posix。请使用php -m创建守护进程...原创 2019-06-28 16:41:42 · 1498 阅读 · 0 评论 -
rabbitMQ + yii2 (php)发布/订阅
在上篇文章中,我们搭建了一个工作队列。每个任务只分发给一个工作者worker。这里我们做的跟之前完全不一样–分发一个消息给多个消费者consumers。这种模式 ”发布/订阅“。在这里我们将会构建一个简单的日志系统。它包括两个程序–第一个程序负责发送日志消息,第二个程序负责发送获取消息并输出内容。在我们的这个日志系统中,所有正在运行的接收方都会接收消息的。我们用其中一个接受者receiver把...原创 2019-06-20 19:55:35 · 1133 阅读 · 0 评论 -
rabbitMQ + yii2 (php) 工作队列
工作队列又称任务队列,是为了避免等待一些占用大量资源 时间的操作。当我们吧任务当做消息发送到队列中,一个运行在后台的工作者worker 进程就会取出任务,任务就会在它们之间共享。之前的学习中,我们发送了一个包含“Hello World!”的字符串消息。现在,我们将发送一些字符串,我们这里用sleep()函数来模拟处理任务。我们在字符串中加上点号(.)来表示任务的复杂程度,一个点(.)将会耗时1秒...原创 2019-06-19 23:04:10 · 1055 阅读 · 0 评论 -
搭建showdoc文档工具
一、准备 Nginx + PHP 环境1、安装 Nginx使用 yum 安装 Nginx:yum install nginx2、修改 /etc/nginx/nginx.conf 文件为如下内容:user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid /run/nginx.pid;inclu...原创 2019-05-21 14:57:04 · 770 阅读 · 0 评论 -
php解决约瑟夫环
今天偶遇一道算法题 “约瑟夫环”是一个数学的应用问题:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数, 再数到第m只,在把它踢出去…,如此不停的进行下去, 直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。方法一:递归算法复制代码 1 function killMonkey...转载 2018-10-30 00:13:06 · 96 阅读 · 0 评论 -
一个小小的逻辑题
一个小小的逻辑题 一个球从100米落下,每次反弹都是上一次落下的一半距离,比如第一次落地,反弹50米。请问他会弹多少次呢! 这个问题php 来解答一下。如果有错误请指正,或有更好的写法请留言。谢谢!/* 首先我们假设知道弹的次数。 * 100/2分之一 = 50 * 50/2分之一 ...原创 2018-10-27 19:54:43 · 233 阅读 · 0 评论 -
php文件导出的几种方式
最近需要大数据导出,于是在网上找了一下,在这进行一下整理,希望可以帮助到大家。一、PHP 自带函数 fputcsv 可以实现打印报表(Excel)功能优点是:1 执行效率高2 不需要第三方库3 用起来很方便4 实时生成。用流的形式传输缺点是:1 在 Linux 执行后,下载到本地打开会乱码 那么可以用 iconv 函数进行转换2 只支持csv格式,如果你的对报表格式要求不是很高...原创 2018-12-13 14:11:17 · 3356 阅读 · 0 评论 -
php常用数组--array_diff计算数组的差集
今天,和大家一起聊聊常用的数组, diff类的函数。是用于数组之间相互对比而产生的函数。你也可以从手册中了解到。我这里进行了一下整理。在借助手册可以更好的理解消化。那我们现在开始吧!特别注意对比 array1 和其他一个或者多个数组,返回在 array1 中但是不在其他 array 里的值。我整理一下array_diff 函数相关的其他函数:1. array_diff常用函数,基本定义...原创 2018-12-30 00:26:46 · 585 阅读 · 0 评论 -
在macos系统上brew安装php环境和扩展
在这里可以帮助一下,在mac系统开发的新同学。言归正传。说正题哈哈哈。我们知道每个系统都有自己工具包。如:centos 有 yum。Ubuntu 有 apt-get。mac系统有brew这个神器。方便了很多。brew install mysql //安装mysqlbrew search mysql //搜索mysqlbrew info mysql // 查找mysql相...原创 2018-12-18 14:57:46 · 2695 阅读 · 1 评论 -
php常用数组--栈和队列
大家好,今天我们浅谈一下php数组栈和队列的使用。我们大家知道,一、栈是一种后进先出或是先进后出的一种模式。这样说感觉是不是有一点枯燥。我认为可以这样理解更加通俗易懂写。比如,我认为栈是弹压的概念。就像子弹壳装弹,要一粒一粒压进去,但是打出来的是从顶部打出来。这就造成了最先压进去的最后弹出来,如果进去顺序是123,打出来顺序是321,这就是最后进入的子弹最先出来,这就是后进先出。相反就是最先进...原创 2018-12-30 02:24:39 · 478 阅读 · 0 评论 -
字符集和字符编码
转发 http://www.cnblogs.com/notbecoder/p/4840783.html转载 2019-01-02 22:44:30 · 110 阅读 · 0 评论 -
Yii2.0 behaviors方法使用
转载 https://www.cnblogs.com/lccjob/p/5057369.html初学Yii2.0 学习路径:http://www.yii-china.com/经过各种学习,积累知识点;(1)控制器 behaviors 过滤数据需要引入如下文件use yii\filters\AccessControl;use yii\filters\VerbFilter;首先:什么是过...转载 2019-03-21 19:07:27 · 1240 阅读 · 0 评论 -
在macos系统上编译安装php环境和扩展
大家好上次我们聊过brew安装方式,那我们今天就聊聊编译安装,我们今天就安装一下Stomp扩展。安装过程中发现了一个小问题,版本过低的话php7会报错。这个是stomp-1.0.5版本gongzgiyangdeMacBook-Air:stomp-1.0.5 gongzhiyang$ make && make install/bin/sh /usr/local/opt/stom...原创 2019-03-29 20:07:47 · 1007 阅读 · 0 评论 -
php-fpm 在mac 中重启方式
查看php-fpm端口是否在被php-fpm使用sudo lsof -i:9000一般修改 php.ini 文件后经常需要重启php-fpmsudo killall php-fpm 关闭再输入 sudo lsof -i:9000 就会发现php-fpm没有打印对应端口sudo php-fpm 重启...原创 2019-04-01 11:33:29 · 6130 阅读 · 0 评论 -
yii2中hasMany 和 hasOne 的用法及在页面中增加字段的问题
大家好,今天我们聊一下yii 中hasMany和hasOne,在页面中增加字段的问题。希望对一些同学有帮助。hasMany和hasOne的具体的用法手册写的很详细,我们就不多说了。今天重点要了解的是在yii2中gii自动生成crud的情况下,怎么运用关联方法。一 . 数据库表订单表CREATE TABLE `doub_order` ( `order_id` int(10) unsign...原创 2019-03-28 15:41:37 · 2816 阅读 · 0 评论 -
php的经典算法
php的经典算法 <?php$arr=array(1,43,54,62,21,66,32,78,36,76,39);//冒泡/*它重复地走访过要排序的数列,依次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”...原创 2018-10-22 23:20:41 · 192 阅读 · 0 评论