xm/starter_symfony_4

XM Media 用于创建 Symfony 4/5/6 网站的启动器

dev-master 2024-09-27 18:17 UTC

README

用于在 XM Media 上使用 Symfony 6 创建新项目。

开发: https://symfonystarter.lndo.site @todo-symfony
预发布: @todo-symfony
生产: @todo-symfony

设置新网站

注意: 确保您的 git 配置已设置为使用正确的换行符: git config --global core.autocrlf input && git config --global core.eol lf

  1. 创建新项目
    composer create-project xm/starter_symfony_4 project-name --stability=dev --no-install --remove-vcs
  2. 添加 .env.local – 复制 .env 并更新。
  3. 更新 composer.jsonnamelicense(可能是 private)和 description
  4. 更新 package.jsonnameversiongit.urllicense(可能删除)、private
  5. 更新 vite.config.js 中的端口(server.portserver.origin
  6. 删除或更新 LICENSE 文件。
  7. 运行 composer install && composer update(或移除 lando 以在没有 Lando 或没有内存限制的情况下运行:php -d memory_limit=-1 /usr/local/bin/composer update
  8. 运行 yarn && yarn up -R "**"
  9. 运行 yarn devyarn build(用于生产)以编译 JS & CSS 文件。
  10. 给予 bin 目录可执行权限: chmod u+x bin/*(有帮助,但可选)
  11. 运行/启动 Lando 网站: lando start
  12. 使用 lando db-import db_create_sqldb_create.sql 创建具有事件流和投影表的数据库。
    • 如果可能,将数据库校对设置为 utf8mb4_binALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
  13. 使用命令创建所需的事件流: bin/console event-store:event-stream:create user && bin/console event-store:event-stream:create auth(或如果使用 lando: lando console event-store:event-stream:create user && lando console event-store:event-stream:create auth)。
  14. 运行所有投影一次: bin/console event-store:projection:run user_projection -o(或如果使用 lando: lando console event-store:projection:run user_projection -o)。
  15. 创建用户 bin/console app:user:add(选择角色 ROLE_SUPER_ADMIN)。
  16. 在整个网站中找到并更改靠近 @todo-symfony 注释的位置。
  17. 删除启动器文件: README.md(或更新)和 TEMPLATES.md
  18. 可选: 运行 composer test – 将安装 PHPUnit 并运行 PHP 测试
  19. 创建新的 favicon: realfavicongenerator.net
  20. 在 Postmark 中复制(使用“推送到另一个服务器”)或重新创建模板。模板通过别名引用。
  21. 可选: 运行 bin/console app:graphql:dump-schema <username> 以更新 GraphQL 模式文件,其中 username 是管理员用户的电子邮件。
  22. 可选: 在 PhpStorm 中重命名项目。

本地开发网站可在:https://[域名]/ 访问

设置启动器

  1. 检出仓库。
  2. 添加 .env.local – 复制 .env 并更新。
  3. 运行/启动 Lando 网站: lando start
  4. 运行 composer installlando composer installcomposer install 以在没有 Lando 的情况下运行。
  5. 确保正确的节点版本: nvm use
  6. 运行 yarn
  7. 运行 yarn devyarn build(用于生产)以编译 JS & CSS 文件。
  8. 给予 bin 目录可执行权限: chmod u+x bin/*(有帮助,但可选)
  9. 使用 lando db-import db_create_sqldb_create.sql 创建具有事件流和投影表的数据库。
    • 如果可能的话,将数据库校对设置为 utf8mb4_binALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; 这可以通过 PhpMyAdmin 完成(如上方的 lando start 命令提供的链接或 lando info
  10. 使用以下命令创建所需的事件流:bin/console event-store:event-stream:create user && bin/console event-store:event-stream:create auth(或在 Lando 中: lando console event-store:event-stream:create user && lando console event-store:event-stream:create auth)。
  11. 运行所有投影一次:bin/console event-store:projection:run user_projection -o(或在 Lando 中: lando console event-store:projection:run user_projection -o)。
  12. 创建用户:bin/console app:user:add(选择角色 ROLE_SUPER_ADMIN)或如果使用 Lando: lando console app:user:add
  13. 可选: 运行 composer test – 将安装 PHPUnit 并运行 PHP 测试 – 或者如果使用 Lando: lando composer test
  14. 运行 bin/check 来运行所有代码测试/检查。

**本地开发站点可通过以下链接访问: https://symfonystarter.lndo.site

系统要求

服务器

  • PHP 8.2
  • MySQL 5.7+

本地开发

命令

  • 检查所有代码: bin/check
  • 生产 JS/CSS 构建: yarn build
  • 开发 JS/CSS 构建: yarn dev(推荐命令: nvm use && yarn && yarn dev
  • 预览生产 JS/CSS 构建: yarn preview
  • JS 测试(Jest): yarn test:unit
  • 代码风格检查
    • JS(ESLint): yarn lint:jsyarn lint:js:fix
    • CSS: yarn lint:cssyarn lint:css:fix
  • 安装 PHP 包: lando composer installcomposer install
  • 安装 JS 包: yarn
  • PHP 测试(PhpUnit
    • lando composer testcomposer test
    • 无内存限制 php -d memory_limit=-1 bin/simple-phpunit
    • 带覆盖率(HTML) composer test:coverage
  • PHP CS:(必须先安装)
    • 试运行: lando composer cscomposer cs
    • 修复: lando composer cs:fixcomposer cs:fix
  • PHP 静态分析(PHPStan): lando composer staticcomposer static
  • 投影
    • 显示所有命令: bin/console event-store:projection
    • 运行一次: bin/console event-store:projection:run user_projection -o
  • 制造者(PHP)
    • 制造聚合根/模型: bin/console make:model
    • 制造投影: bin/console make:projection
  • 升级 JS 包: yarn up -R "**"
    • 升级特定包: yarn up -R "package-name"
    • 升级主要版本: yarn upgrade-interactive(按 ctrl+c 退出不进行更改)

整合的库和工具