PHP开发工具PHP Insights、YAY!、PHPBrew、polarphp介绍

以下为你介绍的PHP开发工具都可用在Linux系统上:PHP Insights(控制台查看 PHP 质量)、YAY!(高级 PHP 预处理器)、PHPBrew(安装多版本 PHP 到用户根目录的工具)、polarphp(新的 PHP 语言编译器和运行时)。

1、PHP Insights(控制台查看 PHP 质量)

PHP开发工具PHP Insights、YAY!、PHPBrew、polarphp介绍

PHPInsights 旨在帮助开发者分析 PHP 项目的代码质量,它简化了代码分析的过程,可直接在终端运行。

特性:

代码质量和编码风格分析。

美观的展示,可查看代码的体系结构和复杂性。

兼容 Laravel、Symfony 等 PHP 框架。

内置检查,使代码可靠、简洁且松散耦合。

友好的控制台交互,基于 PHPCS、PHPLOC 和 EasyCodingStandard。

安装和使用:

要求: PHP 7.2+。

首先使用 Composer 包管理器安装 PHP Insights:

composer require nunomaduro/phpinsights --dev

然后使用 phpinsights 执行文件:

./vendor/bin/phpinsights

在 Windows 下执行 bat 脚本:

.\vendor\bin\phpinsights.bat

Laravel 内使用:

可以通过发布 config-file:

php artisan vendor:publish --provider="NunoMaduro\PhpInsights\Application\Adapters\Laravel\InsightsServiceProvider"

然后使用 insights Artisan 命令:

php artisan insights

在 Symfony 中使用:

创建配置文件:

cp vendor/nunomaduro/phpinsights/stubs/symfony.php phpinsights.php

然后使用 phpinsights 执行文件:

./vendor/bin/phpinsights

Windows:

.\vendor\bin\phpinsights.bat

无框架如何定制 Insights:

可以通过创建并编辑如下配置文件来定制 insights:

cp vendor/nunomaduro/phpinsights/stubs/config.php phpinsights.php

持续集成:

你可以在 CI 中通过 --min-quality, --min-complexity, --min-architecture, --min-style来定义 PHP Insights。

如果最小层级不可达,控制台会返回错误信息:

./vendor/bin/phpinsights --no-interaction --min-quality=80 --min-complexity=90 --min-architecture=75 --min-style=95

# Within Laravel

php artisan insights --no-interaction --min-quality=80 --min-complexity=90 --min-architecture=75 --min-style=95

注意:--no-interaction 参数可以用来避免 CI 进入交互过程。

其他的参数都是可选的,如果你指向聚焦样式,可以通过添加 --min-style 参数即可。

下载地址:https://github.com/nunomaduro/phpinsights

2、YAY!(高级 PHP 预处理器)

YAY! 是一个基于高级 parser combinator 的 PHP 预处理器,让使用者可以用 PHP 来扩充 PHP。这意味着语言特性可以作为 composer packages 来分发,并且只需基于宏的实现能以纯 PHP 代码快速实现。

安装:

composer require yay/yay:dev-master

使用(命令行):

yay some/file/with/macros.php >> target/file.php

运行模式:

“runtime”模式是W.I.P,它将使用流包装程序以及作曲家集成功能来预处理每个包含的文件。它可能支持opcache/缓存,因此仅在需要时才对文件进行预处理/扩展。

下载地址:https://github.com/marcioAlmada/yay

3、PHPBrew(安装多版本 PHP 到用户根目录的工具)

PHP开发工具PHP Insights、YAY!、PHPBrew、polarphp介绍

PHP开发工具PHP Insights、YAY!、PHPBrew、polarphp介绍

phpbrew 是一个构建、安装多版本 PHP 到用户根目录的工具。

phpbrew 能做什么?

配置选项简化为「Variants」,无需担心路径问题。

支持使用 PDO,mysql,sqlite,debug 等不同「Variants」编译 PHP。

针对不同版本,分别编译 apache php 模块,互不冲突。

无需 root 权限将 PHP 安装到用户根目录。

集成至 bash/zsh shell 等,易于切换版本。

