بادئ ذي بدء ، حاول ألا تتكيف مع هذا. في رأيي ، فإن الكود ليس معقدًا بما يكفي لتبرير استخدام أنماط التصميم الموجهة للكائنات.
كما أراها ، فإن الكود الخاص بك يتلخص بشكل أساسي في التحقق من صحة الإدخال مع تعبيرات منتظمة مختلفة (والتي تعتمد على بعض العلامات المحددة للمستخدمين مثل allow_num
و allow_space
.
لذا فإن اقتراحي هو ما يلي (إعادة البناء الأساسية هي إنشاء جزء من التعبير العادي بناءً على التكوين من قبل استخدام هذا التعبير في أي منطق التحقق من الصحة):
protected function isTextValid() {
$allowedCharacters = 'A-Za-z';
if ($this->data['allow_spaces']) {
$allowedCharacters .= '\s';
}
if ($this->data['allow_num']) {
$allowedCharacters .= '\d';
}
if (!preg_match("#^[{$allowedCharacters}]+\$#", $this->value)) {
$this->messages = foo ? foor : bar;
return false;
}
return true;
}