我是第一次使用 LDAP,以及 PHP / symfony:我成功连接到 LDAP 服务器,并且可以搜索和添加用户/组,没有什么大问题。但是,当我尝试添加已存在的用户时,我收到以下警告:HTTP 500 内部服务器错误警告:ldap_add():添加:已存在我想捕获它,因为它会抛出异常,并且可以为用户替换为简单的 toast“失败:CN 已在使用中”。但是,我找不到这样做的方法,并且不明白为什么 symfony 会引发这样的异常,其中 ldap_add 只应在失败时返回“false”。(成功时确实返回 true):ldap_add 手册编辑:这是有罪的代码。选项很好,当我创建新用户时请求成功。我尝试了几种方法来捕获错误,但似乎不可能捕获警告 try { $result = ldap_add($ldapconn, $userdn, $user); } catch(Throwable $e) { echo $e->getMessage();}
1 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
默认情况下,Symfony 将警告转换为异常...仅在开发环境中
这是一个明智的选择,可以避免生产中发生意外行为时导致生产爆炸。
如果出现错误,ldap_add 函数将返回 false。这就是你应该检查的。您可能想完全关闭警告,可以通过使用@ldap_add
来实现。
也就是说,这里有两种选择。
您可能想要使用 PHP Safe 库,它将警告转换为异常。这是一个示例: https: //github.com/thecodingmachine/safe
你也可以临时设置自己的错误监听器来抛出异常,实际上有时 Symfony 在它自己的代码库中这样做。这是一个示例: https: //github.com/symfony/symfony/blob/27d84dbe57ce65203b26232b87e6660fdba2f30e/src/Symfony/Component/String/AbstractString.php#L509最重要的是不要避免恢复原始错误处理程序。
回来我帮忙了!
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报
0/150
提交
取消