рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЙрди рдХреБрдЫ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд
рдХрд░реВрдВрдЧрд╛ рдЬреЛ
рдкрд╣рд▓реЗ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрди рдХреЗ рдмрд╛рдж рд╕реЗ
рдПрдорд╛рдЪ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВред
рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдПрдорд╛рдЪ рдПрдХ рдРрд╕рд╛ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рдПрдХ рдмрдбрд╝реЗ рд╕реЗрдЯ рд╕реЗ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдЕрдЧрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЙрджрд╛рд╣рд░рдг: рд╕рд░рд▓$match = AMatch::runMatch($params) ->doc_id(0, '<')
рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛
рдЖрдЧреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд╣рдо "рдЕрдЪреНрдЫреЗ" рдФрд░ "рдЦрд░рд╛рдм" рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рд░рдгреА рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗ:
рдЙрджрд╛рд╣рд░рдг: рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ $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');
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
- 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) {
рдЗрд╕ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкрд╣рд▓реЗ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрд░рдЪрдирд╛ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
"рдореИрдкрд┐рдВрдЧ" рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо 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();
рдЙрддреНрддрд░ рдореЗрдВ рдмрд┐рдирд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдП рдЧрдП рдирд┐рд░реНрдорд╛рдг рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред
"рд░реВрд╕реА" рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо 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');
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдм рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЙрджрд╛рд╣рд░рдг: рдХреЙрд▓рдмреИрдХ
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреЙрд▓рдмреИрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕
рдПрдорд╛рдЪ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде-рд╕рд╛рде рддреИрдпрд╛рд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреЗ рджреЛ рд╡рд░реНрдЧ рд╣реИрдВ:
- рд╡рд░реНрдЧ AMatchArray
- рдХрдХреНрд╖рд╛ AMatchString
рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдЙрджрд╛рд╣рд░рдг: рдкреНрд▓рдЧрдЗрдиреНрд╕ function matchCallbacks($params) { $match = AMatch::runMatch($params, AMatch::FLAG_DONT_STOP_MATCHING) ->parent_id('/^-?\d+$/', 'AMatchString::pregMatch')
рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ Poslebukvie
рдлрд┐рд▓рд╣рд╛рд▓ AMatch рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
$match = AMatch::runMatch(array $associative_array, bitmask $flags, AMatchStatus $obj) ->_([___], []) ->тАж; $match->stopMatch();
рдЖрдк рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ (unittests рджреЗрдЦреЗрдВ) рдФрд░
рдЧрд┐рддреБрдм рдкрд░ рдПрдорд╛рдЪ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ , рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде
рдПрдХ рддреИрдпрд╛рд░ рдлрд╝рд╛рдЗрд▓
рдорд┐рд▓реЗрдЧреА (рдЙрджрд╛рд╣рд░рдг
2.php )ред
рдпреБрдкреАрдбреА:
рд╕рдВрдЧреАрддрдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рддред