:

Yii2 发送邮件

发布于:2020-9-24 13:47 作者:song100e 浏览:15 分类:Yii2

    1,Yii2.0会自带的 swiftmailer,所以不用安装,只需配置下就可以。

    2,获取 SMTP密码, 这里以网易 163为例。

    点击查看原图

阅读全文>>

标签: swiftmailer

0

Linux 监测进程脚本

发布于:2020-9-11 8:43 作者:song100e 浏览:21 分类:PHP
    这里以监测 swoole 的 socket 进程为例。
    在某些情况下,如系统负载过大 swoole 无法申请到内存而挂掉、swoole 底层发生段错误、Server 占用内存过大被内核 Kill,或者被某些程序误杀。那 websocket-server 将无法提供服务,导致业务中断,公司收入出现损失。
    有一个非常有效并且在 BAT 等大型公司常用的方案是 crontab 重启监控。
原理是每 1 分钟执行一次 shell 脚本,检测 swoole 的 websocket-server 进程是否存活,如果存在则跳过。如果发现主进程已经挂掉,则执行 restart 逻辑,先 kill 掉所有残留的子进程,然后重新启动 Server。

在系统的crontab中加入:

*/1 * * * * /data/script/check_socket.sh

阅读全文>>

标签: swoole

0

SAP ABAP 与 JSON 互转之 PHP 版本

发布于:2020-7-7 15:05 作者:song100e 浏览:43 分类:PHP
        最近有个小项目需要和第三方系统 SAP 对接,这里记录下遇到的问题。

        SAP ABAP 提供 RESTful web service 从技术层面需要解决的三个问题:

  1. SAP 对外提供 Http Service 接口。
  2. 在 SAP 端解决诸如 authentication,cookie, session 等 Http server 必须解决的问题
  3. SAP 端实现对响应 (response)以 json 格式返回给客户端,对客户端 json 格式的请求(request)解析并处理.

如何实现 ABAP 对象 与 JSON 互转,这里只介绍PHP版本


SAP_json.PNG

阅读全文>>

标签: SAP

0

Yii2 中 updateAll 参数多条件举例

发布于:2020-5-15 9:03 作者:song100e 浏览:59 分类:Yii2

        Yii2 中的 updateAll() 可以接受三个参数,$attributes, $condition, $params = null。 第一个参数是要更新的值,第二个是条件,如果第二个条件中用了占位符,就必须 要有第三个条件。

$updateData = ['push'=>1, 'push_time'=>date('Y-m-d H:i:s')];
$updateWhere= [
	'and',// 这个非常非常关键
	['shop_no'=>$shop_no],  // 门店
	['barcode'=>$barcodes], // 条码
	['between', 'date', $sdate, $edate]// 时间范围
];
Archive::updateAll($updateData, $updateWhere);

0

centos6.10 安装swoole

发布于:2019-12-28 13:42 作者:song100e 浏览:111 分类:PHP

标签: swoole

0

PHP 7.2 OpenSSL实现 DES 算法

发布于:2019-11-7 13:58 作者:song100e 浏览:219 分类:PHP
    最近公司在制作一个小程序,需要获取用户的基本信息,由于微信小程序更新了新的版本,需要加密验证,使用的就是openssl 扩展,所以在运行的时候出现了一个致命错误:openssl_decrypt 无法加密解密,我使用的是php7.2  mcrypt被移除了, 换成了openssl_decrypt。

阅读全文>>

解决 Yii2 composer 安装时出现的 Unzip 错误

发布于:2019-8-6 16:45 作者:song100e 浏览:137 分类:Yii2
最近公司有一个项目需要重构, 打算从 TP5 转到 Yii2,这两天着重搭建开发环境
在使用 composer 安装 Yii2 高级模板时出现如图这样的错误信息:
Unzip with unzip command failed, falling back to ZipArchive class。
2019-xhm.PNG

阅读全文>>

0

PHP7内核学习起步!

