shineunited/wordpress-installer 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

shineunited/wordpress-installer

Composer 安装命令:

composer require shineunited/wordpress-installer

包简介

Conductor based WordPress installer.

README 文档

README

License Latest Version PHP Version Main Status Release Status Develop Status

Description

A WordPress installer built with Conductor.

Installation

to add wordpress-installer, the recommended method is via composer.

$ composer require shineunited/wordpress-installer

Configuration

The wordpress installer uses the Conductor configuration framework to parse parameters in the 'extra' section of the project's composer.json file.

Parameters

Configurable Parameters

The following parameters can be defined in the 'extra' section of the composer.json file.

wordpress.webroot

(path) Path to the webroot directory. Defaults to 'web'.

wordpress.home-dir

(path) Path to wordpress home directory, used to define WP_HOME and WP_SITEURL. Must be within the webroot. Defaults to '{$wordpress.webroot}'.

wordpress.install-dir

(path) Path to the wordpress installation directory. Must be within the home-dir. Defaults to '{$wordpress.home-dir}/wp'.

wordpress.config-dir

(path) Path to the deployments configuration directory. Must be outside of the webroot. Defaults to 'cfg'.

wordpress.content-dir

(path) Path to wordpress content directory. Must be inside the home-dir but outside of the install-dir. Defaults to '{$wordpress.home-dir}/app'.

wordpress.config.convert-bool

(boolean) If true boolean environment configuration variables will automatically be converted. Defaults to true.

wordpress.config.convert-null

(boolean) If true null environment configuration variables will automatically be converted. Defaults to true.

wordpress.config.convert-int

(boolean) If true integer environment configuration variables will automatically be converted. Defaults to true.

wordpress.config.strip-quotes

(boolean) If true string environment configuration variables will automatically have quotes stripped from them if found. Defaults to true.

wordpress.config.source

(select) Must be one of 'env', 'server', or 'local'. Defines where environment configuration variables come from. Defaults to false (none).

  • 'env' - pull from $_ENV
  • 'server' - pull from $_SERVER
  • 'local' - use getenv() with local flag
  • (none) - use getenv()
wordpress.config.default-env

(select) Defines the default environment name, used if environment is not defined explicitly elsewhere. Must be 'production', 'staging', or 'development'. Defaults to 'production'.

Calculated Parameters

The following parameters are available for use but cannot be overridden in the project's composer.json file.

wordpress.wpconfig-dir

(path) Path to directory where the wp-config.php file will be created. Locked to the directory above the install-dir.

wordpress.muplugins-dir

(path) Path to the wordpress mu-plugins directory. Locked to '{$wordpress.content-dir}/mu-plugins'.

wordpress.plugins-dir

(path) Path to the wordpress plugins directory. Locked to '{$wordpress.content-dir}/plugins'.

wordpress.themes-dir

(path) Path to the wordpress themes directory. Locked to '{$wordpress.content-dir}/themes'.

wordpress.uploads-dir

(path) Path to the wordpress uploads directory. Locked to '{$wordpress.content-dir}/uploads'.

wordpress.upgrade-dir

(path) Path to the wordpress upgrade directory. Locked to '{$wordpress.content-dir}/upgrade'.

Example

{
	"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"
			}
		}
	}
}

Usage

ExtensionProvider Capability

Extensions to the WordPress configuration can be added via the ExtensionProvider capability by composer plugins.

Example Plugin

The plugin must implement Capable and provide the ExtensionProvider capability.

<?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
		];
	}
}

Example Provider

The provider must implement the capability, and return a list of ExtensionInterface objects.

<?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
		];
	}
}

shineunited/wordpress-installer 适用场景与选型建议

shineunited/wordpress-installer 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5.54k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 11 月 16 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「wordpress」 「conductor」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 shineunited/wordpress-installer 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 shineunited/wordpress-installer 我们能提供哪些服务?
定制开发 / 二次开发

基于 shineunited/wordpress-installer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 5.54k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 15
  • 依赖项目数: 4
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 3
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-11-16