我是Symfony和PHP的新手,我正在尝试创建 Bundle 来实现登录身份验证Web API。
您可以在this stripped down Symfony Application on GitHub内找到Bundle的代码。 Bundle代码在src内。
我已经阅读了很多(如果不是所有)我在这个主题上发现的问题,但我无法解决我的问题:
从控制台启动服务器时,我收到的错误是: 没有扩展程序可以加载“ldap_auth”的配置(在config / packages \ ldap_auth.yaml中)。查找命名空间“ldap_auth”,找不到
在尝试了很多解决方案之后,我无法理解问题所在,我非常感谢您的帮助。
答案 0 :(得分:1)
您很想了解配置过程。这是可以理解的。这很复杂。为您加载配置文件,然后调用您的扩展/配置。你没有明确地加载它们。
您可能会看到某些文件正在被扩展程序加载,但这些文件用于定义服务而不是配置。
解决方案是从您的扩展程序中删除加载程序内容:
// LdapAuthExtension
public function load(array $configs, ContainerBuilder $container)
{
$configuration = $this->getConfiguration($configs, $container);
$config = $this->processConfiguration($configuration, $configs);
// *** Remove these lines
//$loader = new YamlFileLoader( $container,
// new FileLocator('config/packages')
//);
//$loader->load('ldap_auth.yaml');
if ($config['app_id']) {
$container->setParameter('ldap_auth.app_id', $config['app_id']);
}
}
顺便说一下,使用一个完整的非工作示例链接到github存储库使得这很容易出错。希望更多人这样做。