支持自动特性检测。

易于安装、启用 PHP 扩展。

支持在系统环境下安装多个 PHP。

路径检测针对 HomeBrew 以及 MacPorts 进行了优化。

安装需求:

确保已安装依赖包的开发版本用于编译 PHP。

安装:

curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew

chmod +x phpbrew

# Move phpbrew to somewhere can be found by your $PATH

sudo mv phpbrew /usr/local/bin/phpbrew

开始使用:

接下来,我们假定你有充足的时间来学习,这将会是一个循序渐进的教程——教你如何配置 phpbrew。

初始设置:

首先,初始化 Bash Shell 脚本:

phpbrew init

接着在 .bashrc 或 .zshrc 文件增加如下行:

[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc

对于 Fish shell 用户,在 ~/.config/fish/config.fish 文件增加如下行:

source ~/.phpbrew/phpbrew.fish

若需要在系统全局(非用户目录)使用 phpbrew,请设置共享的 phpbrew 根目录,例如:

mkdir -p /opt/phpbrew

phpbrew init --root=/opt/phpbrew

库路径设置:

其次,请设置用于查找库文件的默认前缀,可选值有 macports,homebrew,debian,ubuntu 或是自定义路径。

对于 Homebrew 用户:

phpbrew lookup-prefix homebrew

对于 Macports 用户:

phpbrew lookup-prefix macports

基础用法:

列出已知 PHP 版本:

phpbrew known

7.0: 7.0.3, 7.0.2, 7.0.1, 7.0.0 ...

5.6: 5.6.18, 5.6.17, 5.6.16, 5.6.15, 5.6.14, 5.6.13, 5.6.12, 5.6.11 ...

5.5: 5.5.32, 5.5.31, 5.5.30, 5.5.29, 5.5.28, 5.5.27, 5.5.26, 5.5.25 ...

5.4: 5.4.45, 5.4.44, 5.4.43, 5.4.42, 5.4.41, 5.4.40, 5.4.39, 5.4.38 ...

5.3: 5.3.29, 5.3.28 ...

列出更多次要版本:

$ phpbrew known --more

刷新 PHP 发布信息:

$ phpbrew update

刷新旧版本(低于5.4):

请注意:我们不保证能够正确编译 PHP 官方停止维护的版本,请不要提交关于编译旧版本的 Issus,此类 Issue 将不会修复。

$ phpbrew update --old

列出已知的旧版本(低于5.4):

$ phpbrew known --old

编译属于你的 PHP:

使用默认参数编译安装 PHP 非常简单:

$ phpbrew install 5.4.0 +default

这里我们推荐使用已包含绝大多数公共参数的 default(默认)参数集合。如果你需要「最小安装」,删掉default执行即可。

你可以使用-j或--jobs选项启用并行编译,例如:

$ phpbrew install -j $(nproc) 5.4.0 +default

编译完成后执行测试用例:

$ phpbrew install --test 5.4.0

测试环境,且包含调试信息:

$ phpbrew -d install --test 5.4.0

安装旧版本(低于5.3):

$ phpbrew install --old 5.2.13

安装给定主要版本的最新次要版本:

$ phpbrew install 5.6

安装预览版本:

$ phpbrew install 7.2.0alpha1

$ phpbrew install 7.2.0beta2

$ phpbrew install 7.2.0RC3

通过指定的 GitHub tag 或 branch 安装:

$ phpbrew install github:php/php-src@PHP-7.2 as php-7.2.0-dev

安装下一个(非稳定)版本:

$ phpbrew install next as php-7.3.0-dev

清除编译目录:

$ phpbrew clean php-5.4.0

Variants:

PHPBrew 已经将配置选项整理、合并为「Variants」,你只需简单地指定某个 Variant 即可,phpbrew 会自动在配置过程中检测引用目录、编译选项等。

PHPBrew 提供默认的 Variant,以及一些虚拟 Variants。「Default Variant」包含绝大多数公共 Variants,「Virtual Variants」可包含多个 Variants,使用一个虚拟 Variant 即可一次性启用多个 Variants。

只需执行variants子命令,即可列出它们:

$ phpbrew variants

Variants:

  all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, curl, dba, debug, dom,

  dtrace, editline, embed, exif, fileinfo, filter, fpm, ftp, gcov, gd,

  gettext, gmp, hash, iconv, icu, imap, inifile, inline, intl, ipc, ipv6,

  json, kerberos, libgcc, mbregex, mbstring, mcrypt, mhash, mysql, opcache,

  openssl, pcntl, pcre, pdo, pgsql, phar, phpdbg, posix, readline, session,

  soap, sockets, sqlite, static, tidy, tokenizer, wddx, xml, xml_all, xmlrpc,

  zip, zlib, zts

Virtual variants:

  dbs:        sqlite, mysql, pgsql, pdo

  mb:         mbstring, mbregex

  neutral:

  small:      bz2, cli, dom, filter, ipc, json, mbregex, mbstring, pcre, phar,

              posix, readline, xml, curl, openssl

  default:    bcmath, bz2, calendar, cli, ctype, dom, fileinfo, filter, ipc,

              json, mbregex, mbstring, mhash, mcrypt, pcntl, pcre, pdo, phar,

              posix, readline, sockets, tokenizer, xml, curl, openssl, zip

  everything: dba, ipv6, dom, calendar, wddx, static, inifile, inline, cli,

              ftp, filter, gcov, zts, json, hash, exif, mbstring, mbregex,

              libgcc, pdo, posix, embed, sockets, debug, phpdbg, zip, bcmath,

              fileinfo, ctype, cgi, soap, pcntl, phar, session, tokenizer,

              opcache, imap, tidy, kerberos, xmlrpc, fpm, dtrace, pcre, mhash,

              mcrypt, zlib, curl, readline, editline, gd, intl, icu, openssl,

              mysql, sqlite, pgsql, xml, xml_all, gettext, iconv, bz2, ipc, gmp

Using variants to build PHP:

  phpbrew install php-5.3.10 +default

  phpbrew install php-5.3.10 +mysql +pdo

  phpbrew install php-5.3.10 +mysql +pdo +apxs2

  phpbrew install php-5.3.10 +mysql +pdo +apxs2=/usr/bin/apxs2

在 Variant 前添加+前缀,代表启用此 Variant,例如:

+mysql

在 Variant 前添加-前缀,代表禁用此 Variant,例如:

-mysql

举个例子,假设你使用默认 Variant,并且需要启用数据库支持(mysql,sqlite,postgresql)编译 PHP,只需执行:

$ phpbrew install 5.4.5 +default+dbs

也可以:

$ phpbrew install 5.3.10 +mysql+sqlite+cgi

$ phpbrew install 5.3.10 +mysql+debug+pgsql +apxs2

$ phpbrew install 5.3.10 +pdo +mysql +pgsql +apxs2=/usr/bin/apxs2

将 pgsql (PostgreSQL) 扩展编译进 PHP:

$ phpbrew install 5.4.1 +pgsql+pdo

若你的 Mac 上已经安装 postgresql,也可以指定特定目录编译 pgsql 扩展:

$ phpbrew install 5.4.1 +pdo+pgsql=/opt/local/lib/postgresql91/bin

pgsql 的路径即为pg_config所在目录,你可以在/opt/local/lib/postgresql91/bin找到它。

另外,你可以使用名为neutral的 Variant 来纯净编译 PHP:

$ phpbrew install 5.4.1 +neutral

neutral意味着 phpbrew 不会增加包括--disable-all在内的任何额外编译参数,但部分用于安装pear的参数(例如--enable-libxml)依旧会被添加。

拓展配置选项:

如果想要传递更多拓展配置变量,你可以这么做:

$ phpbrew install 5.3.10 +mysql +sqlite -- \

 --enable-ftp --apxs2=/opt/local/apache2/bin/apxs

切换 PHP 版本:

临时切换 PHP 版本:

$ phpbrew use 5.4.22

切换默认 PHP 版本:

$ phpbrew switch 5.4.18

关闭 phpbrew:

$ phpbrew off

若需要启用 Apache PHP 模块,请注释或移除以下设置项:

$ sudo vim /etc/httpd/conf/httpd.conf

# LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.21.so

# LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.20.so

配置 php.ini:

配置当前 PHP 版本的 php.ini 文件,只需执行如下命令即可:

$ phpbrew config

如需切换编辑器,可执行如下命令指定 EDITOR 环境变量:

export EDITOR=vim

phpbrew config

升级 phpbrew:

执行 self-update 即可从 GitHub 的 master 分支安装 phpbrew 最新版本。

$ phpbrew self-update

已安装的 PHP:

列出已安装的 PHP:

$ phpbrew list

你可以在 ~/.phpbrew/php 目录找到已安装的 PHP。例如,5.4.20 版本位于:

~/.phpbrew/php/5.4.20/bin/php

你可以手动修改其 php.ini:

~/.phpbrew/php/5.4.20/etc/php.ini

而 PHP 扩展的配置文件位于:

~/.phpbrew/php/5.4.20/var/db

~/.phpbrew/php/5.4.20/var/db/xdebug.ini

~/.phpbrew/php/5.4.20/var/db/apc.ini

~/.phpbrew/php/5.4.20/var/db/memcache.ini

等等。

一键切换目录:

切换至 PHP 编译目录:

$ phpbrew build-dir

切换至 PHP dist 目录:

$ phpbrew dist-dir

切换至 PHP etc 目录:

$ phpbrew etc-dir

切换至 PHP var 目录:

$ phpbrew var-dir

PHP FPM:

phpbrew 内置一些有用的命令用于管理 php-fpm。使用它们之前,请确认在 PHP 编译时启用了 +fpm。

启动 php-fpm:

$ phpbrew fpm start

停止 php-fpm:

$ phpbrew fpm stop

列出 php-fpm 模块:

phpbrew fpm module

测试 php-fpm 配置:

phpbrew fpm test

编辑 php-fpm 配置:

phpbrew fpm config

已安装的 php-fpm 位于 ~/.phpbrew/php/php-*/sbin 目录。

对应的 php-fpm.conf 文件位于 ~/.phpbrew/php/php-*/etc/php-fpm.conf.default 目录。

你可以把默认配置复制到自定义路径再使用,例如:

cp -v ~/.phpbrew/php/php-*/etc/php-fpm.conf.default

~/.phpbrew/php/php-*/etc/php-fpm.conf

php-fpm --php-ini {php config file} --fpm-config {fpm config file}

安装拓展应用:

phpbrew 内置了用来获取部分 PHP 应用的 app 命令。

安装 Composer:

$ phpbrew app get composer

安装 PHPUnit:

phpbrew app get phpunit

启用版本信息 Prompt:

使用"PHPBREW_SET_PROMPT=1"变量可将 PHP 版本信息加入 Shell Prompt。

此变量默认值为"PHPBREW_SET_PROMPT=0"(即禁用),将如下行加入~/.bashrc文件,确保其在source ~/.phpbrew/bashrc之前,即可启用此功能:

export PHPBREW_SET_PROMPT=1

使用.phpbrew/bashrc内定义的phpbrew_current_php_version函数,可将版本信息嵌入到 Shell Prompt。你可以将版本信息设置到 PS1 变量内,例如:

PS1=" \$(phpbrew_current_php_version) \$ "

已知问题:

对于 PHP-5.3+ 版本,"Building intl 64-bit fails on OS X" https://bugs.php.net/bug.php?id=48795

将 GD 扩展编译进 PHP,你需要指定 libpng 目录、libjpeg 目录,例如:

$ phpbrew install php-5.4.10 +default +mysql +intl +gettext +apxs2=/usr/bin/apxs2 

-- --with-libdir=lib/x86_64-linux-gnu 

--with-gd=shared 

--enable-gd-natf 

--with-jpeg-dir=/usr 

--with-png-dir=/usr

常见问答:

Q:如何使用不同的参数编译相同 PHP 版本?

A:截至目前,你可以安装 php-5.x.x 并重命名其目录 /Users/phpbrew/.phpbrew/php/php-5.x.x(例如:php-5.x.x-super),并安装另一个 php5.x.x。

下载地址:https://github.com/phpbrew/phpbrew

4、polarphp(新的 PHP 语言编译器和运行时)

为什么要做 polarphp 项目:

随着Go和NodeJS的强势崛起,PHP的市场份额逐渐被蚕食,而PHP官方仍然坚守在Web编程领域,有些东西越是想守住就越守不住。polarphp借鉴NodeJS和Go的相关特性对zendVM重新封装,去掉PHP一些古老弃用的特性和强Web属性,通过实现一套新的运行时框架libpdk,将PHP语言打造成为一门真正的通用性脚本语言,赋能PHP,让其拥有异步编程,协程,线程,内置的unicode支持,标准的文件IO等等特性,让PHP程序员不仅仅能做web应用,也能从容面对真正的服务端应用。polarphp不是一门新的语言,而是PHP语言的一种运行时容器。

主要特性:

兼容最新的PHP语言标准,移除废弃语言特性。

内置unicode字符标准支持。

全功能型运行时库支持,支持异步编程,多线程和协程等等编程模式。

内置包管理器。

内置文档生成器。

开发计划:

因为开发资源有限,开发计划暂定如下:

使用cmake对zend VM进行编译,生成polarphp定制版的PHP语言虚拟机。

语言支持项目,语言测试框架,移植LLVM项目的lit测试框架。

实现polarphp驱动程序,实现从命令行执行PHP代码。

对polarphp虚拟机进行回归测试,暂定跑通PHP的语言虚拟机相关回归测试。

实现polarphp的内置函数。

发布核心虚拟机的docker镜像。

整合libpdk运行时框架。

实现人性化安装,尽量以最少的步骤进行polarphp的安装。

实现包管理器。

实现语言配套小工具,比如文档生成工具等等。

重要的特性详细解说:

类似 JDK 的面向对象设计:我们使用面向对象的风格去设计,采用类似 JDK 的方式去重新组织 PHP 函数,接口和类。给 PHP 开发者提供一套设计良好并且值得信赖的编程接口,同时我们完全兼容 PHP 语言本身的语法和语义,让开发使用熟悉的感觉去开发。

原生多线程支持:默认开启虚拟机多线程支持,提供标准的线程相关的操作原语支持,如线程创建,线程同步以及针对线程的并发编程模式的封装,让您在 PHP 中使用多线程来提高应用程序的性能同时又不过多的增加编程的复杂度。

高性能:polarphp 容器和标准库使用现代的 C++ 语言进行开发,同时从一些开源项目借鉴了很多设计理念,标准库内核使用大家推崇异步编程架构,然后将操作系统和 C++ 标准库的功能开放给 PHP 空间,从而提升 PHP 应用程序的性能。

完善文档支持:一个好的开源项目文档必须完善,polarphp 会在官网上给开发者提供完善的标准库用户手册和 API 编程文档,让您快速学习上手,从容的掌握每一个设计细节。

基于 C++17 标准开发:polarphp 运行时和标准库本身是一个比较大的 C++ 项目,我们在实现的时候特别注意项目的架构设计,代码的阅读性以及项目的可维护性,C++17 标准的很多特性能够帮助我们实现这些设计目标,从而带给内核开发者以及 PHP 用户空间一个可以依赖的代码基础。

开放源代码:polarphp 是一个采用 Apache Licence 2.0 协议的开源项目,源代码托管在 github 和 gitee 平台,您可以放心的部署 polarphp 运行时并且在其基础上运行 PHP 应用程序,一切都是自由的。

克隆polarphp项目库:

git clone https://github.com/polarphp/polarphp.git

cd polarphp

git submodule init

git submodule update

git checkout v0.0.1-alpha

下载地址:https://gitee.com/polarphp/polarphp

注明

以上就是PHP开发工具PHP Insights、YAY!、PHPBrew、polarphp的介绍内容,这些PHP开发工具都能使用在Linux操作系统中。

栏目相关文章