immonex / wp-free-plugin-core

免费 immonex WordPress 插件的共享基本功能


README

immonex Open Source Software

immonex WP Free Plugin Core

这个轻量级的 PHP 库 为免费的 immonex WordPress 插件 提供共享的基本功能,例如:

  • 一致的初始化
  • CSS 和 JS 文件的自动加载
  • 选项处理/共享设置页面
  • 地理编码
  • 简单的模板
  • 特殊字符串检查和操作
  • 颜色计算

immonex® 是一个涵盖各种 房地产相关软件 解决方案和服务的品牌,主要针对德语国家/用户。

安装

通过 Composer

$ composer require immonex/wp-free-plugin-core

基本用法

在大多数情况下,将使用模板脚本来启动基于此库的插件开发。无论如何,这里有一个基本的示例...

示例插件文件夹

myimmonex-example-plugin
├── includes
│   └── class-example-plugin.php
├── languages
├── [vendor]
├── autoload.php
├── composer.json
└── myimmonex-example-plugin.php

通过基于 Composer 的安装,插件核心库被添加到 composer.json 中的 require 部分

    "require": {
        "immonex/wp-free-plugin-core": "^1.9.6"
    },

myimmonex-example-plugin.php主要插件文件,其中包含中心自动加载文件,并实例化主要插件对象

require_once __DIR__ . '/autoload.php';

$myimmonex_example_plugin = new My_Plugin( basename( __FILE__, '.php' ) );
$myimmonex_example_plugin->init();

主要插件类 位于 includes/class-example-plugin.php 文件中。它派生自最新的 核心基类

class Example_Plugin extends \immonex\WordPressFreePluginCore\V1_9_6\Base {

	const
		PLUGIN_NAME = 'My immonex Plugin',
		PLUGIN_PREFIX = 'myplugin_',
		PUBLIC_PREFIX = 'myplugin-',
		PLUGIN_VERSION = '1.1.0',
		OPTIONS_LINK_MENU_LOCATION = 'settings';

	...

} // class Example_Plugin

就这些!

基于文件夹的版本控制

通常,src 文件夹包含最新开发(DEV_[0-9]+)和产品发布(VX_X_X)版本的“版本分支”文件夹。它还可以选择包含多个产品发布文件夹。

src
├── DEV <────┐ Development Branch (DB), NS: immonex\WordPressFreePluginCore\DEV
├── V1_0_0   │ optional PB
├── V1_1_0   │ optional PB
└── V1_1_7 ──┘ Latest Production Branch (PB), NS: immonex\WordPressFreePluginCore\V1_1_7

文件夹名称也是包含文件中相关 PHP 命名空间的一部分,例如 immonex\WordPressFreePluginCore\V1_0_1

可以在 DEV 文件夹的文件夹名称和类命名空间中添加任意数量的数字和一个下划线,以确保在开发期间唯一性,例如 immonex\WordPressFreePluginCore\DEV12_3

使用此库的插件的 公共(产品)发布 总是引用最新的 产品分支

背景

可能需要不同版本的内核库的多个 immonex 插件可以同时在一个 WordPress 安装 中激活。由于这些插件是更多或更少的独立组件,Composer 依赖项管理在这里不起作用。因此:每个插件都必须确保使用的内核库文件与所需版本完全匹配。

此库提供的 自动加载链 避免了可能发生的兼容性问题,例如,如果另一个活动的 immonex 插件已加载了不兼容的版本。

开发

要求

设置

设置简单的开发环境首先是从克隆此存储库开始,并安装依赖项

$ cd ~/projects
$ git clone git@github.com:immonex/wp-free-plugin-core.git immonex-wp-free-plugin-core
$ cd immonex-wp-free-plugin-core
$ npm install
$ composer install

⚠️ PHP_CodeSniffer 和相关的 WP sniffs 不是默认依赖项,并且应全局安装

Git

PHP 兼容性

5.6+(预计未来版本将切换到 7.6+)

编码标准

源代码格式遵循WordPress PHP编码标准

源文件可以使用PHP_CodeSniffer进行检查(如推荐,全局安装,详情请见此处

$ phpcs

尽可能自动修复违规行为

$ phpcbf

API文档

基于源码的API文档可以使用以下命令生成,并在之后的apidoc文件夹中可用

$ npm run apidoc

使用本地web服务器查看

$ npm run apidoc:view

如果这些文档不再需要,可以使用此命令删除相应的文件夹

$ npm run apidoc:delete

apidoc文件夹是用于本地的,它不应该成为任何仓库的一部分。)

测试

本地运行单元测试(通常需要一个临时的WordPress安装,请参考make.wordpress.org上的信息)。要使用此仓库中包含的测试安装脚本,需要首先创建包含本地测试数据库凭证的.env文件(请参考.env.example)。

之后,可以安装临时测试环境

$ npm run test:install

tests文件夹中运行测试

$ npm run test

翻译

本库的核心类只包括一些必须翻译的字符串。作为本库一部分分发的翻译(PO/MO文件)位于版本分支目录的languages子文件夹中。这些文件夹还包含一个当前的POT文件,作为自定义翻译的基础,可以使用以下命令更新。

$ npm run pot

可以使用以下命令在所有开发和生产文件夹中创建WP本地化de_DE_formalde_ATde_CHch_CH_informal的默认翻译文件(MO/de_DE)的副本

$ npm run copy-mo

(现有的翻译文件将不会覆盖。)

许可证

GPLv2或更高版本

版权(C)2014,2020 inveris OHG / immonex

此库是自由软件;您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它;许可证的第2版,或(根据您的选择)任何更高版本。

此库的发布是希望它将是有用的,但没有任何保证;甚至没有对适销性或特定用途适用性的暗示保证。有关更多详情,请参阅GNU通用公共许可证。