PHP 通过反射获取类的方法以及参数  

比如一个PHP的扩展,你知道类名,但是不知道具体有哪些方法可以使用,可以使用反射试试。 示例: $reflection = new ReflectionClass ($class_name); $methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC + ReflectionMethod::IS_PROTECTED + ReflectionMethod::IS_PRIVATE); //遍历所有的方法 echo "

Posted:2019-12-31  By vilay

Git 子模块移除  

在vendor/包下有个包包含了子模块,一直无法提交。 我先进入目录把git相关的移除,但是还是无法提交。 再把缓存清除 git rm --cached vendor/package 重新提交就ok了。

Posted:2019-12-31  By vilay

RabbitMQ(三)- 发布/订阅  

在上篇教程中,我们搭建了一个工作队列,每个任务只分发给一个工作者(worker)。在本篇教程中,我们要做的跟之前完全不一样 —— 分发一个消息给多个消费者(consumers)。这种模式被称为“发布/订阅”。 为了描述这种模式,我们将会构建一个简单的日志系统。它包括两个程序——第一个程序负责发送日志消息,第二个程序负责获取消息并输出内容。 在我们的这个日志系统中,所有正在运行的接收方程序都会接受消息。我们用其中一个接收者(receiver)把日志写入硬盘中,另外一个接受者(receiver)把日

Posted:2019-12-28  By vilay

RabbitMQ(二)- 工作队列  

工作队列 工作队列(又称:任务队列——Task Queues)是为了避免等待一些占用大量资源、时间的操作。当我们把任务(Task)当作消息发送到队列中,一个运行在后台的工作者(worker)进程就会取出任务然后处理。当你运行多个工作者(workers),任务就会在它们之间共享。 这个概念在网络应用中是非常有用的,它可以在短暂的HTTP请求中处理一些复杂的任务。 生产者 (task.php) <?php require_once __DIR__ . '/vendor/autoload.php

Posted:2019-12-28  By vilay

RabbitMQ(一)- 简单队列  

客户端 composer require php-amqplib/php-amqplib 生产者 send.php 代码 <?php require_once __DIR__ . '/vendor/autoload.php'; use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage; require_once __DIR__ . '/config.php'; $connection

Posted:2019-12-28  By vilay

微信公众号:该公众号提供的服务出现故障,请稍后再试解决思路  

在开发微信公众号的时候,一直提示该公众号提供的服务出现故障,请稍后再试. 官方文档上是说有两种情况会返回 1、开发者在5秒内未回复任何内容 2、开发者回复了异常数据,比如JSON数据等 情况1是网络延迟或者计算过多,请求接口超时等问题。 情况2也有好多种情况 1. 返回数据格式错误,如代码报错输出了错误信息,或者返回了json,或者直接就是字符串,非xml,或者xml格式中空格多了 2. 公众授权了消息相关权限,接收,被动回复等,在这种情况下,微信除了会向你的开发者服务器地址发送信息之外,还会向

Posted:2019-08-23  By vilayz

Yii2 性能优化  

使用Yii2开发产品的时候,在做性能优化中发现,在数据库中会发现很多查看表列的请求 SHOW FULL COLUMNS FROM `articles` 这个是使用AR模型,每次查询的时候都会获取表的列 解决方法,修改数据库连接配置 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=test', 'username' => 'root', 'password' =&

Posted:2019-08-07  By vilay

PHP Curl 保持会话连接  

PHP 请求接口的时候保持cookie 会话连接的方法 function curlRequest($url,$data,$headers=[]) { $cookie_file = '/tmp/cookie.txt'; $data = json_encode($data); $ch = curl_init(); $user_token = getAuthToken(); $headers = [ 'Content-Type:application/json;charset=utf-8', 'Con

Posted:2019-01-15  By vilay

PHP 获取指定周数的开始时间结束时间  

函数 function weekStartEnd($year,$week=1) { $w = date('W'); $diff = $w-$week; $weekday['start']=mktime(0,0,0,date('m'),date('d')-date('w')+1-$diff*7,date('Y')); $weekday['end']=mktime(23,59,59,date('m'),date('d')-date('w')+7-$diff*7,date('Y')); return

Posted:2019-01-07  By vilay

tp5 api接口数据响应正常,但是http 状态码500  

在请求一个api的接口的时候遇到一个奇葩问题,响应数据正常,但是状态码是500. 把服务器的报错什么的都修改为debug状态,没有任何错误显示 解决方法,给runtime重新赋予权限 chmod -R 777 runtime

Posted:2018-12-01  By vilay

Safari 浏览器提交表单,在a标签上绑定onclick 事件  

今天遇到个问题,在写一个表单提交的时候,按钮使用的是a标签,在a标签上绑定了事件 <a type="button" class="btn btn-caution" rel="_request" id="address_submit" style="cursor: pointer;" onclick="return submit()">确定</a> 在su

Posted:2018-09-08  By vilay

PHP $_POST,php://差异  

今天在使用postman测试接口的时候,遇到个问题,使用raw向接口发送json数据,但是后台获取不到数据 后台使用$_POST获取,获取不到数据。 之前一直使用$_POST,差点以为这万能了,后面查看了文档发现还是有差异的。 $_POST 当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本。 php:// php:// php://i

Posted:2018-07-12  By vilay

一次服务器磁盘爆满的血案  

今天早上访问应用的时候,突然很多地方图片加载不到,登录之后session无法获取。 首先,我查看了下yii2 session相关的配置,都有配置正确 接着尝试写了两个方法,一个方法生成session,并获取到session,正常,另一个方法,获取上个方法生成的session,获取失败。 尝试了下重启服务器,还是无效,没能解决问题。 查看了下session的存储位置/var/lib/session权限是够的 然后看了下php的session相关配置,突然想到session的存储类型是files,有

Posted:2018-07-11  By vilay

PHP JWT 实践  

PHP JWT验证的实践 介绍 官网 JWT JSON Web Tokens JWT 格式 header.payload.signature header { "typ":"JWT", "alg":"SHA256" } payload 待补充 示例 <?php /** * api接口基类控制器 * @authors vilay */ namespace api\controllers; use Yii; use

Posted:2018-07-03  By vilay

PHP json_encode 空数组  

在对接口的时候,使用json数据进行数据传输,遇到一个问题 示例代码: $data = [ 'head' => [ 'token' => 'dfdfd', ], 'body' => [] ]; echo json_encode($data); 结果: {"head":{"token":"dfdfd"},"body":[]} body这个空数组还是经过编码之后还是[],这种格式在部分语言里面无法进行解

Posted:2018-06-28  By vilay