Respect/Validation PHP: पूर्ण गाइड उदाहरणों के साथ
Respect/Validation PHP में डेटा वैलिडेशन के लिए एक शक्तिशाली और सुंदर लाइब्रेरी है। PHP के बिल्ट-इन फंक्शन (जैसे filter_var या रेगुलर एक्सप्रेशन) के विपरीत, Respect/Validation जटिल वैलिडेशन नियम बनाने के लिए ऑब्जेक्ट-ओरिएंटेड, चेनिंग (fluent) इंटरफ़ेस प्रदान करता है। यह लाइब्रेरी पढ़ने योग्य, स्व-दस्तावेज़ीकृत जाँच बनाने में मदद करती है जिन्हें बनाए रखना और विस्तारित करना आसान है।
इस लाइब्रेरी की आवश्यकता क्यों है? किसी भी वेब एप्लिकेशन में उपयोगकर्ता इनपुट को सत्यापित करना आवश्यक है: ईमेल, पासवर्ड, URL, IP पते, तिथियाँ, संख्यात्मक श्रेणियाँ और बहुत कुछ। वैलिडेशन सिस्टम के बिना, कोड if-else और रेगुलर एक्सप्रेशन की गड़बड़ी बन जाता है। Respect/Validation इस समस्या को हल करता है, 100 से अधिक तैयार नियम (वैलिडेटर) प्रदान करता है जिन्हें जोड़कर जटिल जाँच श्रृंखलाएँ बनाई जा सकती हैं। लाइब्रेरी विभिन्न भाषाओं में कस्टम एरर मैसेज भी सपोर्ट करती है, जो इसे अंतर्राष्ट्रीय प्रोजेक्ट्स के लिए आदर्श बनाती है।
मुख्य विशेषता है वैलिडेशन चेन। आप एक चेन में कई नियमों को जोड़ सकते हैं, और वे क्रमिक रूप से लागू होंगे। यदि कम से कम एक नियम विफल होता है, तो वैलिडेशन रुक जाता है (डिफ़ॉल्ट रूप से) और एक त्रुटि लौटाता है। यह कॉम्पैक्ट लेकिन बहुत अभिव्यंजक कोड लिखने की अनुमति देता है।
इंस्टॉलेशन
इंस्टॉलेशन Composer के माध्यम से किया जाता है - PHP के लिए मानक पैकेज मैनेजर। अपने प्रोजेक्ट की रूट डायरेक्टरी में टर्मिनल में निम्नलिखित चलाएँ:
composer require respect/validation
इंस्टॉलेशन के बाद, अपनी PHP फ़ाइल में Composer ऑटोलोडर को शामिल करें:
require_once 'vendor/autoload.php';
त्वरित शुरुआत
ईमेल और पासवर्ड जाँच का एक न्यूनतम कार्यशील उदाहरण:
use Respect\Validation\Validator as v;
$email = 'user@example.com';
$password = 'StrongP@ss1';
// वैलिडेशन चेन बनाएँ
$validator = v::email()->length(6, 100)->notEmpty();
if ($validator->validate($email)) {
echo "ईमेल मान्य है!";
} else {
// त्रुटियों की सूची प्राप्त करें
$errors = $validator->getMessages();
print_r($errors);
}
// पासवर्ड जाँच
$passwordValidator = v::alnum()->noWhitespace()->length(8, 32);
if ($passwordValidator->validate($password)) {
echo "पासवर्ड मान्य है!";
}
इस उदाहरण में, v::email() ईमेल फ़ॉर्मेट की जाँच करता है, length(6, 100) स्ट्रिंग की लंबाई, और notEmpty() कि मान खाली नहीं है। सभी नियम एक चेन में जुड़े हुए हैं।
मुख्य तरीके और क्लासेस
लाइब्रेरी के 8 प्रमुख तरीकों (नियमों) पर नज़र डालें। प्रत्येक नियम Respect\Validation\Validator क्लास का एक स्टैटिक मेथड है (आमतौर पर v के रूप में इम्पोर्ट किया जाता है)।
1. v::email()
सिग्नेचर: public static function email(): Validator
यह क्या करता है: जाँचता है कि मान RFC 5321/5322 के अनुसार एक मान्य ईमेल पता है या नहीं।
उदाहरण:
$validator = v::email();
var_dump($validator->validate('test@test.com')); // true
var_dump($validator->validate('not-an-email')); // false
2. v::alnum()
सिग्नेचर: public static function alnum(string $additionalChars = ''): Validator
यह क्या करता है: जाँचता है कि स्ट्रिंग में केवल अक्षर (a-z, A-Z) और अंक (0-9) हैं या नहीं। अतिरिक्त अनुमत वर्ण भी पास किए जा सकते हैं।
उदाहरण:
$validator = v::alnum();
var_dump($validator->validate('abc123')); // true
var_dump($validator->validate('hello world')); // false (स्पेस अनुमत नहीं)
// अतिरिक्त वर्णों के साथ
$validatorWithDash = v::alnum('-');
var_dump($validatorWithDash->validate('my-name')); // true