sematico / wp-phpscoper
Requires
- nikic/php-parser: ^5.0
- symfony/console: ^7.1
- symfony/process: ^7.1
Requires (Dev)
README
此包提供了一种针对 WordPress 插件的 PHP-Scoper 配置。内置 CLI 命令可生成排除项并安装 php-scoper。
此包是为我的个人项目构建的,并已开源,希望对他人有所帮助。
📦 安装
转到您的 WordPress 插件文件夹,并运行以下命令
composer require sematico/wp-phpscoper --dev
这将安装此包并将 php-scoper
二进制文件添加到项目文件夹的 vendor/bin
目录中。
📝 使用方法
设置
要安装 php-scoper,请运行以下命令
vendor/bin/wp-phpscoper setup
这将运行特定的 composer 命令来安装 php-scoper。
排除项
要生成排除项,请运行以下命令
vendor/bin/wp-phpscoper generate:exclusions
这将生成 php-scoper 的排除项列表。按照提示选择要生成的排除项类型。
关于排除项
排除项生成在项目根目录的 .phpscoper
文件夹中。排除项文件是包含应排除的类、函数和常量的 JSON 文件。
当前支持的排除项有
WordPress
WordPress
WordPress 排除项是通过使用 php-stubs/wordpress-globals
和 php-stubs/wordpress-stubs
包生成的。您的插件必须安装这些包才能生成排除项。
如果尝试为未安装这些包的插件生成排除项,将会出现错误。
⚙️ Scoper 配置
此包提供了一个 Configurator
类,可用于生成 scoper 配置文件。
<?php declare(strict_types=1); use Sematico\Scoper\Configurator; require_once __DIR__ . '/../vendor/sematico/wp-phpscoper/src/Modules/Support/Manager.php'; require_once __DIR__ . '/../vendor/sematico/wp-phpscoper/src/Modules/Support/PackageInterface.php'; require_once __DIR__ . '/../vendor/sematico/wp-phpscoper/src/Modules/Support/AbstractSupported.php'; require_once __DIR__ . '/../vendor/sematico/wp-phpscoper/src/Modules/Support/WordPress.php'; require_once __DIR__ . '/../vendor/sematico/wp-phpscoper/src/Configurator.php'; $configurator = new Configurator( 'MyProject' ); $finder = $configurator::makeFinder( [ 'vendor/psr/container', 'vendor/php-di/php-di', ], ); $configurator->addFinder( $finder ); return $configurator->getScoperConfiguration();
注意 要使用
Configurator
类及其依赖项,必须手动引入。
Configurator::makeFinder()
makeFinder()
方法接收一个供应商路径数组,并返回一个可用来在指定路径中查找 PHP 文件的 Finder
实例。
$finder = $configurator::makeFinder( [ 'vendor/psr/container', 'vendor/php-di/php-di', ], );
有关如何使用 makeFinder()
方法的更多信息,请参阅源代码。
Configurator::addFinder()
addFinder()
方法接收一个 Finder
实例并将其添加到用于查找 PHP 文件的查找器列表中。
$finder = $configurator::makeFinder( [ 'vendor/psr/container', 'vendor/php-di/php-di', ], ); $configurator->addFinder( $finder );
Configurator::getScoperConfiguration()
getScoperConfiguration()
方法返回一个可用于配置 php-scoper 的数组。有关配置选项的更多信息,请参阅 php-scoper 文档。
📄 致谢
❔ 支持
请注意,这是一个个人项目,支持将仅限于错误报告和轻微问题。
🚨 安全问题
如果您发现安全漏洞,请通过电子邮件 alessandro.tesoro@icloud.com 报告。所有安全漏洞都将得到及时处理。
🔖 许可证
在 MIT 许可证下分发。有关更多信息,请参阅 LICENSE
。