我正在嘗試使vatin-bundle與 Symfony 6 兼容。
但測驗失敗
在編譯容器時,“驗證器”服務或別名已被洗掉或行內。您應該將其公開,或者直接停止使用容器并改用依賴注入。
這似乎是Symfony 6中的新功能
static::getContainer() 中的容器實際上是一個特殊的測驗容器。它使您可以訪問公共服務和未洗掉的私人服務服務。
validator再次在測驗中可用的首選方式是什么?
我發現的唯一方法是創建自己的別名,例如
services:
myvalidator:
alias: validator
public: true
并使用新別名。有沒有更好的辦法?
uj5u.com熱心網友回復:
如果該服務被洗掉,那么無論如何都無法再訪問它。這不是可見性的問題,服務不再存在。所以你需要防止服務被洗掉:創建別名是最好和最簡單的方法。
這已經被這里的維護者證實了。
您只能在測驗期間創建別名,并且仍然可以訪問原始服務。(例如->get('validator')。創建別名后,不再洗掉原始服務。
我認為這在 Symfony 6 中并不是什么新東西,但它是 Symfony 4.4 以來的新事物。雖然現在在 Symfony 6 上是真的,因為它洗掉了以前不推薦的行為,事情可能已經改變了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/421229.html
標籤:
