TLDR;
PHP Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π²Ρ
ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ., (*1)
'required',
'email' => 'required|email',
'message' => 'string_min_length:15|string_max_length:255'
));
if ($validator->fails()) {
$errors = $validator->get_errors();
} else {
send_mail_notification();
header('Location: ?success');
}
?>
- Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π½ΠΎΠ² ΠΎΠ±Π΅ΠΊΡ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Π°Π²Π°ΠΌΠ΅ Π²Ρ
ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° ΡΠΏΠΎΡΠ΅Π΄ ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Ρ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ
- ΠΡ
ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π΅Π½ ΠΌΠ°ΡΠΈΠ² ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°
$_POST
- ΠΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π΅Π½ ΠΌΠ°ΡΠΈΠ² Π² ΠΊΠΎΠΉΡΠΎ ΠΊΠ»ΡΡΠ° Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°: Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡΡ ΠΊΡΠΌ Π½Π΅Π³ΠΎ
- ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π΄Π°Π»ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ° Π²Π°Π»ΠΈΠ΄Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ°ΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°
$validator->fails()
ΠΈΠ»ΠΈ $validator->passes()
- ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ ΡΠΏΠΈΡΡΠΊ ΠΎΡ Π³ΡΠ΅ΡΠΊΠΈ ΠΎΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠ° ΡΡΠ΅Π·
$validator->get_errors()
- ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ΄Π°Π²Π°ΠΌΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°(ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎ-Π΄ΠΎΠ»Ρ)
ΠΠ΅ΡΠΈΠ½ΠΈΡΠΈΡ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ°
ΠΡΡΠΊΠΎ ΠΏΠΎΠ»Π΅ ΡΠ΅ Π°ΡΠΎΡΠΈΠΈΡΠ° Ρ Π½Π°Π±ΠΎΡ ΠΎΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΡΠ½Π°Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° string ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΈΠ². ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π°Π²Π°Ρ ΠΊΠ°ΡΠΎ ΡΡΡΠΈΠ½Π³ ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° pipe(|
) ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:, (*2)
<?php
$validator = new Carbon_Validator($_POST, array(
// The "customer_email" field is required and must be valid email
'customer_email' => 'required|email'
));
?>
ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π°Π²Π°Ρ ΠΊΠ°ΡΠΎ ΠΌΠ°ΡΠΈΠ² ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ ΡΠΈΡΠ»ΠΎΠ²ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:, (*3)
<?php
$validator = new Carbon_Validator($_POST, array(
'email' => array('required', 'email')
));
?>
ΠΡΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ:, (*4)
- ΠΠΌΠ΅(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
string_min_length
)
- ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Ρ Π΄Π²ΡΠ΅ΡΠΎΡΠΈΠ΅(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
:15
ΠΎΡ string_min_length:15
)
ΠΠ°Π»ΠΈΡΠ½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
Carbon_Validator
ΠΈΠ΄Π²Π° Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎ ΠΎΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°. ΠΠ° Π΄Π° Π·Π°ΡΠ΅Π΄ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ»Π΅Π΄Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄:, (*5)
Carbon_Validator::load_package('wordpress');
ΠΠ°ΠΊΠ΅Ρ generic
(Π·Π°ΡΠ΅ΠΆΠ΄Π° ΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅):
* required
- ΠΏΠΎΠ»Π΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ
* in:value1,value2,value3,...
- ΠΏΠΎΠ»Π΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° Π΅Π΄Π½Π° ΠΎΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎΡΠΎ
* email
- Π²Π°Π»ΠΈΠ΄Π΅Π½ email Π°Π΄ΡΠ΅Ρ (Π·Π°Π΄ ΠΊΡΠ»ΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° filter_var
Π½Π° PHP)
* regex:/regex_body/i
- Π²Π°Π»ΠΈΠ΄ΠΈΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ Ρ ΠΏΠΎΠ΄Π°Π΄Π΅Π½ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ΅Π½ ΠΈΠ·ΡΠ°Π·
* numeric
- ΠΏΡΠ΅ΠΊΠ°ΡΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΏΡΠ΅Π· Π²Π³ΡΠ°Π΄Π΅Π½Π°ΡΠ° Π² PHP is_numeric
ΡΡΠ½ΠΊΡΠΈΡ
* string_min_length:value
- ΡΠΊΠ°Π·Π²Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° Π΄ΡΠ»ΠΆΠΈΠ½Π° Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ
* string_max_length:value
- ΡΠΊΠ°Π·Π²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° Π΄ΡΠ»ΠΆΠΈΠ½Π° Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ
* numeric_min:value
- ΡΠΊΠ°Π·Π²Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° ΡΠΈΡΠ»ΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ
* numeric_max:value
- ΡΠΊΠ°Π·Π²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΡΠΈΡΠ»ΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ
* url
- Π²Π°Π»ΠΈΠ΄Π΅Π½ URL Π°Π΄ΡΠ΅Ρ(Π·Π°Π΄ ΠΊΡΠ»ΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° filter_var
Π½Π° PHP)
* file:ext,ext2
- ΡΠ²Π΅ΡΡΠ²Π° ΡΠ΅ ΡΠ΅ Π΅ ΠΊΠ°ΡΠ΅Π½ ΡΠ°ΠΉΠ» Ρ ΠΎΠΏΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠΏ. ΠΠ΅ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°ΠΌΠΈΡ extension Π½Π° ΡΠ°ΠΉΠ°, Π° Π½Π° MIME ΡΠΈΠΏΠ° ΠΌΡ
* filesize:2M
- ΡΠ²Π΅ΡΡΠ²Π° ΡΠ΅ ΡΠ΅ Π΅ ΠΊΠ°ΡΠ΅Π½ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ(2MB). ΠΡΠΈΠ΅ΠΌΠ°Ρ ΡΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ ΡΡΡ ΡΡΡΠΈΠΊΡ K(ΠΎΡ KB)
* email_exists
- ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Ρ ΡΠΎΠ·ΠΈ email Π°Π΄ΡΠ΅Ρ
* user_exists
- ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Ρ ΡΠΎΠ·ΠΈ username, (*6)
ΠΠ°ΠΊΠ΅Ρ wordpress
:
* wp_nonce:action_name
- ΠΠ°Π»ΠΈΠ΄ΠΈΡΠ° ΠΏΠΎΠ»Π΅ΡΠΎ ΡΡΠ΅Π· wp_verify_nonce()
* wp_post:post_type1,post_type2
- ΠΠ°Π»ΠΈΠ΄ΠΈΡΠ° ID
Π½Π° ΠΏΠΎΡΡ ΡΡΠ΅Π· get_post()
. ΠΠΎ ΠΈΠ·Π±ΠΎΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ 1 ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΡΡ ΡΠΈΠΏΠΎΠ²Π΅ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ Π·Π° Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π½Π° ΠΏΠΎΡΡΠ°
* wp_user:role_or_capability1,role_or_capability2
- ΠΠ°Π»ΠΈΠ΄ΠΈΡΠ° ID
Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΡΡΠ΅Π· get_userdata()
. ΠΠΎ ΠΈΠ·Π±ΠΎΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ 1 ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΎΠ»ΠΈ/Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ Π·Π° Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, (*7)
Store / Load
ΠΠΌΠ°ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° Carbon_Validator ΠΈ Π΄Π° Π³ΠΈ Π·Π°ΡΠ΅Π΄ΠΈΡΠ΅ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ., (*8)
Carbon_Validator::store('some_id', $validator);
$validator = Carbon_Validator::load('some_id');
Example:
functions.php, (*9)
"required",
"contact_email" => "required|email",
"contact_message" => "required",
));
// Store the validator, so we can use it in the front-end
Carbon_Validator::store('contact_form' , $validator);
$success = $validator->passes();
if ($success) {
// Send email notification, or whatever.
}
}
?>
templates/contact.php, (*10)
<?php if ($validator->passes()): ?>
<p class="alert alert-success"><?php _e('Your message has been sent.', 'crb'); ?></p>
<?php elseif ($errors = $validator->get_errors()): ?>
<div class="alert alert-danger">
<ul>
<?php foreach ($errors as $error): ?>
<li><?php echo esc_html($error) ?></li>
<?php endforeach ?>
</ul>
</div>
<?php endif ?>
Custom Error Messages
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΎΠ½Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π²ΡΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΎΠ±Π°ΡΠ΅ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΈ custom error messages. Π’ΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΡΡΠ΅Π· 3ΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π½Π° ΠΊΠ»Π°ΡΠ° Validator
:, (*11)
'required',
'email' => 'required|email',
'message' => 'string_min_length:15|string_max_length:255'
);
$error_messages = array(
'name.required' => 'We need your full name in order to contact you later. ',
'message.string_min_length' => 'Your message is too short -- please enter more than 15 characters. ',
'message.string_max_length' => 'Your message is too long -- please enter less than 255 characters. '
);
$validator = new Carbon_Validator($_POST, $rules, $error_messages);
?>
Global default error messages
ΠΠ° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π΅Π΄Π½ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° Carbon_Validator, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄:, (*12)
// Carbon_Validator::register_default_error_message($rule, $message);
Carbon_Validator::register_default_error_message('required', 'You should really fill out the "%1$s" field.');
ΠΠΊΠΎ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, %1$s
ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΠΌΠ΅ΡΡΠ΅Π½ΠΎ Ρ user-friendly ΠΈΠΌΠ΅ Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°., (*13)
Π’ΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ Π΄Π°Π΄Π΅Π½ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π°Π½Π΅ ( __()
, _Π΅()
ΠΈ Ρ.Π½. Π² WordPress), (*14)
Custom Validation Rules
ΠΠ³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ. ΠΠΎΠ³Π°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°ΠΈΠΌ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:, (*15)
"John Doe",
# "ip-address" => "192.168.2.54",
# );
$rules = array(
'ip-address' => 'required|internal_ip',
);
$messages = array(
'ip-address.internal_ip' => 'Please enter valid internal IP addres. ',
);
$validator = new Carbon_Validator($_POST, $rules, $messages);
?>
Π Π°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ΡΠΎ ΡΡΠ°Π²Π° ΡΡΠ΅Π· ΡΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ Carbon_Validator::extend($rule_name, $callback)
. Π‘Π»Π΅Π΄ ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅, $rule_name
ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ»Π·Π²Π° Π²ΡΠ² Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π° ΡΠΎΡΠΌΠΈΡΠ΅., (*16)
Π‘Π°ΠΌΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΊΡΠΌ Carbon_Validator
ΠΊΠ»Π°ΡΠ° ΡΡΠ΅Π· Ρ
Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Carbon_Validator_ValidationError
., (*17)
Custom Validation Rule Callback
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π°Π²Π°Ρ Π½Π° callback-Π° ΡΠ°:, (*18)
function my_custom_validation_rule_callback($value, $parameters, $field, $validator_instance) { };
-
$value
- ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°
-
$parameters
- ΠΌΠ°ΡΠΈΠ² ΠΎΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎΡΠΎ (Π² ΡΠΏΠΈΡΡΠΊ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ ΡΡΡ Π·Π°ΠΏΠ΅ΡΠ°ΠΈ)
-
$field
- ΠΏΠΎΠ»Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°
-
$validator_instance
- ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΊΡΠΌ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΡΠ° Π½Π° Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠ°, ΠΊΠΎΡΡΠΎ Π²ΠΈΠΊΠ° ΡΠΎΠ·ΠΈ callback
ΠΠ°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
Carbon_FileUpload::make($_FILES['avatar'])
));
$validator = new Carbon_Validator($data, array(
'name' => 'required',
'email' => 'required|email',
'message' => 'required',
'avatar' => 'file:jpg|filesize:1M',
));
?>
ΠΠ°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΡΡΠΊΡΠΈ Π²ΡΠ² validator/mime-types.php
., (*19)
ΠΠ°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΈΠ²ΠΈ
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ°ΡΠΈΠ²ΠΈ Π² $_POST
ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π½Π° ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΈ ΡΠΊΠΎΠ±ΠΈ Π·Π° Π΄Π° ΠΎΠΏΠΈΡΠ΅ΡΠ΅ Π΄ΠΎ Π½Π΅Π³ΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:, (*20)
array(
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'johndoe@example.com',
'address' => array(
'street' => array(
'number' => "123"
)
)
)
);
$validator = new Carbon_Validator($input, array(
'user[first_name]' => 'required',
'user[last_name]' => 'required|string_min_length:2',
'user[email]' => 'email',
'user[address][street][number]' => 'required',
));
var_dump($validator->passes());
?>
ΠΠΈΠ·Π°ΠΉΠ½Π° Π½Π° ΠΊΠ»Π°ΡΠ° Π΅ Π²Π·Π°ΠΈΠΌΡΡΠ²Π°Π½ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Laravel., (*21)