此包已被废弃,不再维护。未建议替代包。

Yii 2.0 框架的 12factor 应用程序模板

安装次数: 11,748

依赖者: 0

建议者: 0

安全: 0

星标: 309

关注者: 46

分支: 129

开放问题: 30

类型:项目


README

phd4

曾被称为 Phundament 4

phd 是一个基于 Docker 的 12factor PHP 应用程序模板,适用于 Yii Framework 2.0。

需求

有关其他安装方法,例如 composer,请参阅 文档

安装

下载 或克隆仓库,进入应用程序目录

git clone https://github.com/phundament/app
cd app

注意!Phundament 特性 Makefile 目标用于开发和持续集成,输入 make help 查看所有可用目标或输入 make all 以运行安装和设置。

创建环境配置文件

cp .env-dist .env
cp docker-compose.override-dist.yml docker-compose.override.yml

启动应用程序堆栈

docker-compose up -d

运行设置命令

docker-compose run php composer install
docker-compose run php setup.sh

启动完成后,打开 http://<DOCKER_HOST>:40080 以访问应用程序并使用 admin/admin 登录。

配置

环境覆盖 - docker-compose.override.yml

  • 本地开发的主机卷
  • 端口映射

环境默认值 - docker-compose.yml

您可以在 docker-compose.yml 文件中覆盖 .env 中的任何 ENV 变量。

  • VIRTUAL_HOST ~^myapp\. 反向代理的虚拟主机配置,调整 Web 应用程序的虚拟主机参数,我们将在稍后使用它通过通配符 DNS 便捷地访问 Web 服务器。

应用程序默认值 - .env

在开发期间,建议在 .env 文件中更改应用程序配置,因为它不需要重启容器。

应用程序

  • APP_NAME 唯一的应用程序和容器标识符 [a-z0-9]
  • APP_TITLE 应用程序的显示名称
  • APP_LANGUAGES 可用的语言,用于 URL 管理器(例如 en,de
  • APP_ADMIN_EMAIL 应用程序管理员的电子邮件地址(默认在 ./yii app/create-admin-user
  • APP_ADMIN_PASSWORD 应用程序管理员的密码(默认在 ./yii app/create-admin-user
  • APP_MIGRATION_LOOKUP 逗号分隔的 Yii 别名列表,用于查找数据库迁移,例如 @app/migrations/data
  • APP_CONFIG_FILE 要加载的自定义配置文件
  • APP_COOKIE_VALIDATION_KEY 用于防止 XSS 的唯一且随机的字符串
  • APP_PRETTY_URLS 启用或禁用美观的 URL,允许值 1(是)或 0(否)
  • APP_ASSET_FORCE_PUBLISH 在对资产文件进行任何更改后强制发布资产。 注意! 这可能会降低性能,请 仅在开发期间使用

框架

  • YII_DEBUG 是否启用更详细的应用程序输出,例如 PHP 异常。
  • YII_ENV Yii 应用程序模式,允许值 devprodtest
  • YII_TRACE_LEVEL 显示日志的调用者级别数量。

数据库

  • DB_ENV_MYSQL_ROOT_USER 创建数据库的用户
  • DB_ENV_MYSQL_ROOT_PASSWORD 根密码,例如从 "${DB_ENV_MARIADB_PASS}" 设置
  • DB_ENV_MYSQL_DATABASE 数据库名称
  • DB_ENV_MYSQL_PASSWORD 数据库密码
  • DB_ENV_MYSQL_USER 数据库用户
  • DB_PORT_3306_TCP_ADDR 数据库主机名
  • DB_PORT_3306_TCP_PORT 数据库端口
  • DATABASE_TABLE_PREFIX 默认数据库连接的表前缀

应用程序配置 - config/main.php

有关可用的应用程序配置详细信息,请参阅Yii 2.0框架终极指南。

设置

应用程序范围键值存储的Web UI。

  • pages 站点地图
  • availableRoutes
  • schmunk42.markdocs Markdown
  • markdownUrl Markdown的URL或本地路径,例如 https://raw.githubusercontent.com/phundament/docs/master
  • defaultIndexFile 例如 1-introduction/about.md
  • cms.assets Assets/LESS
  • useDbAsset 布尔值

用户与权限

默认用户

  • admin

默认角色

  • 编辑者
  • 公开

💡 要启用公开访问,您需要将权限分配给Public角色,例如app_sitedocs_default

测试

首先,构建您的应用程序镜像

docker-compose build 

为测试堆栈设置环境变量

export COMPOSE_PROJECT_NAME=testapp
export BUILD_PREFIX=app

启动测试堆栈并进入测试CLI容器

docker-compose -f docker-compose.yml -f build/compose/test.override.yml up -d    
docker-compose -f docker-compose.yml -f build/compose/test.override.yml run tester bash    

设置应用程序 (容器bash)

$ setup.sh

运行测试套件 (容器bash)

$ codecept run functional prod
$ codecept run acceptance prod

ℹ️ 运行codeception时,必须将YII_ENV设置为test

部署

构建和推送Docker镜像所需的变量。

  • REGISTRY_USER
  • REGISTRY_PASS
  • REGISTRY_HOST
  • IMAGE_NAME

链接

*dmstr,斯图加特 🇩🇪 构建