Symfony DDD Skeleton 项目教程

Symfony DDD Skeleton 项目教程

symfony-ddd-skeleton Organize and Manage Multiple Applications with Kernel Contexts. 项目地址: https://gitcode.com/gh_mirrors/sy/symfony-ddd-skeleton

1. 项目的目录结构及介绍

Symfony DDD Skeleton 项目采用领域驱动设计(DDD)和六边形架构模式,旨在组织和管理多个应用程序。项目的目录结构如下:

├── config/
│   ├── packages/
│   ├── bundles.php
│   └── services.yaml
├── context/
│   ├── admin/
│   │   ├── config/
│   │   │   ├── packages/
│   │   │   ├── bundles.php
│   │   │   ├── routes.yaml
│   │   │   ├── security.yaml
│   │   │   └── services.yaml
│   │   └── src/
│   │       ├── Command/
│   │       └── Controller/
│   ├── api/
│   ├── site/
│   └── Kernel.php
├── src/
│   ├── Module/
│   │   └── SubModule/
│   │       ├── Application/
│   │       ├── Domain/
│   │       └── Infrastructure/
│   ├── Shared/
│   │   ├── Domain/
│   │   ├── Infrastructure/
│   │   └── Presentation/
├── var/
│   ├── cache/
│   │   ├── admin/
│   │   │   ├── dev/
│   │   │   └── prod/
│   │   ├── api/
│   │   └── site/
│   └── logs/
├── public/
│   └── index.php
├── bin/
│   └── console
├── tests/
│   └── context/
│       ├── admin/
│       │   └── AdminWebTestCase.php
│       └── api/
├── .env
├── .gitignore
├── LICENSE
├── README.md
├── composer.json
├── composer.lock
└── symfony.lock

目录结构介绍

  • config/: 包含全局配置文件,如 packages/ 目录下的包配置文件、bundles.phpservices.yaml
  • context/: 包含每个应用程序的上下文配置和源代码。每个上下文(如 adminapisite)都有自己的配置文件和源代码目录。
  • src/: 包含应用程序的核心功能,分为模块(Module)和共享(Shared)部分。
  • var/: 包含缓存和日志文件。每个上下文都有自己的缓存和日志目录。
  • public/: 包含项目的入口文件 index.php
  • bin/: 包含命令行工具 console
  • tests/: 包含测试文件,按上下文组织。
  • .env: 环境变量配置文件。
  • .gitignore: Git 忽略文件配置。
  • LICENSE: 项目许可证文件。
  • README.md: 项目说明文件。
  • composer.json: Composer 依赖管理文件。
  • composer.lock: Composer 锁定文件。
  • symfony.lock: Symfony 锁定文件。

2. 项目的启动文件介绍

项目的启动文件位于 public/index.php。该文件是所有请求的入口点,负责初始化 Symfony 应用程序并处理请求。

public/index.php 文件内容

<?php

use App\Kernel;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;

require dirname(__DIR__).'/vendor/autoload.php';

(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');

if ($_SERVER['APP_DEBUG']) {
    umask(0000);

    Debug::enable();
}

$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

启动文件功能

  • 自动加载: 使用 Composer 自动加载机制加载所有依赖。
  • 环境配置: 使用 Dotenv 加载环境变量配置文件 .env
  • 调试模式: 根据环境变量 APP_DEBUG 启用或禁用调试模式。
  • 请求处理: 创建 Symfony 内核实例,处理请求并返回响应。

3. 项目的配置文件介绍

项目的配置文件主要位于 config/context/ 目录下。以下是主要配置文件的介绍:

全局配置文件

  • config/packages/: 包含各个包的配置文件,如 framework.yamldoctrine.yaml 等。
  • config/bundles.php: 定义项目中启用的 Symfony 包。
  • config/services.yaml: 定义全局服务配置。

上下文配置文件

  • context/admin/config/: 包含 admin 上下文的配置文件,如 routes.yamlsecurity.yaml 等。
  • context/api/config/: 包含 api 上下文的配置文件。
  • context/site/config/: 包含 site 上下文的配置文件。

环境变量配置

  • .env: 定义项目的环境变量,如 APP_ENVAPP_DEBUGAPP_CONTEXT 等。

配置文件示例

config/packages/framework.yaml
framework:
    secret: '%env(APP_SECRET)%'
    http_method_override: true
    session:
        handler_id: null
        cookie_secure: auto
        cookie_samesite: lax
    php_errors:
        log: true
context/admin/config/routes.yaml
admin_routes:
    resource: '../src/Controller/'
    type: annotation
.env
APP_ENV=dev
APP_DEBUG=1
APP_SECRET=your_secret_key
APP_CONTEXT=admin

通过这些配置文件,Symfony DDD Skeleton 项目能够灵活地管理多个应用程序,并根据不同的上下文进行配置和运行。

symfony-ddd-skeleton Organize and Manage Multiple Applications with Kernel Contexts. 项目地址: https://gitcode.com/gh_mirrors/sy/symfony-ddd-skeleton

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倪澄莹George

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值