开源协议对比图

图片来自:http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

PHP通过runkit覆盖一个方法

首先需要安装runkit扩展 这是原有类 namespace Fyn; class Hello { public function say(string $name): string { return sprintf('Hello %s', $name); } } 通过runkit覆盖(必须先将类load进来才能覆盖) if (class_exists(\Fyn\Hello:class)) { runkit_method_redefine( \Fyn\Hello:class,

php7.2安装runkit

git clone https://github.com/runkit7/runkit7 cd runkit7 pecl install package.xml

Composer如何指定php的版本

这个问题主要出现在本地开发环境的php版本高于生产环境运行的php版本,或构建服务时构建环境的p hp版本高于运行环境的php版本。这时composer会引入一些版本过高的包。可以在composer.json中的config.platform中设置php版本。 { "require": { } "config": { "platform" :{ "php": "5.6", "ext-grpc": "1.14", "ext-protobuf"