我是第一次使用 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 關注
- 119 瀏覽
添加回答
舉報
0/150
提交
取消