forme/base

Forme base 服务器设置

安装: 462

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 0

开放问题: 0

语言:Shell

类型:项目

v2.3.0 2024-07-12 08:06 UTC

This package is auto-updated.

Last update: 2024-09-12 08:44:27 UTC


README

Forme Base

Forme 框架基础服务器项目模板,用于本地开发和服务器部署。

点击此处查看文档

描述

它在范围上与 Bedrock 很相似,但有一些不同的哲学。

主要目标是

  1. 为 Forme WordPress 项目提供一个易于使用的模板。
  2. 将 WordPress 放入 public 网站根目录,但其他方面保持标准 WP 文件夹结构不变。
  3. 使用 composer 管理WordPress 插件、WordPress 主题和通用 PHP 库,但 NOT WordPress 本身,除了初始安装。
  4. 不是单一仓库。它旨在成为你 WordPress 项目的 部分。你的自定义主题和插件本身应该存在于它们自己的独立 git 仓库中,并最终通过 Packagist 或 Satis 仓库提供给 composer。
  5. 利用 npm 工作空间,使我们能够跨所有主题和插件构建资源。

你可以用它来构建本地开发环境或用于部署。

要求

  • Unix 机器/虚拟机 - Mac 或 Ubuntu - Windows 不受支持。可能会稍微有点效果,但谁也不知道。
  • php 8.1 或更高版本
  • composer 2
  • wp cli 用于自动配置和安装
  • wget 和/或 curl 用于自动安装(如果没有 wp cli)
  • node v18(最好通过 nvm)

入门

您可以在本地机器上运行 composer create-project forme/base project-name 来创建一个新项目。这将

  1. public 文件夹中安装最新版本的 WordPress(需要 wp cli、curl 或 wget)
  2. 添加 wp-packagist composer 仓库
  3. 安装 wikimedia merge 插件,以便我们可以将插件和主题依赖项拉入主 vendor 文件夹
  4. 如果通过 composer 拉取,添加插件和主题的正确安装路径
  5. 安装 ACF(非专业版)
  6. 安装 Symfony var-dumper 组件
  7. 安装 Whoops 错误页面
  8. 安装 WP 调试栏
  9. 初始化 wp-config.php,包括提示您的数据库凭证、添加 FORME_PRIVATE_ROOT const、将 WP_ENV 设置为 development 并引入自动加载。(需要 wp cli)
  10. 创建一个空的 .env 文件
  11. 包含 package.json,包括基本工作空间配置

然后您可能想要

  • 根据需要编辑 .env
  • 使用 composer 安装您需要的任何现有插件或主题,或将本地工作链接到 wp-content 并运行 composer update
  • 运行 git init 并在开发期间将其保持在版本控制中
  • 在浏览器或通过 wp-cli 以通常方式设置您的 WordPress 网站

您可能需要在第一次安装依赖于合并插件功能的插件或主题之前删除 composer.lock

部署

在服务器上,通常需要

  • 将您的仓库 git clone 到新目录
  • 进入目录并运行 composer setup-wordpress
  • 运行 composer install 和您需要的任何其他本地脚本
  • public/wp-config.php 中的 WP_ENV 更改为 development 之外的内容
  • 运行 composer init-dotenv 并填写
  • 使 public 成为网站根目录,或将 public 链接到您现有的网站根路径

脚本

以下自定义脚本可通过composer使用。

  • composer install-wordpress - 在public文件夹中安装最新版本的WordPress。
  • composer configure-wordpress - 初始化wp-config.php,包括添加FORME_PRIVATE_ROOT常量,将WP_ENV设置为development
  • composer require-autoload - 在wp-config.php中添加require autoload
  • composer init-dotenv - 将.env.example复制到.env
  • composer setup-wordpress - 运行上述所有四个脚本

create-project时,post-root-package-install钩子运行setup-wordpressinit-dotenv(即上述所有内容)

在安装和更新时,post-install-cmdpost-update-cmd钩子运行npm i --omit=dev && npm run build -ws。您可能想在本地机器上禁用此功能,特别是如果您没有创建开发主题和插件的符号链接,因为每次composer更新时它都会运行。

工作区

npm Workspaces允许我们在所有插件和主题中从服务器根目录安装node包和运行资源构建,或者更具体地说,目录名以-plugin-theme结尾的(如Forme的默认设置),并且具有定义任何必要npm命令的package.json。主要的node_modules目录应在根仓库目录中。

需要注意的是,这一切都是天真地运行的,因此如果您安装了一些以-plugin-theme结尾的第三方插件或主题,它们包含npm脚本,它们将运行,这可能不是您想要的。如果您需要更改配置,请查看package.json

npm install --omit=dev将在所有匹配的主题和插件中运行。

npm run build -ws将在所有匹配的主题和插件中运行build

这些命令应在composer更新/安装时自动运行,但您也可以直接运行它们。

Valet Driver

如果您使用Valet进行本地开发,我们为此提供了一种驱动程序。如果您还没有这样做,应将此复制到您的本地valet配置中

cp utils/FormeServerValetDriver.php ~/.config/valet/Drivers/FormeServerValetDriver.php

Wikimedia Merge Plugin

配置了wikimedia/composer-merge-plugin插件以查找目录名分别以-plugin-theme结尾的插件和主题。这是forme插件和主题项目的当前默认命名模式,但如果需要,您可以更改此逻辑。

它天真地匹配,因此即使是在forme项目中,如果您恰好使用了一个以-plugin-theme结尾的插件或主题,您可能希望配置它不同(或者您可以直接将其目录名更改为其他名称)

Inlined Composer

如果您出于某种原因有现有的vanilla WordPress安装,并且只想设置好一切以便可以使用Forme框架,或者甚至只想使用composer管理您的WordPress项目依赖项,您可以将utils/composer.json复制到您的项目根目录中。再次强调,这比公共Web根目录高一级。

如果您的Web根目录不叫public,您可能需要编辑此文件,只需运行查找和替换即可。

此版本的composer.json文件包含与根版本相同的脚本,但内联而不是依赖于任何外部文件。它主要包含方便性 - 这意味着您可以只复制此单个文件到另一个项目中,而不用担心这里的任何其他目录和文件,并且仍然可以访问上面列出的命令。

它由scripts/inline_composer.sh生成 - 如果您在修改或分叉此存储库并需要添加其他shell脚本以进行内联,请查看那里。