Ukieweb

Diary

I write here what I learn

Method Chaining in PHP

Method Chaining in PHP

স্বাগতম আজকের বিষয়ে। আজকের বিষয়টি খুবই মজার। আশা করি সবার ভালো লাগবে। আর ভালো না লাগলেও সমস্যা নেই আবার পড়ুন তাহলেই ভালো লাগবে :D । যাইহোক আজকের বিষয় হলো Method Chaining. হুম বিষয়টির সাথে হয়তোবা অনেকেই পরিচিত বিশেষ করে আমরা যারা আধুনিক PHP Framework গুলোতে কাজ করি তারা। তবে বিষয় হচ্ছে আমরাতো বেশিরভাগ সময়েই রেডিমেড Method Chaining এ কাজ করি কিন্তু নিজে হয়তোবা এখনো এ পদ্ধতিটি ডেভলপ করে দেখিনি। Method Chaining মূলত PHP5 থেকে PHP এর সাথে যুক্ত হয়েছে আর যা বর্তমানে আধুনিক PHP এর এক অবিচ্ছিন্ন অংশ হয়ে দাড়িয়েছে। তো চলুন আমরাও যেনে নেই এ Method Chaining মূলত কি এবং কিভাবে ডেভলপ করে ও তা কিভাবে ব্যবহার করতে হয়ঃ

Method Chaining কি?

আমি যদি আমার ভাষায় বলি তাহলে Method Chaining হলো এমন একটি পদ্ধটি যেখানে method গুলো একটি ক্লাসের অবজেক্ট রিটার্ন করে অথবা Properties গুলো কোনো অবজেক্টকে ধারন করে এবং সেই Method বা Properties থেকে ঐ অবজেক্টের অন্য method বা properties কে কল করা যাবে এবং এধারাটি চলতে থাকবে যতক্ষন পর্যন্ত অবজেক্ট রিটার্ন বন্ধ না হয়।

একটি উধাহরন দেখুনঃ

$calculator = new Calculator;

echo $calculator->value(2, 3)->add()->result();

কিভাবে ডেভলপ করবো?

তো চলুন আমরা একটি class তৈরী করি যেখানে উপরের উধাহরনের মতো method chaining ব্যবহার করবো।


// method_chaining.php

class Calculator
{
    private $value1;
    private $value2;
    private $result;

    public function value($value1, $value2)
    {
        $this->value1 = $value1;
        $this->value2 = $value2;
        return $this;
    }

    public function sum()
    {
        $this->result = $this->value1 + $this->value2;
        return $this;
    }

    public function sub()
    {
        $this->result = $this->value1 - $this->value2;
        return $this;
    }

    public function result()
    {
        return $this->result;
    }
}

$calculator = new Calculator;

echo $caltulator->value(3, 4)->add()->result();

//output: 7

এবার আমরা $caltulator->value(3, 4)->add()->result() এ chaining টাকে বোঝার চেষ্টা করবো। $calculator হলো Calculator class এর একটি অবজেক্ট যার অর্থ হলো এই $calculator অবজেক্ট থেকে Calculator class এর সকল public মেথড ও প্রোপার্টিজ কে এক্সেস করা যায়। ঠিক তেমনি খেয়াল করলে দেখবেন value() method টিও কিন্তু Calculator class এর অবজেক্টকেই রিটার্ন করেছে যার অর্থ দারাচ্ছে আপনি এই value() method থেকেও Calculator class এর সকল public মেথড ও প্রোপার্টিজ কে এক্সেস করতে পারবেন কারন এ মেথডটিও এখন অবজেক্টের ন্যায় আচরন করবে। তাই যখনই কোনো variable বা method/function কোনো ক্লাসের Instance return করে তখন ঐ variable ও method/function ক্লাসের অবজেক্টের মতোই আচরন করবে। এখানে add() method ও ঠিক একই কাজ করেছে।

এখানে মনে রাখা জরুরী যে method chaining এ প্রোগ্রাম left to right এ এক্সিকিউট করে তাই left এর একটি মেথড এক্সিকিউট হবার পরেই পরবর্তী মেথড এর কাজ শুরু হয়।

তো শুরু করে দিন আজকে থেকে আপনার প্রোগ্রামে Method Chaining এর ব্যবহার

ধন্যবাদ :)

6 Comments

28/04/2016

joss........

28/04/2016

thank you shipu

29/04/2016

Only Alien is real ;)

29/04/2016

ধন্যবাদ ভাউ

20/05/2016

খুব ভালো লিখছেন :-)

04/06/2016

ধন্যবাদ :)

To make a comment you have to login