যারা বাংলাদেশের ৩৬ তম Zend Certified Engineer এবং এই সাইট (w3programmers) এর স্বত্বাধিকারী এবং লেখক Masud Alam স্যার এর কাছে কাছে সপ্তাহে ২ দিন ক্লাস, ৬ দিন প্রাকটিস করতে চান তাদের জন্য আগামী ১ February 2018 (বৃহস্পতি এবং শুক্রবার সন্ধ্যা ৬:০০ টা রাত ৯:০০ টা) থেকে শুরু হতে যাচ্ছে ৫ মাস ব্যাপী Professional Web Design & Development With HTML, CSS, JAVASCRIPT, JQUERY, PHP & MySQL for Beginners কোর্স (এই কোর্স টি যারা ফ্রিল্যান্সিং এবং আউটসোর্সিং কাজে আগ্রহী বিশেষ ভাবে তাদের জন্য design করা হয়েছে। ), আগামী ৪ February 2018 ( রবি এবং মঙ্গলবার সন্ধ্যা ৬:০০ টা থেকে রাত ৯:০০ টা ) থেকে শুরু হতে যাচ্ছে ৪ মাস ব্যাপী Zend Certified PHP 7.1 Engineering কোর্স। যেটা Advance PHP কোর্স নামে পরিচিত । এবং ৫ February 2018 (সোম এবং বুধবার সন্ধ্যা ৬:০০ টা থেকে রাত ৯:০০ টা) থেকে শুরু হতে যাচ্ছে ৪ মাস ব্যাপী Laravel 5.5 Professional Beginning to Advance Course কোর্স ।এই কোর্স গুলোতে তিনি ছাত্রদের কে সপ্তাহে ২ দিন ৩ ঘন্টা করে ৬ ঘন্টা ক্লাস নিবেন , এবং শনি থেকে বৃহস্পতি সপ্তাহে ৬ দিন ই স্যার এর অফিসে বসে প্রাকটিস করার সুযোগ দিবেন ! এতে প্রাকটিস করা কালীন ছাত্র-ছাত্রীরা কোনো সমস্যায় পড়লে তাৎক্ষণিক স্যার এর সহযোগিতা পাবে . (উল্লেখ্য: Training গুলো স্যার তার techbeeo software company'r পাশাপাশি পরিচালনা করে থাকেন।) কোর্স গুলো সম্পর্কে বিস্তারিত জানতে পারবেন এই লিংকে : Course Details .কোর্স গুলোর প্রত্যেকটির ফী নির্ধারণ করা হয়েছে ৩০,০০০ টাকা। আগ্রহীদেরকে অতিসত্বর মাসুদ আলম স্যার এর সাথে যোগাযোগ করার জন্য অনুরোধ করা যাচ্ছে। স্যার এর মোবাইল নম্বর : ০১৭২২ ৮১ ৭৫ ৯১

PHP Object Oriented Programming পর্ব-১১: PHP Object Serializing

PHP OOP তে Object Serializing এবং unserializing কি?

serialize

বিভিন্ন PHP ভিত্তিক প্রজেক্ট ডেভেলপ করার সময় Object গুলোকে web forms, url এর মাধ্যমে pass করার জন্যে অথবা text file এবং Database এ সংরক্ষণ করার জন্য , অনেক সময় আমাদেরকে Object গুলোকে string এ convert বা রূপান্তর করার প্রয়োজন হয়। । PHP OOP তে Object কে string এ পরিবর্তন করার পদ্ধতিকে Object Serializing বলা হয়। এবং string কে Object এ পরিবর্তন করার পদ্ধতিকে Object Unserializing বলা হয়।

PHP OOP তে কিভাবে Object কে string এ রূপান্তর বা Serializing করা হয়?

PHP তে serialize() function দিয়ে Object কে string এ রূপান্তর করা হয়। চলুন একটা উদাহরণ দিয়ে বুঝা যাক:

<?php
class Member
{
  public $username = "";
  private $loggedIn = false;
  
  public function login() {
    $this->loggedIn = true;
  }
  
  public function logout() {
    $this->loggedIn = false;
  }
  
  public function isLoggedIn() {
    return $this->loggedIn;
  }
}
 
$member = new Member();
$member->username = "Farhan";
$member->login();
 
$memberString = serialize($member);
echo "Converted the Member to a string: $memberString \n";
?>

PHP Serialize Example

ব্যাখ্যা: লক্ষ্য করুন, আমরা একটা সাধারণ Member class তৈরী করি। এবং $username নামে একটি public এবং $loggedIn নামে private property তৈরী করি। এবং তিনটি public function যথাক্রমে login(), logout() এবং isLoggedIn() তৈরী করি। আমাদের script টি তারপর একটি নতুন Object তৈরি করে, আর “Farhan” নামে একটি user কে $username property তে সেট করি , এবং Login Method দিয়ে ইউজার “Farhan” কে লগ ইন করাই।

তারপর আমরা serialize() function কে কল করি এবং Member Object কে serialize() function এর মধ্যে Pass করাই। serialize () function টি Object এর একটি string return করে , যা আমরা $memberString এ সংরক্ষণ করি এবং page এ show করি।

PHP OOP তে কিভাবে String কে Object এ রূপান্তর বা Unserializing করা হয়?

PHP তে unserialize() function দিয়ে String কে Object এ রূপান্তর করা হয়। চলুন একটা উদাহরণ দিয়ে বুঝা যাক:

<?php
class Member
{
  public $username = "";
  private $loggedIn = false;
  
  public function login() {
    $this->loggedIn = true;
  }
  
  public function logout() {
    $this->loggedIn = false;
  }
  
  public function isLoggedIn() {
    return $this->loggedIn;
  }
}
 
$member = new Member();
$member->username = "Farhan";
$member->login();
 
$memberString = serialize( $member );
$member2 = unserialize( $memberString );
echo $member2->username . " is " . ( $member2->isLoggedIn() ? "logged in" : "logged out" ) . "<br>";
  

Unserializing Example

ব্যাখ্যা: লক্ষ্য করুন আমাদের serialize() function দিয়ে তৈরী string কে unserialize function দিয়ে আবার object এ রূপান্তর করি এবং $member2 নামক ভ্যারিয়েবল এ রাখি। এখন আমরা $member2 Object variable হিসেবে ব্যবহার করি।

একটা বড় Object এর সব গুলো property এর পরিবর্তে নির্দিষ্ট কিছু property কে নিয়ে string এ convert বা serialize করার উপায় কি?

একটা বড় Object এর সব গুলো property এর পরিবর্তে নির্দিষ্ট কিছু property কে নিয়ে string এ convert বা serialize করতে চাইলে PHP তে __sleep() ম্যাজিক মেথড টি ব্যবহার করতে হয়। চলুন দুইটি উদাহরণ দিয়ে বিষয়টা বুঝা যাক :

__sleep() মেথড ব্যতীত serialize উদাহরণ :

<?php
class Member{
  public $Name="Masud Alam";
  public $Email="[email protected]";
  public $mobile="01788990099";
  public  $address="Dhaka,Bangladesh";
}
 
$member = new Member();
 
$memberString = serialize( $member );

echo $memberString;
?>

Result:

O:6:"Member":4:{s:4:"Name";s:10:"Masud Alam";s:5:"Email";
s:14:"[email protected]";s:6:"mobile";
s:11:"01788990099";s:7:"address";s:16:"Dhaka,Bangladesh";}

ব্যাখ্যা : লক্ষ্য করুন , আমাদের সব গুলো property সহ Object টি serialize string এ রূপান্তর হয়ে গেছে।

__sleep() মেথড সহ serialize উদাহরণ :

<?php
class Member{
  public $Name="Masud Alam";
  public $Email="[email protected]";
  public $mobile="01788990099";
  public  $address="Dhaka,Bangladesh";
  public function __sleep(){
    return ["Name","Email"];
  }
}
 
$member = new Member();
 
$memberString = serialize( $member );

echo $memberString;
?>

sleep example

ব্যাখ্যা : লক্ষ্য করুন , আমাদের সব গুলো property এর মধ্যে শুধু __sleep() এর মধ্যে যে property গুলো array এর মধ্যে দেওয়া আছে , শুধু সেগুলো string এ রূপান্তর বা serialize হয়েছে ।

একটি serialize string কে unserialize বা Object এ convert করার সময় Object টিকে reestablish বা re-initialization অর্থাৎ , যেমন: Database Connection , session start করা যাবে ?

একটি serialize string কে unserialize বা Object এ convert করার সময় Object টিকে reestablish বা re-initialization করতে চাইলে PHP তে __wakeup() ম্যাজিক মেথড টি ব্যবহার করতে হয়। চলুন একটি উদাহরণ দিয়ে বিষয়টা বুঝা যাক :

<?php
class Connection
{
    protected $link;
    private $dsn, $username, $password;
    
    public function __construct($dsn, $username, $password)
    {
        $this->dsn = $dsn;
        $this->username = $username;
        $this->password = $password;
        $this->connect();
    }
    
    private function connect()
    {
        $this->link = new PDO($this->dsn, $this->username, $this->password);
    }
    
    public function __sleep()
    {
        return array('dsn', 'username', 'password');
    }
    
    public function __wakeup()
    {
        $this->connect();
    }
}?>

এই ক্যাটাগরির অন্যান্য পোস্ট:

Masud Alam
আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ৮ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। বিশেষ ভাবে বাংলাদেশের ১০০ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই আমার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে TechBeeo Software Company তে সিইও হিসাবে আছি । পাশাপাশি w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -7 Engineering কোর্স করাই। আর w3programmers.com সাইট টি আমার।

Leave a Reply

Your email address will not be published. Required fields are marked *