sematico/wp-phpscoper

0.1.0 2024-06-11 19:43 UTC

This package is auto-updated.

Last update: 2024-09-11 20:21:21 UTC


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-globalsphp-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