Validation এবং Custom Validation Rules

Form Handling এবং Validation - ফ্যালকন (Phalcon) - Web Development

268

Phalcon ফ্রেমওয়ার্কে Validation একটি গুরুত্বপূর্ণ অংশ, যা ডেটার বৈধতা পরীক্ষা করে নিশ্চিত করে যে ইউজার ইনপুট সঠিক এবং প্রত্যাশিত ফরম্যাটে রয়েছে। Phalcon এর ভ্যালিডেশন সিস্টেম সহজ, শক্তিশালী এবং কাস্টমাইজযোগ্য, যা ডেভেলপারদের তাদের অ্যাপ্লিকেশনগুলিতে ইনপুট ভ্যালিডেশন কার্যকরভাবে পরিচালনা করতে সাহায্য করে।

Phalcon এর Model Validation সিস্টেম মডেলের মাধ্যমে ডেটার ইনপুট যাচাই করে। এটি আপনাকে বিভিন্ন ধরনের পূর্বনির্ধারিত ভ্যালিডেশন রুলস যেমন presenceOf, email, stringLength, ইত্যাদি ব্যবহার করার সুবিধা দেয়। এর পাশাপাশি, আপনি কাস্টম ভ্যালিডেশন রুলসও তৈরি করতে পারেন।


Phalcon এ Validation এর প্রধান বৈশিষ্ট্য

  • পূর্বনির্ধারিত ভ্যালিডেশন রুলস: Phalcon কিছু পূর্বনির্ধারিত ভ্যালিডেশন রুলস সরবরাহ করে, যেমন ইমেইল, নাম্বার, স্ট্রিং লেংথ, পজিটিভ নাম্বার ইত্যাদি।
  • কাস্টম ভ্যালিডেশন: আপনি কাস্টম ভ্যালিডেশন রুলস তৈরি করতে পারেন, যা বিশেষ বা অ্যাপ্লিকেশনের নির্দিষ্ট প্রয়োজন অনুযায়ী কাজ করবে।
  • মডেল ভ্যালিডেশন: Phalcon এর মডেল সিস্টেমের মাধ্যমে, আপনি খুব সহজেই মডেল ডেটার জন্য ভ্যালিডেশন চালাতে পারেন।
  • রিটার্ন ভ্যালিডেশন ফলাফল: ভ্যালিডেশন চলাকালীন আপনি ভ্যালিডেশন ফলাফল পেতে পারেন এবং তার ভিত্তিতে পরবর্তী পদক্ষেপ নিতে পারেন, যেমন ডেটা সংরক্ষণ বন্ধ করা অথবা ভুল বার্তা প্রদর্শন করা।

Phalcon এ Validation প্রয়োগ

Phalcon এ মডেল ভ্যালিডেশন প্রক্রিয়া খুব সহজ। মডেল ক্লাসের মধ্যে validation() মেথড ব্যবহার করা হয়, যেখানে আপনি ভ্যালিডেশন রুলস সেট করতে পারেন। নিচে একটি উদাহরণ দেখানো হলো:

use Phalcon\Mvc\Model;
use Phalcon\Validation;
use Phalcon\Validation\Validator\PresenceOf;
use Phalcon\Validation\Validator\Email;
use Phalcon\Validation\Validator\StringLength;

class Users extends Model
{
    public $id;
    public $name;
    public $email;

    public function validation()
    {
        $validator = new Validation();

        // Name must be present
        $validator->add('name', new PresenceOf([
            'message' => 'The name is required'
        ]));

        // Email must be a valid email address
        $validator->add('email', new Email([
            'message' => 'The email is not valid'
        ]));

        // Name length must be between 5 and 50 characters
        $validator->add('name', new StringLength([
            'min' => 5,
            'max' => 50,
            'messageMinimum' => 'Name is too short',
            'messageMaximum' => 'Name is too long'
        ]));

        return $this->validate($validator);
    }
}

