AMatch, рднрд╛рдЧ 2. рддреНрд░реБрдЯрд┐ рдХреЛрдб, рд╕реНрд╡рдпрдВ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рдирдпрд╛ рдХреЙрд▓рдмреИрдХ рдкреНрд░рд╛рд░реВрдк

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЙрди рдХреБрдЫ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрди рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдорд╛рдЪ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВред

рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдПрдорд╛рдЪ рдПрдХ рдРрд╕рд╛ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рдПрдХ рдмрдбрд╝реЗ рд╕реЗрдЯ рд╕реЗ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдЕрдЧрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдЙрджрд╛рд╣рд░рдг: рд╕рд░рд▓
$match = AMatch::runMatch($params) ->doc_id(0, '<') //    ->subject_id(0, '!=') //    ; $result = $match->stopMatch(); if (!$result) { die(var_export($match->matchComments(), true)); //    } 


рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛


рдЖрдЧреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд╣рдо "рдЕрдЪреНрдЫреЗ" рдФрд░ "рдЦрд░рд╛рдм" рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рд░рдгреА рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗ:

рдЙрджрд╛рд╣рд░рдг: рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛
 $params = array( 'subject_id' => '64', 'parent_id' => -32, 'delimeter' => '-4.645E+32', 'title' => 'New document', 'links' => array(13, '-16', 24), 'email' => 'someuser@mail.dom', ); $params_bad = array( 'subject_id' => '64.43', 'parent_id' => array(), 'delimeter' => '-4.x6E.32', 'title' => new stdClass(), 'links' => array(0, array(0, array(0)), 0), 'email' => 'someuser!@mail.dom', ); 


рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

рдЙрджрд╛рд╣рд░рдг: рдкрд░рд┐рдгрд╛рдо рдлрд╝рдВрдХреНрд╢рди
 function result(AMatch $match) { echo PHP_EOL; echo $match->stopMatch() ? 'Dance!' : 'Cry!' ; echo PHP_EOL; var_export($match->matchResults()); echo PHP_EOL; var_export($match->matchComments()); echo PHP_EOL; var_export($match->matchCommentsConditions()); } 


рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐


рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреА рдЧрдИ рдереАрдВред рдпрд╣ рдЖрдкрдХреА рдЦреБрдж рдХреА рдореИрдкрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрджрд╕реВрд░рдд рдерд╛ред рдлрд┐рд▓рд╣рд╛рд▓, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╢реНрд░реЗрдгреА AMatchStatus рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдЪреНрдЫреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реА:

рддреНрд░реБрдЯрд┐ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛

рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рддреНрдпрд╛рдкрди рд╕реНрдерд┐рддрд┐ рдХреА рд░рдЪрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдБ рд▓рдЧрд╛рддрд╛рд░ рдЕрдЪреНрдЫреЗ рдФрд░ рдмреБрд░реЗ рд╕рд░рдгрд┐рдпрд╛рдБ рднреЗрдЬрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг: рдмреБрд░рд╛ рдФрд░ рдЕрдЪреНрдЫрд╛ рдкреБрд▓рд┐рд╕рд╡рд╛рд▓рд╛
 $match = AMatch::runMatch($params, AMatch::FLAG_SHOW_GOOD_COMMENTS)->delimeter('', 'float'); //     result($match); $match = AMatch::runMatch($params_bad, AMatch::FLAG_SHOW_GOOD_COMMENTS)->delimeter('', 'float'); result($match); 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИ
 //   Dance! array ( 'delimeter' => 103, ) array ( 'delimeter' => 'OK. Expected parameter type is valid', ) array ( 'delimeter' => array ( 0 => '', 1 => 'float', ), ) //   Cry! array ( 'delimeter' => 3, ) array ( 'delimeter' => 'Expected parameter type is not valid', ) array ( 'delimeter' => array ( 0 => 'float', 1 => 'float', ), ) 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
- matchResults () рддреНрд░реБрдЯрд┐ рдХреЛрдб рд▓реМрдЯрд╛рдПрдЧрд╛,
- matchComments () - рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ,
- matchCommentsConditions () - рд╕рддреНрдпрд╛рдкрди рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реАред

