簡體   English   中英

ZFCUser中的用戶名/密碼字段驗證的將來打樣更改

[英]Future Proofing Changes to Validation of Username/Password Field in ZFCUser

我一直在尋找如何更改Zend Framework 2中ZFCUser模塊中注冊字段的實際驗證過程。

有很多關於擴展和添加新字段等到表單,但不驗證這些字段或擴展現有驗證的方法。

我看了一下代碼內部,發現了RegistrationForm.php文件,並添加了我的客戶正則表達式過濾器。

效果很好,符合預期,但我擔心在以后的任何升級中都將其覆蓋。

我將如何進行操作以確保升級安全? 是否像我對視圖文件所做的那樣,擴展特定類或將其添加為自定義模塊中的本地文件。

我和您有同樣的問題,也找不到合適的解決方案。 但是,恕我直言,比更改原始源代碼更好的方法是重寫ZfcUser服務之一。

在zfc-user Module.php中定義了一個名為“ zfcuser_change_password_form”的服務。 如果您使用相同的名稱創建自己的服務-原始服務將被覆蓋。 因此,首先需要定義自己的過濾器/驗證器類(YourFilter),然后在Module.php中添加:

public function getServiceConfig()
{
    return array(
        // ...
        'factories' => array(
            // ... 
            'zfcuser_change_password_form' => function ($sm) {
                $options = $sm->get('zfcuser_module_options');
                $form = new \ZfcUser\Form\ChangePassword(
                       null, $sm->get('zfcuser_module_options')
                    );
                $form->setInputFilter(
                       new \YourModule\Form\YourFilter($options)
                    );
                return $form;
            },
        ),
    );
}

這種解決方案允許更新zfcuser,而不會覆蓋您的更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM