我正在使用symfony/security-bundle作为一个独立的composer 包.这不是symfony应用程序的一部分.只有包裹本身.

我已经通过Composer以composer require symfony/security-bundle的速度添加了这个包.

我的composer.json文件是这样的

{
    ...
    "require-dev": {
        "phpunit/phpunit": "9.6"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    },
    "require": {
        "symfony/dependency-injection": "^5.4",
        "symfony/config": "^5.4",
        "ext-json": "*",
        "ext-pdo": "*",
        "symfony/monolog-bundle": "^3.10",
        "symfony/cache": "^5.4",
        "twig/twig": "3.0",
        "symfony/security-bundle": "^5.4"
    }
}

请注意,为了保持这里列出的composer.json个文件简短,我删除了一些部分.

我正在try 使用documentation建立一个非常简单的防火墙.我使用的是PHP配置,而不是YAML或XML配置.

我已经将文档示例直接复制粘贴到我的项目中

// config/packages/security.php
use Symfony\Config\SecurityConfig;

return static function (SecurityConfig $security) {
    // ...
    $security->firewall('dev')
        ->pattern('^/(_(profiler|wdt)|css|images|js)/')
        ->security(false)
    ;

    $security->firewall('main')
        ->lazy(true)

        // activate different ways to authenticate
        // https://symfony.com/doc/current/security.html#firewalls-authentication

        // https://symfony.com/doc/current/security/impersonating_user.html
        // ->switchUser(true)
    ;
};

我所面临的问题是Symfony\Config\SecurityConfig级根本不存在.

enter image description here

我试着重新下载了这些包.正在清除编写器缓存.也手动下载安全Bundle 包.


  • 我需要安装另一个程序包吗?

  • 这是文档中的错误吗?如果是这样的话,我有什么办法让这件事奏效吗?

推荐答案

文档中没有bug,该文章旨在用于理解Symfony应用程序中的Symfony Bundle.这是有道理的,因为"bundles"是Symfony包的定义,有许多部分是由Framework bundleBundle 在一起的.使"包"成为"束"的正是框架集成.

在这种情况下,Symfony\Config\SecurityConfig"失踪"类的具体情况......该类由Framework包在容器编译期间构建.它们do not与Bundle 包一起出现,如here所解释的:

这些类are generated automatically in your project build directory,并将您的包配置类转换为流畅的接口类,其中的方法以您的配置选项命名

(重点是我的).

如果没有框架包,这些类就不会生成.而且,正如人们很容易证实的那样,它们并不存在in the original source.

如果你想在Symfony应用程序之外使用这些包,你必须自己处理配置.你可能想判断this article,你可能会发现有用的.

Php相关问答推荐

如何在php中生成包含第100秒的时间序列?

根据WooCommerce购物车页面中的自定义 Select 添加费用

Symfony 6.2 IsGraned具有多个角色

将WooCommerce WC_Order对象与wp_Schedule_Event一起使用

模仿GUZLE中的curl 工作脚本(分块数据和二进制上传一起)

即使在WooCommerce购物车中添加了两次产品,也要将所有项目设置为空白行

Laravel自定义验证规则更正

WooCommerce在收据页面获取产品下载URL

Mockery在模拟Redis连接时抛出错误:Mockery\Exception\BadMethodCallException

Laravel 10.x在到达控制器之前将查询参数强制转换为正确的类型

在 WooCommerce 管理变量产品中启用其他变体图像

使用 Composer 找不到 Google APIClient 类

使用 PHP 的 OAuth 2.0 MAC

防止使用woocommerce_checkout_process下单

PHP Symfony 在测试.env文件中将接口自动装配作为构造函数参数,但使用接口的特定类

使用 PHP 正则表达式从仅包含具有现有顺序的顶级标签的 XML 文档中搜索和创建数组

正则表达式 (php) 匹配单个 [ 或单个 ] 但忽略 [[ ]] 之间的任何内容?

NetBeans 不显示中文内容

来自命令行的 PHP 没有给出正确的结果

WordPress 函数 get_post(post_id) 是否查询数据库?