发布于:2019-2-15 17:48 作者:song100e 浏览:188 分类:内核剖析学习

        PHP7 版本的发布,Zend 引擎被再次重写,并以 Zend Engine 3.0 的身份亮相,使得 PHP 语言的性能得到大幅度提升,大量测试显示 PHP7 比 PHP5.6 在各种开源项目中有 60% 到 200% 的性能提升。学习和研究 PHP7 内核对于提升个人使用水平和内功很有必要。

点击查看原图


一,源码下载及安装

$ wget http://php.net/distributions/php-7.0.12.tar.gz
$ tar zxvf php-7.0.12.tar.gz
$ cd php-7.0.12/
$ ./configure --prefix=/usr/local/php-7.0.12 --enable-debug --enable-fpm
$ make && sudo make install


二,目录概览

以 php-7.0.12 为例,下面是每个目录的说明。

目录 说明
TSRM 线程相关安全的实现
Zend PHP 解析器的核心实现
build linux 下编译相关的目录
ext PHP 的扩展
main PHP 的主要代码
netware 网络目录,socket 的定义与实现
pear PHP 扩展及应用的代码仓库
sapi PHP 的应用层接口
scripts Linux 下的脚本目录
tests 测试脚本目录
travis 用于构建,非 PHP 特有目录
win32 Windows 下编译 PHP 的相关脚本


三,核心目录

  1.         sapi 全称 Server API,负责 PHP 对外提供服务规范,它定义了结构体 sapi_module_struct,该结构体定义了模式启动、关闭、激活、失效等多个钩子函数指针,每个模式将这些函数指针指向自己的函数。
  2.         main 目录的作用是承接 SAPI 的请求,分析出要执行的脚本文件和参数,并对环境和配置进行初始化,比如初始化变量和常量、注册函数、解析配置文件、加载扩展等等。
  3.         Zend 目录就是大家所熟知的 Zend 引擎,是 PHP 最核心的部分,主要负责 PHP 的语法实现、内存管理及脚本的编译运行环境等,它由编译器、执行器两部分组成。编译器负责将 PHP 代码进行词法、语法分析,并生成抽象语法树,然后进一步编译为 opcode,opcode 是 Zend 虚拟机可识别的指令。
  4.         ext 是 extension 的缩写,它是扩展 PHP 内核功能的一种方式,分为 PHP 扩展 与 zend 扩展,都支持用户自定义开发,这两种都比较常见,PHP 扩展有 gd、json、date、array 等,而我们熟知的 opcache 就是 Zend 扩展。
  5.         TSRM 全称叫做 Thread Safe Resource Manager,也就是线程安全资源管理器。


标签: PHP7

0

设置PHP curl超时

发布于:2019-1-30 13:49 作者:song100e 浏览:152 分类:PHP
    PHP CURL的超时设置有两个 CURLOPT_CONNECTTIMEOUT CURLOPT_TIMEOUT,他们的区别是:
    CURLOPT_CONNECTTIMEOUT:在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载、下线或者崩溃等可能状况。
    CURLOPT_TIMEOUT:从服务器接收缓冲完成前需要等待多长时间,如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。
应用举例:
    使用 curl 下载 MP4 文件是一个对开发人员来说不错的例子,CURLOPT_CONNECTTIMEOUT 可以设置为10秒,标识如果服务器 10 秒内没有响应,脚本就会断开连接,CURLOPT_TIMEOUT 可以设置为 100 秒,如果 MP3 文件 100 秒内没有下载完成,脚本将会断开连接。

需要注意的是:CURLOPT_TIMEOUT 默认为 0,意思是永远不会断开链接。所以不设置的话,可能因为链接太慢,会把 HTTP 资源用完。

php_curl.PNG

标签: curl

0

升级PHP到7.3

发布于:2019-1-26 13:56 作者:song100e 浏览:149 分类:PHP

PHP 7.3声称速度比PHP 5快3倍还多,再加上最近有点闲的蛋疼,准备升级PHP到最新版本,本来以为很简单,结果我错了,底层支撑技术差别还是很大的。

阅读全文>>

标签: PHP7.3

0

1 2 3 4 5 6