标签 symfony 下的文章

前两天初始化了一个新项目,使用的是全新的 symfony 6.4。由于使用了最小化的创建命令,导致很多非核心的组件没有安装,一个个安装完,修改好 .env 环境变量配置文件,在 dump 的时候报错:

$ APP_ENV=dev APP_DEBUG=1 php bin/console dotenv:dump
  There are no commands defined in the "dotenv" namespace.  

执行安装命令 composer require symfony/dotenv 的时候没有任何异常。于是一步步检查,最终发现了命令的注册有问题。

对照了一下老项目,发现问题就是没注册服务。

config/services.yaml 配置文件中,添加以下配置:

services:

    # 注册 dotenv:dump 命令
    Symfony\Component\Dotenv\Command\DotenvDumpCommand:
        - '%kernel.project_dir%/.env'
        - '%kernel.environment%'

再次执行,问题解决。

今天遇到一个问题,在使用 Symfony 6.x 框架的项目里,我没有使用框架自带的 Security 组件,而是自己实现了一个用户认证的土方法。

在我的方法中,当用户请求需要登录的接口时,会抛出一个自定义的异常 ApiNotAuthException,然后我在 ExceptionListener 监听器服务中捕获这个异常并封装我自己的返回值结构,最后将状态码强制改为 200(因为我不喜欢使用 HTTP 状态码来替代业务状态码)。

- 阅读剩余部分 -