emrl / site-template
Requires
- php: >=8.1
- composer/installers: ~1.0
- emrl/emrl: ^3
- emrl/fire: ^4
- hipdevteam/advanced-custom-fields-pro: *
- hipdevteam/gravityforms: *
- johnpbloch/wordpress: >=5.0
- vlucas/phpdotenv: ^3
- wpackagist-plugin/admin-menu-editor: *
- wpackagist-plugin/akismet: *
- wpackagist-plugin/analytics-insights: *
- wpackagist-plugin/backwpup: *
- wpackagist-plugin/broken-link-checker: *
- wpackagist-plugin/bugsnag: *
- wpackagist-plugin/cache-enabler: *
- wpackagist-plugin/codepress-admin-columns: *
- wpackagist-plugin/duplicate-post: *
- wpackagist-plugin/enable-media-replace: *
- wpackagist-plugin/safe-redirect-manager: *
- wpackagist-plugin/safe-svg: *
- wpackagist-plugin/shortpixel-image-optimiser: *
- wpackagist-plugin/stream: *
- wpackagist-plugin/user-role-editor: *
- wpackagist-plugin/user-switching: *
- wpackagist-plugin/wordfence: *
- wpackagist-plugin/wordpress-seo: *
Requires (Dev)
README
初始设置
将 .env.example
复制到 .env
。
设置您的开发主机名/域的变量(例如:mysite.test
)
$ TLD=mysite.test
在 .env
中将 site-template.test
替换为您的开发域。
$ sed -i "s/site-template.test/$TLD/g" .env
如果您尚未安装,请安装 mkcert。然后生成 SSL 证书
$ mkcert -key-file server.key -cert-file server.crt "$TLD"
更新您的本地主机文件并添加域名条目
$ echo -e "127.0.0.1 $TLD" | sudo tee -a /etc/hosts
使用 Docker 进行开发
使用数据库变量更新 .env
。确保认证密钥和盐不是空的。
DB_HOST=mysql
DB_DATABASE=dev
DB_USERNAME=dev
DB_PASSWORD=dev
首先,您需要确保已保存 Advanced Custom Fields 的凭证。如果没有,可以使用以下命令(将 ACF_KEY
替换为您实际的许可证密钥)
$ docker compose run --rm --user application --entrypoint composer php config --global --auth http-basic.connect.advancedcustomfields.com ACF_KEY "https://$TLD"
安装依赖项
$ docker compose run --rm --user application --entrypoint composer php install
$ docker compose run --rm --user node node npm install
$ docker compose run --rm python pip install -r requirements.txt
启动容器
$ docker compose up
Docker 将默认启动以下容器
容器 | 用途 |
---|---|
php | Apache & PHP,运行应用程序 |
mysql | MySQL 数据库 |
node | 在端口 8080 上运行 webpack 构建过程 |
现在您可以在之前指定的域中查看网站。
ℹ️ mkdocs 的 Python 容器默认不会启动。您可以与其他容器一起运行它或独立运行。
# Start all containers
$ docker compose --profile docs up
# Or independently
$ docker compose up python
容器 | 用途 |
---|---|
python | 在 https://:8000 上运行 mkdocs 构建过程 |
要允许发送电子邮件,还可以启动 MailHog 容器。
ℹ️ MailHog 容器默认不会启动。您可以与其他容器一起运行它或独立运行。
# Start with all containers
$ docker compose --profile mail up
# Or independently
$ docker compose up mailhog
通过 Docker 运行命令
示例:使用 Deployer 从预发布站点拉取内容
# If container is already running
$ docker compose exec --user application php vendor/bin/dep content:pull stage=staging
# If container has stopped
$ docker compose run --rm --user application --entrypoint /app/vendor/bin/dep php content:pull stage=staging
文件
根目录
文件 | 描述 |
---|---|
/.editorconfig | EditorConfig |
/.env.example | 示例环境变量 |
/.gitignore | 从 Git 排除的文件 |
/.php-cs-fixer.dist.php | PHP Coding Standards Fixer 配置 |
/.phpcs.xml.dist | PHP_Codesniffer 配置 |
/app.php | 应用程序引导 |
/bitbucket-pipelines.yml | Bitbucket Pipelines 配置 |
/composer.json | Composer 配置 |
/config.php | WordPress 配置 |
/deploy.php | Deployer 配置 |
/docker-compose.yml | Docker Compose 配置 |
/mkdocs.yml | MkDocs 配置 |
/package.json | npm 配置 |
/phpunit.xml.dist | PHPUnit 配置 |
/requirements.txt | pip 配置,用于文档 |
/webpack.config.js | webpack 配置 |
/wp-cli.yml | WP-CLI 配置 |
配置目录
/config/
目录包含任何配置文件。
文档目录
《/docs/》目录包含文档源文件,这些文件最终会被构建到《/public/kb/》目录中。
公共目录
《/public/》目录是服务器的文档根目录。
文件 | 描述 |
---|---|
/public/c/ | WordPress内容目录 |
/public/w/ | WordPress核心,由Composer安装 |
/public/.htaccess | Apache服务器配置 |
/public/index.php | 入口点 |
/public/manifest.webmanifest | 清单文件 |
/public/wp-config.php | WordPress配置文件。该文件简单包含了《config.php》 |
资源目录
脚本、样式、图片、图标和其他媒体源文件的源代码。文件由webpack打包,输出到《/public/c/dist/》。
Kb目录
《/public/kb/》目录用于知识库。它由MkDocs创建,是《/docs/》目录中源文件的构建结果。
插件目录
《/public/c/plugins/》目录存储插件。由于Composer可以管理WordPress插件仓库中的所有插件,因此该目录中的所有文件都被Git忽略。
如果需要使用商业插件,则必须在《/.gitignore》文件中取消忽略。
必须使用插件目录
《/public/c/mu-plugins/》目录存储必须使用插件。
文件 | 描述 |
---|---|
/public/c/mu-plugins/advanced-custom-fields-pro.php | 加载高级自定义字段插件 |
/public/c/mu-plugins/commands.php | 注册WP-CLI命令 |
/public/c/mu-plugins/error-reporting.php | 关闭来自WordPress核心或插件的弃用错误报告 |
/public/c/mu-plugins/register-theme-directory.php | 注册自定义主题目录,包括WordPress的默认主题目录 |
Src目录
《/src/》目录包含网站的定制功能(帖子类型、主题设置等)。
Tests目录
《/tests/》目录包含PHP单元测试。
主题目录
《/theme/》目录作为WordPress主题。