anchour/bedrock

此包已被弃用,不再维护。没有建议的替代包。

现代WordPress堆栈

安装: 75

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分叉: 1 148

开放问题: 0

类型:项目

1.4.4 2016-05-04 14:17 UTC

README

版本: 1.4.3

Bedrock 是一个现代 WordPress 堆栈,可以帮助您使用最佳的开发工具和项目结构开始。

这是 Roots 的分叉,修改后可以与通过 Laravel Forge 部署的网站一起使用。

这是用于什么的?

此包旨在与 Laravel Forge 一起使用。Forge 允许您配置主要用于与 Laravel 一起使用的服务器,但允许您部署任何您想要的真正任何内容。它预装了

  • Nginx
  • PHP 5.5
  • MySQL

等。

快速入门

运行 composer create-project anchour/bedrock <path>(有关更多详细信息,请参阅 安装/使用

功能

  • 使用 Composer 进行依赖项管理
  • 更好的文件夹结构
  • 使用特定于环境的文件轻松配置 WordPress
  • 使用 Dotenv 进行环境变量

要求

  • Git
  • PHP >= 5.3.2(用于 Composer)

安装/使用

有关以下步骤的更多详细信息,请参阅 文档

使用 create-project

Composer 的 create-project 命令将自动将 Bedrock 项目安装到目录中并运行 composer install

post-install-cmdpost-root-package-install 脚本将自动创建 .env 并提示您生成盐密钥。

注意:要无提示生成盐,请以 -n(非交互式)运行 create-project。您还可以在您的分叉中更改 composer.jsonconfig 中的 generate-salts 设置。默认值为 true

要完全跳过脚本,可以使用 --no-scripts 运行 create-project 来禁用它。

  1. 运行 composer create-project anchour/bedrock <path>path 是安装的文件夹)
  2. 添加主题
  3. http://example.com/wp/wp-admin 访问 WP Admin
  4. 将您的 Nginx 或 Apache vhost 设置为 /path/to/site/public/

手动

  1. 克隆/Fork 仓库
  2. 运行 composer install
  3. 添加主题
  4. http://example.com/wp/wp-admin 访问 WP Admin
  5. 将您的 Nginx 或 Apache vhost 设置为 /path/to/site/public/

文档

文件夹结构

├── composer.json
├── config
│   ├── environments
│   │   ├── development.php
│   │   ├── staging.php
│   │   └── production.php
│   └── application.php
├── Gemfile
├── vendor
└── web
    ├── app
    │   ├── mu-plugins
    │   ├── plugins
    │   └── themes
    ├── wp-config.php
    ├── index.php
    └── wp

Bedrock 的组织结构类似于将 WordPress 放在其自己的子目录中,但有一些改进。

  • 为了不在 webroot 中暴露敏感文件,Bedrock 将所需内容移动到 public/ 目录,包括供应商的 wp/ 源和 wp-content 源。
  • wp-content(或可能只是 content)已被命名为 app,以更好地反映其内容。它包含应用程序代码,而不仅仅是“静态内容”。
  • wp-config.php 仍然位于 public/,因为它是 WP 所必需的,但它只充当加载器。实际的配置文件已移动到 config/ 以便更好地分离。
  • vendor/ 是 Composer 管理的依赖项安装的位置。
  • wp/ 是 WordPress 核心的位置。它也由 Composer 管理,但由于 WP 的限制,不能将其放在 vendor 之下。

配置文件

public/wp-config.php 是 WordPress 所必需的,并且仅用于加载其他主要配置。不应将其添加到其中。

config/application.php 是主要配置文件,其中包含 wp-config.php 通常包含的内容。应在其中设置基本选项。

对于特定环境的配置,请使用 config/environments 下的文件。默认情况下有 developmentstagingproduction,但这些可以是您所需的任何内容。

环境配置需要在主要 application 配置之前,因此环境配置中的任何内容都优先于 application

注意:您不能在 PHP 中重新定义常量。因此,如果您在 application.php 中有一个基本设置,并且想在例如 production.php 中覆盖它,您有几个选项

  • 删除基本选项,并确保在每个需要的环境中都定义它
  • 如果尚未定义,请仅在 application.php 中定义常量。

