xm / starter_symfony_4
XM Media 用于创建 Symfony 4/5/6 网站的启动器
dev-master
2024-09-27 18:17 UTC
Requires
- php: ~8.2.0
- ext-ctype: *
- ext-iconv: *
- ext-json: *
- ext-pcntl: *
- ext-pdo: *
- doctrine/doctrine-bundle: ^2.4
- doctrine/doctrine-migrations-bundle: ^3.1
- doctrine/orm: ^2.10
- egulias/email-validator: ^4.0
- knplabs/knp-paginator-bundle: ^6.0
- moneyphp/money: ^4.0
- nelmio/cors-bundle: ^2.3
- nesbot/carbon: ^3.0
- odolbeau/phone-number-bundle: ^3.0
- overblog/graphql-bundle: ^1.0
- pentatrion/vite-bundle: ^6.0.0
- phpdocumentor/reflection-docblock: ^5.2
- phpoffice/phpspreadsheet: ^2.0
- prooph/event-store-bus-bridge: ^3.3
- prooph/event-store-symfony-bundle: ^0.11
- prooph/pdo-event-store: 1.15.0
- ramsey/uuid: ^4.0
- ramsey/uuid-doctrine: ^2.0
- roave/security-advisories: dev-master
- scienta/doctrine-json-functions: ^5.0
- sentry/sentry-symfony: ^4.7
- symfony/asset: *
- symfony/console: *
- symfony/doctrine-messenger: *
- symfony/dotenv: *
- symfony/expression-language: *
- symfony/flex: ^2.0
- symfony/form: *
- symfony/framework-bundle: *
- symfony/http-client: ~6.4.0
- symfony/mailer: *
- symfony/messenger: *
- symfony/monolog-bundle: ^3.5
- symfony/postmark-mailer: *
- symfony/process: *
- symfony/property-access: *
- symfony/property-info: *
- symfony/proxy-manager-bridge: *
- symfony/runtime: *
- symfony/security-bundle: *
- symfony/serializer: *
- symfony/string: *
- symfony/templating: *
- symfony/translation: *
- symfony/twig-bundle: *
- symfony/validator: *
- symfony/web-link: *
- symfony/yaml: *
- symfonycasts/reset-password-bundle: ^1.20
- tecnickcom/tcpdf: ^6.6
- twig/extra-bundle: ^3.0
- twig/twig: ^3.5
- webmozart/assert: ^1.3
- xm/symfony-bundle: ^2.0
Requires (Dev)
- doctrine/doctrine-fixtures-bundle: ^3.0
- ekino/phpstan-banned-code: ^2.0
- ergebnis/composer-normalize: ^2.43
- fakerphp/faker: ^1.8
- friendsofphp/php-cs-fixer: ^3.0
- jetbrains/phpstorm-attributes: ^1.0
- liip/functional-test-bundle: ^4.1
- mockery/mockery: ^1.2
- overblog/graphiql-bundle: ^0.3.0
- phpstan/phpstan: ^1.0
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-mockery: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpstan/phpstan-symfony: ^1.0
- phpstan/phpstan-webmozart-assert: ^1.0
- phpunit/phpunit: ^9.5
- rector/rector: ^1.0
- symfony/apache-pack: ^1.0
- symfony/browser-kit: *
- symfony/css-selector: *
- symfony/debug-bundle: *
- symfony/maker-bundle: ^1.0
- symfony/phpunit-bridge: *
- symfony/stopwatch: *
- symfony/web-profiler-bundle: *
- theofidry/alice-data-fixtures: ^1.1
Conflicts
Replaces
- paragonie/random_compat: ^2.0
- symfony/polyfill-ctype: *
- symfony/polyfill-iconv: *
- symfony/polyfill-php56: *
- symfony/polyfill-php70: *
- symfony/polyfill-php71: *
- symfony/polyfill-php72: *
- symfony/polyfill-php73: *
- symfony/polyfill-php74: *
- symfony/polyfill-php80: *
- symfony/polyfill-php81: *
- symfony/polyfill-php82: *
This package is auto-updated.
Last update: 2024-09-27 18:17:28 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
- 创建新项目
composer create-project xm/starter_symfony_4 project-name --stability=dev --no-install --remove-vcs
- 添加
.env.local
– 复制.env
并更新。 - 更新
composer.json
:name
、license
(可能是private
)和description
- 更新
package.json
:name
、version
、git.url
、license
(可能删除)、private
- 更新
vite.config.js
中的端口(server.port
和server.origin
) - 删除或更新
LICENSE
文件。 - 运行
composer install && composer update
(或移除lando
以在没有 Lando 或没有内存限制的情况下运行:php -d memory_limit=-1 /usr/local/bin/composer update
) - 运行
yarn && yarn up -R "**"
。 - 运行
yarn dev
或yarn build
(用于生产)以编译 JS & CSS 文件。 - 给予 bin 目录可执行权限:
chmod u+x bin/*
(有帮助,但可选) - 运行/启动 Lando 网站:
lando start
- 使用
lando db-import db_create_sql
从db_create.sql
创建具有事件流和投影表的数据库。- 如果可能,将数据库校对设置为
utf8mb4_bin
:ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
- 如果可能,将数据库校对设置为
- 使用命令创建所需的事件流:
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
)。 - 运行所有投影一次:
bin/console event-store:projection:run user_projection -o
(或如果使用 lando:lando console event-store:projection:run user_projection -o
)。 - 创建用户
bin/console app:user:add
(选择角色ROLE_SUPER_ADMIN
)。 - 在整个网站中找到并更改靠近
@todo-symfony
注释的位置。 - 删除启动器文件:
README.md
(或更新)和TEMPLATES.md
。 - 可选: 运行
composer test
– 将安装 PHPUnit 并运行 PHP 测试 - 创建新的 favicon: realfavicongenerator.net
- 在 Postmark 中复制(使用“推送到另一个服务器”)或重新创建模板。模板通过别名引用。
- 可选: 运行
bin/console app:graphql:dump-schema <username>
以更新 GraphQL 模式文件,其中username
是管理员用户的电子邮件。 - 可选: 在 PhpStorm 中重命名项目。
本地开发网站可在:https://[域名]/ 访问
设置启动器
- 检出仓库。
- 添加
.env.local
– 复制.env
并更新。 - 运行/启动 Lando 网站:
lando start
- 运行
composer install
:lando composer install
或composer install
以在没有 Lando 的情况下运行。 - 确保正确的节点版本:
nvm use
- 运行
yarn
。 - 运行
yarn dev
或yarn build
(用于生产)以编译 JS & CSS 文件。 - 给予 bin 目录可执行权限:
chmod u+x bin/*
(有帮助,但可选) - 使用
lando db-import db_create_sql
从db_create.sql
创建具有事件流和投影表的数据库。- 如果可能的话,将数据库校对设置为
utf8mb4_bin
:ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
这可以通过 PhpMyAdmin 完成(如上方的lando start
命令提供的链接或lando info
)
- 如果可能的话,将数据库校对设置为
- 使用以下命令创建所需的事件流:
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
)。 - 运行所有投影一次:
bin/console event-store:projection:run user_projection -o
(或在 Lando 中:lando console event-store:projection:run user_projection -o
)。 - 创建用户:
bin/console app:user:add
(选择角色ROLE_SUPER_ADMIN
)或如果使用 Lando:lando console app:user:add
- 可选: 运行
composer test
– 将安装 PHPUnit 并运行 PHP 测试 – 或者如果使用 Lando:lando composer test
。 - 运行
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:js
或yarn lint:js:fix
- CSS:
yarn lint:css
或yarn lint:css:fix
- JS(ESLint):
- 安装 PHP 包:
lando composer install
或composer install
- 安装 JS 包:
yarn
- PHP 测试(PhpUnit)
lando composer test
或composer test
- 无内存限制
php -d memory_limit=-1 bin/simple-phpunit
- 带覆盖率(HTML)
composer test:coverage
- PHP CS:(必须先安装)
- 试运行:
lando composer cs
或composer cs
- 修复:
lando composer cs:fix
或composer cs:fix
- 试运行:
- PHP 静态分析(PHPStan):
lando composer static
或composer 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 退出不进行更改)
- 升级特定包:
整合的库和工具
- Lando – 本地开发环境
- 前端 – 依赖项的完整列表可在 package.json 中找到
- Vue – 前端框架
- Vue Router – 前端路由包
- Vue Templates – .vue 文件的语法
- Vue Test Utils – 帮助测试 Vue 组件
- Pinia - 全局状态管理
- Vite – 前端构建工具
- Vitest – 用于管理及运行前端测试
- GraphQL – API的通信(查询)语言
- Apollo Client 通过 Vue Apollo – 前端GraphQL
- SASS – CSS预处理器(使用 node-sass)
- PostCSS – 转换CSS
- Autoprefixer – 添加浏览器前缀
- SVGO – 优化SVG文件
- Tailwind – 以工具优先的样式框架
- Jest – JS单元测试
- Lodash – JS的辅助函数
- date-fns – JS日期的辅助函数
- Vue Final Modal – 用于模态框
- Faker.js – 用于测试中生成假数据
- ESLint – 检查JS的约定和错误
- Stylelint – 检查CSS的约定和错误
- Vue – 前端框架
- 后端 – 依赖项的完整列表可以在 composer.json 中找到
- Symfony – 后端框架
- GraphQLBundle – 提供使用 graphql-php 的PHP中的GraphQL
- GraphQiL 可在
/graphiql
(仅在开发环境中)找到
- GraphQiL 可在
- Doctrine – 对象关系映射(ORM)
- Doctrine Migrations – 用于数据库迁移
- Nelmio CORS Bundle – 用于CORS
- Symfony Messenger – 用于异步消息
- Symfony Mailer – 用于发送电子邮件
- Symfony Security – 用于身份验证和授权
- Twig – 服务器端模板语言(有限使用)
- Prooph PDO Event Store & Bridge/Bundle – 用于事件源(Event Sourcing)
- Doctrine – 用于读取只读模型
- PhpUnit – 用于运行PHP测试
- PHP CS – PHP编码规范分析器与修复工具
- PHPStan – PHP静态分析工具
- Postmark – 用于发送电子邮件,包含电子邮件模板(目前设置在XM Media的账户下)
- Cloudflare – DNS & CDN
- GitLab – 部署
- Sentry – 错误跟踪
- 开发工具