php7 with webp di,提前使用 PHP 7.4 新特性造轮子的正确方式

PHP 7.4 已经实现了很多新功能,虽然我们不能在业务中使用,但是可以提前在轮子中预研发。

这不是什么技术,可以用来预研功能,php7.4 有太多语法的变动。

编译一个 PHP 7.4 版本

git clone -b PHP-7.4 https://github.com/php/php-src.git --depth=1 && cd php-src && ./buildconf

./configure --prefix=/usr/local/php74 --with-config-file-path=/usr/local/php74/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --disable-debug --with-curl --with-iconv --with-zlib --enable-bcmath --enable-ftp --enable-sockets --enable-mbstring --enable-mbregex --enable-soap --with-xsl --enable-opcache --with-mysqli --with-mysql-sock --with-pdo-mysql --enable-mysqlnd --disable-fileinfo --enable-gd --with-webp --with-jpeg --with-freetype --enable-gd-jis-conv --with-iconv-dir=/usr/local/lib LDFLAGS="-L/usr/lib -lz"

make ZEND_EXTRA_LIBS='-liconv'

make install

PHP 7.4.0-dev (cli) (built: May 5 2019 00:20:55) ( NTS )

Copyright (c) The PHP Group

Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies

新建分支

git checkout master

git checkout -b php74

持续集成加入 php7.4

.travis.yml

language: php

env:

global:

- MIN_PHP=7.3.2

- setup=stable

matrix:

include:

- php: 7.4snapshot

- php: 7.4snapshot

env: setup=lowest

fast_finish: true

sudo: false

cache:

directories:

- $HOME/.composer/cache

services:

- redis-server

- mysql

before_install:

- mysql -e "create database IF NOT EXISTS test;" -uroot

- phpenv config-add build/redis.ini

- travis_retry composer self-update

install:

- if [[ $setup = 'stable' ]]; then travis_retry composer update --prefer-dist --no-interaction --prefer-stable --no-suggest; fi

- if [[ $setup = 'lowest' ]]; then travis_retry composer update --prefer-dist --no-interaction --prefer-lowest --prefer-stable --no-suggest; fi

# Some debug info is located here

- ls -al `$(phpenv which php-config) --extension-dir`

- $(phpenv which php) -v

- $(phpenv which php) -m

script:

- mkdir -p logs

- mkdir -p build/logs

- php vendor/bin/phinx migrate -e testing

- php vendor/bin/phpunit -c phpunit.xml.dist --coverage-clover build/logs/clover.xml

after_success:

- travis_retry php vendor/bin/php-coveralls

- travis_retry php vendor/bin/php-coveralls -v

测试开发

属性类型

/**

* @var array

*/

// protected $map = [];

protected array $map = [];

/**

* 节点数据.

*

* @var array

*/

// protected $data = [];

protected array $data = [];

短闭包

protected function getExplodeData(string $data): array

{

/*

return array_map(function ($v) {

return (int) ($v);

}, explode(static::SEPARATE, $data));

*/

$data = explode(static::SEPARATE, $data);

return array_map(fn($v) => (int) ($v), $data);

}

等待发布 php7.4 合并

php7.4 发布后,如果 master 至少要求 php7.4 的话可以合并回去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值