2014-04-03 4 views
0
에서 사용자 이름/암호 필드의 유효성에 대한 미래 교정 변경 내가 젠드 프레임 워크에 ZFCUser 모듈의 등록 필드의 실제 검증 프로세스를 변경하는 방법에 주위를 찾고 있었어요

2.ZFCUser

많이있다 양식에 새로운 필드 등을 확장하고 추가하는 것, 그러나이 필드의 유효성을 확인하지 않거나 기존의 유효성 검사를 확장하는 것에 관한 것입니다.

코드를 살펴본 후 RegistrationForm.php 파일을 찾고 고객 정규식 필터를 추가했습니다.

정상적으로 작동하고 예상대로 진행되지만 향후 업그레이드시에 과도하게 작성 될 것으로 우려됩니다.

업그레이드 안전을 위해 어떻게해야합니까? 보기 파일을 사용하여 특정 클래스를 확장하거나 사용자 정의 모듈에서 로컬 파일로 추가하는 경우입니까?

+0

http://stackoverflow.com/questions/8783873/zf2-whats-the-best-practice-for-working-with-vendor-modules-form-classes의 가능한 복제본 – Crisp

답변

1

나는 당신과 같은 문제가 있었고, 또한 적절한 해결책을 찾지 못했습니다. 그러나 원래의 소스 코드를 변경하는 것보다 IMHO가 더 좋은 방법은 ZfcUser 서비스 중 하나를 재정의하는 것입니다.

zfc-user Module.php에 정의 된 'zfcuser_change_password_form'서비스가 있습니다. 같은 이름의 서비스를 만들면 원래 서비스가 재정의됩니다. 그래서, 먼저 추가하여 Module.php에 다음 (YourFilter)를 자신의 필터/검증 클래스를 정의해야합니다

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를 업데이트 할 수 있습니다.