shineunited/wordpress-installer

基于Conductor的WordPress安装程序。

安装次数: 2 851

依赖项: 4

建议者: 0

安全: 0

星标: 0

关注者: 5

分支: 0

开放问题: 0

类型:composer-plugin

1.0.0 2023-01-03 19:18 UTC

This package is auto-updated.

Last update: 2024-08-30 01:38:23 UTC


README

License Latest Version PHP Version Main Status Release Status Develop Status

描述

使用Conductor构建的WordPress安装程序。

安装

要添加wordpress-installer,推荐的方法是通过composer。

$ composer require shineunited/wordpress-installer

配置

WordPress安装程序使用Conductor配置框架解析项目composer.json文件“extra”部分的参数。

参数

可配置参数

以下参数可以在composer.json文件的“extra”部分定义。

wordpress.webroot

(路径) Webroot目录的路径。默认为'web'。

wordpress.home-dir

(路径) WordPress主目录的路径,用于定义WP_HOME和WP_SITEURL。必须在webroot内。默认为 '{$wordpress.webroot}'。

wordpress.install-dir

(路径) WordPress安装目录的路径。必须在home-dir内。默认为 '{$wordpress.home-dir}/wp'。

wordpress.config-dir

(路径) 部署配置目录的路径。必须在webroot外。默认为'cfg'。

wordpress.content-dir

(路径) WordPress内容目录的路径。必须在home-dir内但不在install-dir内。默认为 '{$wordpress.home-dir}/app'。

wordpress.config.convert-bool

(布尔值) 如果为true,布尔环境配置变量将自动转换。默认为true。

wordpress.config.convert-null

(布尔值) 如果为true,null环境配置变量将自动转换。默认为true。

wordpress.config.convert-int

(布尔值) 如果为true,整数环境配置变量将自动转换。默认为true。

wordpress.config.strip-quotes

(布尔值) 如果为true,字符串环境配置变量将自动移除引号。默认为true。

wordpress.config.source

(选择) 必须是 'env', 'server' 或 'local' 之一。定义环境配置变量的来源。默认为false (无)。

  • 'env' - 从 $_ENV 中获取
  • 'server' - 从 $_SERVER 中获取
  • 'local' - 使用带本地标志的getenv()
  • (无) - 使用getenv()
wordpress.config.default-env

(选择) 定义默认环境名称,如果环境未在其它地方显式定义则使用。必须是 'production', 'staging' 或 'development'。默认为 'production'。

计算参数

以下参数可用于使用,但不能在项目的composer.json文件中覆盖。

wordpress.wpconfig-dir

(路径) wp-config.php文件将创建的目录路径。锁定在install-dir的上级目录。

wordpress.muplugins-dir

(路径) WordPress mu-plugins目录的路径。锁定在 '{$wordpress.content-dir}/mu-plugins'。

wordpress.plugins-dir

(路径) WordPress插件目录的路径。锁定在 '{$wordpress.content-dir}/plugins'。

wordpress.themes-dir

(路径) WordPress主题目录的路径。锁定在 '{$wordpress.content-dir}/themes'。

wordpress.uploads-dir

(路径) WordPress上传目录的路径。锁定在 '{$wordpress.content-dir}/uploads'。

wordpress.upgrade-dir

(路径) WordPress升级目录的路径。锁定在 '{$wordpress.content-dir}/upgrade'。

示例

{
	"name": "example/project",
	"type": "project",
	"extra": {
		"wordpress": {
			"webroot": "web",
			"install-dir": "web/wp",
			"content-dir": "web/app",
			"config-dir": "cfg",
			"config": {
				"source": "server",
				"default-env": "production"
			}
		}
	}
}

用法

扩展提供者能力

可以通过composer插件通过扩展提供者能力添加WordPress配置的扩展。

示例插件

插件必须实现Capable并提供扩展提供者能力。

<?php

namespace Example\Project;

use Composer\Composer;
use Composer\IO\IOInterface;
use ShineUnited\WordPress\Installer\Capability\ExtensionProvider;

class ComposerPlugin implements PluginInterface, Capable {

	public function activate(Composer $composer, IOInterface $io): void {
		// ...
	}

	public function deactivate(Composer $composer, IOInterface $io): void {
		// ...
	}

	public function uninstall(Composer $composer, IOInterface $io): void {
		// ...
	}

	public function getCapabilities(): array {
		return [
			ExtensionProvider::class => ExampleExtensionProvider::class
		];
	}
}

示例提供者

提供者必须实现该能力,并返回一个ExtensionInterface对象列表。

<?php

namespace Example\Project;

use ShineUnited\WordPress\Installer\Capability\ExtensionProvider;
use ShineUnited\WordPress\Installer\Extension\BeforeInitExtension;
use ShineUnited\WordPress\Installer\Extension\AfterInitExtension;
use ShineUnited\WordPress\Installer\Extension\BeforeEnvExtension;
use ShineUnited\WordPress\Installer\Extension\AfterEnvExtension;

class ExampleExtensionProvider implements ExtensionProvider {

	public function getExtensions(): array {
		return [
			new BeforeInitExtension('inc/before-init.php'), // include before init config
			new AfterInitExtension('inc/after-init.php'), // include after init config
			new BeforeEnvExtension('inc/before-env.php'), // include before env config
			new AfterEnvExtension('inc/after-env.php'), // include after env config
		];
	}
}