AMAT рдореЗрдВ рдлреНрд▓реЛрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлреНрд▓реЛрдЯ рдХреА рдЬрд╛рдБрдЪ is_float рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ
// рдорд╛рдиреНрдп рдлреНрд▓реЛрдЯ рдорд╛рди:
1, -1, 1.0, -1.0, '1', '-1', '1.0', '-1.0', '2.1', '0', 0, '0', '0.1', '-0.0' , -0.0, 3., '-3', '.27', .27, '-0', '+4', '1e2', '+1353.0316547', '13213.032468e-13465', '-8E +3 ',' -1354.98879e + 37436 '

// рдЕрдорд╛рдиреНрдп рдорд╛рди:
рдЕрд╕рддреНрдп, рд╕рддреНрдп, '', '-', '.рдП', '-1.a', '.рдП', ',', '-', '1+', '1.3+', 'a1' , 'e.e', '-e-4', 'e2', '8e', '3.25', '1.1''


рдореИрдкрд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐

рдЖрдЗрдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬреЛ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рд╕реНрд╡реАрдХреГрдд рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ "рдЖрдЙрдЯ" рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг: рдореИрдкрд┐рдВрдЧ
 function mapping(AMatch $match) { //   $errors_mapping = array( AMatchStatus::KEY_TYPE_NOT_VALID => 'invalid_type', AMatchStatus::KEY_CONDITION_NOT_VALID => 'invalid_data', AMatchStatus::KEY_NOT_EXISTS => 'required', ); $results = $match->matchResults(); //    $comments = $match->matchComments(); //    $comments_conditions = $match->matchCommentsConditions(); //   $output = array(); foreach ($results as $param => $result) { $error = array_key_exists($result, $errors_mapping) ? $errors_mapping[$result] : 'other_errors'; // ,      $comment = $param . ': ' . $comments[$param]; if (isset($comments_conditions[$param]) && !empty($comments_conditions[$param][0])) { $comment .= ' (' . $comments_conditions[$param][0] . ')'; //   } $output[$error][] = $comment; } var_export($output); } $match = AMatch::runMatch($params_bad, AMatch::FLAG_SHOW_GOOD_COMMENTS | AMatch::FLAG_DONT_STOP_MATCHING) ->title('', 'string') //    string ->parent_id('', 'int') //    string ->ineedkey() //    ->subject_id(1, '>') // "1"    ->delimeter('', 'blabla') //    ; mapping($match); 


рдЗрд╕ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкрд╣рд▓реЗ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрд░рдЪрдирд╛ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

"рдореИрдкрд┐рдВрдЧ" рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо
 array ( 'invalid_type' => array ( 0 => 'title: Expected parameter type is not valid (string)', 1 => 'parent_id: Expected parameter type is not valid (int)', ), 'required' => array ( 0 => 'ineedkey: Expected parameter does not exist in the array of parameters', ), 'invalid_data' => array ( 0 => 'subject_id: Condition is not valid (1)', ), 'other_errors' => array ( 0 => 'delimeter: Condition is unknown', ), ) 



рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреА рдЕрдкрдиреА рддреНрд░реБрдЯрд┐

рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ), рдпрд╣ рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкрд╛рда рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рддреНрд░реБрдЯрд┐ рдореЗрдВ рдкрд╛рда рдЬреЛрдбрд╝реЗрдВ ("рдореИрдкрд┐рдВрдЧ"):

рдЙрджрд╛рд╣рд░рдг: рдЕрджреНрд╡рд┐рддреАрдп рддреНрд░реБрдЯрд┐рдпрд╛рдБ
 ... ->title('', 'string', 'Incorrect document title. Please, read FAQ.') ... 


рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
 array ( 'other_errors' => array ( 0 => 'title: Incorrect document title. Please, read FAQ. (string)', 1 => 'delimeter: Condition is unknown', ), 


рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди (i18n рд╕рд╣рд┐рдд)

рдЪрд▓реЛ "рдореИрдкрд┐рдВрдЧ" рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо AMatchStatus рд╕реЗ рдПрдХ рдЗрдирд╣реЗрд░реАрдЯрд░ рд╡рд░реНрдЧ рд▓рд┐рдЦреЗрдВрдЧреЗред рдЕрдВрджрд░, рдЖрдкрдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рдХрд░рддреЗ рд╣реБрдП _fillComments () рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ AMatch :: runMatch () рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ред

рдЙрджрд╛рд╣рд░рдг: рд░реВрд╕реА
 class AMatchRussian extends AMatchStatus { protected function _fillComments() { parent::_fillComments(); //     ,         $this->_result_comments[self::KEY_NOT_EXISTS] = ',  .  '; $this->_result_comments[self::KEY_CONDITION_NOT_VALID] = '   ,   '; $this->_result_comments[self::CONDITION_IS_UNKNOWN] = ''; } } $match = AMatch::runMatch($params_bad, AMatch::FLAG_SHOW_GOOD_COMMENTS | AMatch::FLAG_DONT_STOP_MATCHING, new AMatchRussian()) // ...   ,     mapping ; mapping($match); 


рдЙрддреНрддрд░ рдореЗрдВ рдмрд┐рдирд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдП рдЧрдП рдирд┐рд░реНрдорд╛рдг рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред
"рд░реВрд╕реА" рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо
 array ( 'other_errors' => array ( 0 => 'title: Incorrect document title. Please, read FAQ. (string)', 1 => 'delimeter: ', ), 'invalid_type' => array ( 0 => 'parent_id: Expected parameter type is not valid (int)', ), 'required' => array ( 0 => 'ineedkey: ,  .  ', ), 'invalid_data' => array ( 0 => 'subject_id:    (1)', ), ) 



рдирдИ рдХреЙрд▓рдмреИрдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБ


рдЯреНрд░реИрдХрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛:

 $match->data(array($this, 'callbackMethod'), 'callback'); 

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдм рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЙрджрд╛рд╣рд░рдг: рдХреЙрд▓рдмреИрдХ
 // param([mixed $callback_argument], [callable|callable $callback]) //  // param([callable|string $callback], 'callback') // : ->param($callback_property, 'MyClass::myFunc') ->param($callback_property, 'MyClass->myFunc') ->param($callback_property, array($my_obj, 'myFunc')) ->param($callback_property, array('MyClass', 'myFunc')) 


рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреЙрд▓рдмреИрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕


рдПрдорд╛рдЪ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде-рд╕рд╛рде рддреИрдпрд╛рд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреЗ рджреЛ рд╡рд░реНрдЧ рд╣реИрдВ:
  1. рд╡рд░реНрдЧ AMatchArray
  2. рдХрдХреНрд╖рд╛ AMatchString

рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдЙрджрд╛рд╣рд░рдг: рдкреНрд▓рдЧрдЗрдиреНрд╕
 function matchCallbacks($params) { $match = AMatch::runMatch($params, AMatch::FLAG_DONT_STOP_MATCHING) ->parent_id('/^-?\d+$/', 'AMatchString::pregMatch') //     ->title(12, 'AMatchString::length') //    ->email('([\w-]+@([\w-]+\.)+[\w-]+)', 'AMatchString::isEmail') //  email   (  ) ->links(AMatchArray::FLAG_EMPTY_SOME_ELEMENT, 'AMatchArray::isNotEmpty') //     :            - ; result($match); } matchCallbacks($params); matchCallbacks($params_bad); 


рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ
 //   Dance! array ( ) array ( ) array ( ) //   Cry! array ( 'parent_id' => 'str3', 'title' => 'str5', 'email' => 'str4', 'links' => 'arr8', ) array ( 'parent_id' => 'The string does not match the regular expression', 'title' => 'String required', 'email' => 'Incorrect email', 'links' => 'At least one element of the array must be non-empty', ) array ( 'parent_id' => array ( 0 => '/^-?\\d+$/', 1 => 'AMatchString::pregMatch', ), 'title' => array ( 0 => 12, 1 => 'AMatchString::length', ), 'email' => array ( 0 => 'someuser!@mail.dom', 1 => 'AMatchString::isEmail', ), 'links' => array ( 0 => NULL, 1 => 'AMatchArray::isNotEmpty', ), ) 



Poslebukvie


рдлрд┐рд▓рд╣рд╛рд▓ AMatch рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 $match = AMatch::runMatch(array $associative_array, bitmask $flags, AMatchStatus $obj) ->_([___], []) ->тАж; $match->stopMatch(); //    $match->matchResults(); //    (   ,  ) $match->matchComments(); //   $match->matchCommentsConditions(); //    

рдЖрдк рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ (unittests рджреЗрдЦреЗрдВ) рдФрд░ рдЧрд┐рддреБрдм рдкрд░ рдПрдорд╛рдЪ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ , рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддреИрдпрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓реЗрдЧреА (рдЙрджрд╛рд╣рд░рдг 2.php )ред

рдпреБрдкреАрдбреА:
рд╕рдВрдЧреАрддрдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рддред

Source: https://habr.com/ru/post/In150039/


All Articles