এখানে, validation() মেথডে ভ্যালিডেশন রুলস যোগ করা হয়েছে:

  • PresenceOf: এটি নিশ্চিত করে যে name ফিল্ডটি খালি না থাকে।
  • Email: এটি নিশ্চিত করে যে email ফিল্ডটি একটি বৈধ ইমেইল ঠিকানা।
  • StringLength: এটি name ফিল্ডের দৈর্ঘ্য 5 থেকে 50 এর মধ্যে হতে হবে।

মডেলটিতে validate() মেথড কল করলে, ডেভেলপার ভ্যালিডেশন রুলস চালাতে পারেন।


Phalcon এ Custom Validation Rules তৈরি করা

Phalcon আপনাকে কাস্টম ভ্যালিডেশন রুল তৈরি করার অনুমতি দেয়, যা বিশেষ কিছু শর্ত পূরণ করতে পারে। কাস্টম ভ্যালিডেশন রুল তৈরি করতে, আপনাকে Phalcon\Validation\Validator ক্লাস থেকে একটি নতুন কাস্টম ভ্যালিডেটর তৈরি করতে হবে।

এখানে একটি কাস্টম ভ্যালিডেশন রুল তৈরি করার উদাহরণ:

use Phalcon\Validation\Validator\AbstractValidator;

class AlphaSpacesValidator extends AbstractValidator
{
    public function validate($validation, $attribute)
    {
        $value = $this->getOption('value');
        
        // Check if the value contains only alphabets and spaces
        if (!preg_match('/^[a-zA-Z\s]+$/', $value)) {
            $this->appendMessage(
                "The $attribute must contain only alphabets and spaces",
                $attribute,
                'AlphaSpaces'
            );
            return false;
        }
        
        return true;
    }
}

এখানে, AlphaSpacesValidator ক্লাসটি একটি কাস্টম ভ্যালিডেটর যা শুধুমাত্র অক্ষর এবং স্পেসের অনুমতি দেয়।

এই কাস্টম ভ্যালিডেটর ব্যবহার করার উদাহরণ:

class Users extends Model
{
    public $name;

    public function validation()
    {
        $validator = new Validation();

        // Custom validator usage
        $validator->add('name', new AlphaSpacesValidator([
            'message' => 'The name can only contain alphabets and spaces'
        ]));

        return $this->validate($validator);
    }
}

এখানে, AlphaSpacesValidator ব্যবহার করা হয়েছে name ফিল্ডের জন্য, যাতে এটি শুধুমাত্র অক্ষর এবং স্পেস অনুমোদন করে।


Validation এর ফলাফল চেক করা

যখন আপনি Phalcon এর ভ্যালিডেশন চালান, তখন আপনি এর ফলাফল চেক করতে পারেন:

$user = new Users();
$user->name = "John Doe";
$user->email = "john@example.com";

if ($user->save() === false) {
    echo "Sorry, we can't store the user right now:<br>";
    foreach ($user->getMessages() as $message) {
        echo $message, "<br>";
    }
} else {
    echo "The user was successfully saved!";
}

এখানে, save() মেথডে যদি ভ্যালিডেশন ব্যর্থ হয়, তবে getMessages() মেথড ব্যবহার করে ত্রুটি বার্তা দেখানো হয়।


সারাংশ

Phalcon এর ভ্যালিডেশন সিস্টেম অত্যন্ত শক্তিশালী এবং কাস্টমাইজযোগ্য, যা ডেভেলপারদের ডেটা ইনপুট যাচাই করতে এবং কাস্টম ভ্যালিডেশন রুলস তৈরি করতে সাহায্য করে। Phalcon আপনাকে পূর্বনির্ধারিত ভ্যালিডেশন রুলস যেমন PresenceOf, Email, এবং StringLength সহ কাস্টম রুলস তৈরি করার সুবিধা দেয়, যা আপনার অ্যাপ্লিকেশনের ডেটা বৈধতা নিশ্চিত করতে কার্যকরীভাবে কাজ করে।

Content added By
Promotion

Are you sure to start over?

Loading...