不希望这样吗?

您将失去定义特定环境设置的能力。

  • 将所有配置移动到 wp-config.php
  • 手动处理特定环境的选项
  • 删除 config 目录

环境变量

PHP dotenv 用于加载 .env 文件。然后,所有变量都可通过 getenv$_SERVER$_ENV 在您的应用程序中使用。在 post-install-cmdpost-root-package-install 脚本中,将自动生成并在 .env 中设置您的盐值,当

  1. 不存在 .env 文件
  2. .env 文件存在,但没有任何内容。

Forge 的另一个好处是能够在 UI 中设置环境变量。所需的变量如下。

  • DB_USER
  • DB_NAME
  • DB_PASSWORD

.env 变量和在 UI 中设置的变量都可在 $_ENV 中使用。

不希望这样吗?

您将失去配置和代码之间的分离,并可能将安全凭证置于风险之中。

Composer

Composer 用于管理依赖项。Bedrock 将任何第三方库视为依赖项,包括 WordPress 本身以及任何插件。

请参阅这两篇博客以获取更详细的文档

屏幕录制($):使用Composer与WordPress结合

插件

WordPress Packagist 已在 composer.json 文件中注册,因此可以从 WordPress 插件目录 轻松要求任何插件。

要添加插件,请在 require 指令下添加它或从命令行使用 composer require <namespace>/<packagename>。如果是来自 WordPress Packagist,则命名空间始终为 wpackagist-plugin

示例:"wpackagist-plugin/akismet": "dev-trunk"

每次您添加新插件或更新 WP 版本时,请运行 composer update 以安装新包。

pluginsmu-plugins 默认由 Git 忽略,因为 Composer 管理它们。如果您想向那些文件夹添加一些不是由 Composer 管理的东西,则需要更新 .gitignore 以将其列入白名单

!public/app/plugins/plugin-name

注意:一些插件可能会在其指定范围之外创建文件或文件夹,甚至对 wp-config.phpapp 目录中的其他文件进行修改。这些文件应该添加到您的 .gitignore 文件中,因为它们由插件本身管理,而这些插件是通过 Composer 管理的。如果需要修改 wp-config.php,请将其移动到 config/application.php

更新WP和插件版本

更新您的 WordPress 版本(或任何插件)只是更改 composer.json 文件中的版本号的问题。

然后运行 composer update 将下载新版本。

主题

主题也可以由 Composer 管理,但只有在以下两种条件下才应这样做:

  1. 您使用的是不会进行任何修改的父主题
  2. 您想将主主题分离出来并作为独立包使用

在大多数情况下,我们建议不要做 #2,而是将主主题作为您的应用程序存储库的一部分。

就像插件一样,WPackagist 维护着 WP 主题目录的 Composer 镜像。要要求主题,只需使用 wpackagist-theme 命名空间。

不想这么做?

Composer 集成是 Bedrock 的最大部分,所以如果您打算移除它,那么使用 Bedrock 就没有多少意义了。

wp-cron

Bedrock 通过 define('DISABLE_WP_CRON', true); 禁用了内部 WP Cron。如果您保持此设置,则需要手动在 crontab 文件中设置如下 cron job

*/5 * * * * curl http://example.com/wp/wp-cron.php

WP-CLI

Bedrock 与 WP-CLI 一起工作,就像任何其他 WordPress 项目一样。我们之前在 composer.json 文件中将其作为依赖项要求。这已被移除,因为 WP-CLI 现在建议使用 phar 文件全局安装。这也导致了如果尝试使用全局安装时的冲突。

wp 命令将自动识别 Bedrock 的子目录安装,只要您在项目目录(或更深)中运行命令。Bedrock 包含一个 wp-cli.yml 文件,该文件将 path 选项设置为 public/wp。使用此配置文件进行任何进一步的 配置

贡献

欢迎每个人帮助贡献并改进此项目。您有多种方式可以做出贡献

  • 报告问题(请参阅问题指南
  • 建议新功能
  • 编写或重构代码
  • 修复问题