JavaScript function* 函数

function* 这种声明方式(function关键字后跟一个星号)会定义一个生成器函数 (generator function),它返回一个  Generator  对象。

function* generator(i) {
  yield i;
  yield i + 10;
}

const gen = generator(10);

console.log(gen.next().value);
// expected output: 10

console.log(gen.next().value);
// expected output: 20
console.log(gen.next().value);
// expected output: undefined
console.log(gen.next().value);
// expected output: undefined

iOS凭据(小票)验证库(PHP版)

ios-iap-php

iOS支付验证

install

composer require sn01615/apple-iap-php

use

use sn01615\iap\ios\Verify;

include "../vendor/autoload.php";

$cc = new Verify();

$receipt = ".."; // 凭据

$cc->endpoint(true);// 可选切,换到沙盒环境

$cc->setPassword('123');// 可选,如果是连续订阅需要密码

$vv = $cc->query($receipt);

// 打印结果
var_dump($vv);

GITHUB: https://github.com/sn01615/apple-iap-php

ERROR: failed to open error_log (/usr/local/var/log/php-fpm.log): Read-only file system (30)

PHP7报错Read-only file system (30)

当你照着 此文 安装好PHP,并做好systemd服务管理文件,你会发现用systemctl start php-fpm 无法正常启动php-fpm 报了一个很奇怪的错。
ERROR: failed to open error_log (/usr/local/php/var/log/php-fpm.log): Read-only file system (30)
此时,selinux是关闭状态,普通用户对这个文件也可写,问题就迷离了。
解决方法:
打开 /usr/lib/systemd/system/php-fpm.service 把
ProtectSystem=true
改成
ProtectSystem=false

当这个值为true的时候,php-fpm进程将以只读的方式挂载 /usr 目录,这就是问题所在。具体可参考
https://www.freedesktop.org/software/systemd/man/systemd.exec.html#ProtectSystem=

https://hqidi.com/154.html

或者修改日志文件路径也可以解决这个问题