পিএইচপি এসকিউএল ওয়ার্ডপ্রেস জাভাস্ক্রিপ্ট জেকুয়েরি এইচটিএমএল
ফোরাম
×

পিএইচপি টিউটোরিয়াল

হোম-HOME পরিচিতি-Introduction ইনস্টল-Install গঠনপ্রনালী-Syntax চলক-Variable পিএইচপি Echo / Print তথ্যের ধরণ-Data Types কনস্ট্যান্ট-Constant অপারেটর-Operator ফাংশন-Function সুপারগ্লোভাল-Superglobal

কন্ট্রোল স্টেটমেন্ট

if স্টেটমেন্ট if...Else স্টেটমেন্ট Switch স্টেটমেন্ট While লুপ DO...While লুপ For লুপ

পিএইচপি এ্যারে এবং স্ট্রিং

এ্যারে-Array এ্যারে সর্টিং -Array Sorting মাল্টি এ্যারে-Multi Array স্ট্রিং-String

পিএইচপি এডভান্স

তারিখ এবং সময় পিএইচপি include ফাইল হ্যান্ডলিং-File Handling ফাইল খোলা/পড়া ফাইল তৈরি/লিখা ফাইল আপলোড ফাইল ডাউনলোড কুকি-Cookie সেশন-Session ফিল্টার-Filter এডভান্স ফিল্টার-Advance Filter এঁরর হ্যান্ডলিং-Error Handling এক্সেপশন হ্যান্ডেলিং-Exception Handling

পিএইচপি ফরম

ফরম হ্যান্ডলিং ফরম ভ্যালিডেশন আবশ্যক ফরম ফিল্ড ফরম URL/E-mail সম্পূর্ণ ফরম

MySQL ডেটাবেজ

MySQL ডেটাবেজ MySQL ডেটাবেজ সংযোগ MySQL ডেটাবেজ তৈরী MySQL টেবিল তৈরী MySQL তথ্য ইনসার্ট MySQL শেষ আইডি পান MySQL একাধিক তথ্য ইনসার্ট MySQL প্রিপেয়ার্ড স্টেটমেন্ট MySQL তথ্য সিলেক্ট MySQL তথ্য ডিলিট MySQL তথ্য আপডেট MySQL সীমিত তথ্য সিলেক্ট

পিএইচপি- এক্সএমএল

PHP XML Parser PHP SimpleXML Parser PHP XML Parser PHP SimpleXML - Get PHP XML Expat PHP XML Dom

পিএইচপি - এজাক্স

পিএইচপি AJAX পরিচিতি AJAX পিএইচপি AJAX ডেটাবেজ AJAX এক্সএমএল AJAX সারাসরি সার্চ AJAX RSS রির্ডার AJAX Poll

পিএইচপি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং(OOP)

OOP পরিচিতি OOP class তৈরী OOP objects তৈরী OOP $this কিওয়ার্ড OOP মেথড এবং প্রোপার্টি চেইনিং OOP অ্যাক্সেস মোডিফায়ার OOP ম্যাজিক মেথড এবং কন্সটেন্ট OOP ইনহেরিটেন্স OOP Abstract class এবং method OOP ইন্টারফেস OOP পলিমরফিজম OOP টাইপ হিন্টিং() OOP টাইপ হিন্টিনং ইন্টারফেস OOP স্ট্যাটিক মেথোড এবং প্রোপার্টি

 

পিএইচপি OOP পরিচিতি


অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং(OOP) এমন একটি প্রোগ্রামিং কৌশল যা রীতি অনুযায়ী একটি নির্দিষ্ট টপিক্স এর সকল ভ্যারিয়েবল এবং ফাংশনকে একটি একক ক্লাস এর মধ্যে দলবদ্ধ করে।

প্রসিডিউরাল স্টাইল প্রোগ্রামিং এর তুলনায় অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কৌশলকে অধিক উন্নত এবং কার্যকরী প্রোগ্রামিং ভাষা হিসাবে বিবেচনা করা হয়। কারণ এটি

  • অধিক সুসংগঠিত কোড স্টাইল সমর্থন করে
  • কোড মডুউলারিটি(modularity) সরবরাহ করে
  • কোড এর পুনরাবৃত্তি কমায় এবং কোড পুনঃব্যবহারযোগ্য করে তুলে

আপনি এই কৌশল ব্যবহার করে সহজেই জটিল, মডুলার(modular) এবং পুনঃব্যবহারযোগ্য ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন। এটি পিএইচপি ভার্সন-৫ থেকে পিএইচপিতে সংযোজিত হয়েছে।

বিঃদ্রঃ উপরোল্লিখিত এত সুবিধা সত্ত্বেও ছোট এবং সাধারণ প্রজেক্ট এর জন্য আমরা আপনাকে প্রসিডিউরাল প্রোগ্রামিং স্টাইল ব্যবহার করার সুপারিশ করছি।

যাইহোক যদি এমন হয় যে, আপনার প্রজেক্টের আকার দিন দিন বাড়তে থাকবে তাহলে অবজেক্ট অরিয়েন্টেড স্টাইল ব্যবহার করাই উত্তম হবে।


পিএইচপি OOP

OOP এর পূর্ণরূপ হলঃ Object-Oriented Programming। OOP তে সবকিছুই অবজেক্ট। যেমন- আপনি আমাদের এই বিশ্বকে নিয়ে কল্পনা করতে পারেন যা চাঁদ, সূর্য, পৃথিবী ইত্যাদি অবজেক্ট নিয়ে গঠিত।

একইভাবে, আপনি একটি গাড়ি কল্পনা করতে পারেন যা চাকা, গিয়ার, ইঞ্জিন ইত্যাদি অবজেক্ট নিয়ে গঠিত।

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর ধারণাও অনেকটা পথিবী এবং গাড়ির মতই। এটি সবকিছুকেই অবজেক্ট হিসাবে বিবেচনা করে। আপনি এই অবজেক্ট সমূহ ব্যবহার করে বিভিন্ন অ্যাপ্লিকেশন তৈরি করতে পারেন।

পিএইচপির ভার্সন-৪ এ অবজেক্ট অরিয়েন্টেড বৈশিষ্ট্য না থাকলেও ভার্সন-৫ এ অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কৌশল এর সম্পূর্ণ বৈশিষ্ট্য যুক্ত হয়েছে। পিএইচপিতে অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ব্যবহার করে অনেক বৃহৎ ও জটিল ওয়েব অ্যাপ্লিকেশন তৈরি করা সম্ভব।


পিএইচপি OOP উদাহরণ

উদাহরণ
<?php
 class Greeting{

 public function hello(){
    echo "hello PHP";
    	}
 }

 $greeting = new Greeting();
 $greeting->hello();

?>

ফলাফল
hello PHP

অবজেক্ট অরিয়েন্টেডের গুরুত্বপূর্ণ বিষয় বস্তু

আমরা আমাদের টিউটোরিয়ালে অবজেক্ট অরিয়েন্টেডের নিম্নোক্ত বিষয় সমূহ নিয়ে আলোচনা করবোঃ

  • PHP: Class - প্রোপার্টি(মেম্বার ভ্যারিয়েবল) এবং মেম্বার ফাংশন(মেথড) এর সমন্বয়ে অবজেক্ট তৈরির জন্য ক্লাস হলো সম্প্রসারণযোগ্য প্রোগ্রামিং কোড এর একটি নীল নকশা(templete)।
  • PHP: Object - অবজেক্ট হলো ক্লাস এর একটি বিশেষ নিদর্শন(instance) যা ভ্যারিয়েবল, ফাংশন এবং ডেটা স্ট্রাকচার এর সমন্বয়ে গঠিত হতে পারে।
  • PHP: Method - ক্লাস এর মেম্বার ফাংশনসমূহকে OOP তে মেথড বলা হয়। মেথড হলো অবজেক্ট-ক্লাস এর সাথে সম্পর্কিত একটি প্রক্রিয়া। একটি অবজেক্ট তথ্য এবং তথ্য প্রক্রিয়া এর সমন্বয়ে গঠিত হয়। "তথ্যকে" অবজেক্ট এর বৈশিষ্ট্য(property) এবং "তথ্য প্রক্রিয়াকে" মেথড এর মাধ্যমে প্রকাশ করা হয়। মেথড বাইরের অবজেক্ট এর সাথেও সম্পর্ক তৈরি করতে পারে।
  • PHP: Property - ক্লাস এর মেম্বার ভ্যারিয়েবল।
  • PHP: Encapsulation - প্রোপার্টি এবং মেথডসমূহ একত্রিত করে অবজেক্ট তৈরির একটি কৌশল।
  • PHP: Inheritance - কোড ডুপ্লিকেশন কমানোর জন্য প্যারেন্ট ক্লাস এর প্রোপার্টি এবং মেথড চাইল্ড ক্লাসও ব্যবহার করতে পারে।
  • PHP: Parent class - অন্য সকল ক্লাস এই ক্লাস কে ইনহেরিট করে। প্যারেন্ট ক্লাসের অপর নাম সুপার ক্লাস বা বেইজ ক্লাস।
  • PHP: Child Class - এই ক্লাস অন্য সকল ক্লাসকে ইনহেরিট করে। এই ক্লাসের অপর নাম সাবক্লাস বা ডিরাইভ ক্লাস।
  • PHP: Polymorphism - বিভিন্ন ক্লাসের যেসব মেথডসমূহ একই কাজে ব্যবহৃত হয় তাদের নামকরণ একই হওয়া।
  • PHP: Overloading and Overriding - অভারলোডিং তখনই ঘটে যখন একই ক্লাসে দুই বা তার অধিক মেথড এর নাম একই কিন্তু প্যারামিটার ভিন্ন হয়। Overriding এর অর্থ হলো দুটি মেথডের নাম এবং প্যারামিটার(method signature) একই। একটি মেথড থাকে প্যারেন্ট ক্লাসে এবং অপরটি থাকে চাইল্ড ক্লাসে।
  • PHP: abstract class and method - এটি একটি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং পদ্ধতি। এই পদ্ধতিতে একজন প্রোগ্রামার প্রাসঙ্গিক তথ্য ছাড়া সকল কিছুই লুকিয়ে রাখতে পারে। যেমন- প্যারেন্ট ক্লাসের কিছু নির্দিষ্ট মেথডে চাইল্ড ক্লাস এক্সেস নিতে পারবে এমন অঙ্গীকার করার জন্য আমরা abstract class ব্যবহার করি। কিন্তু আমরা এই অঙ্গীকার করি না যে, মেথডের মধ্যে কি ধরণের কোড থাকবে।
  • PHP: Interface - প্যারেন্ট ক্লাস চাইল্ড ক্লাসের সাথে এই অঙ্গীকার করে যে, মেথড বাস্তবায়নের জন্য চাইল্ড ক্লাস প্যারেন্ট ক্লাস এর abstract মেথডসমূহ এক্সেস করতে পারবে।
  • PHP: public, private এবং protected প্রোপার্টি - প্রোপার্টিসমূহ public, private অথবা protected হতে পারে। public অর্থ প্রোপার্টিসমূহকে যেকোন স্থান থেকে এক্সেস করা যাবে, private অর্থ শুধুমাত্র সংশ্লিষ্ট ক্লাস থেকে এক্সেস করা যাবে এবং protected অর্থ হলো সংশ্লিষ্ট ক্লাস এবং এর চাইল্ড ক্লাস থেকেও এক্সেস করা যাবে।
  • PHP: Public, Private এবং Protected মেথড - মেথডসমূহ public, private অথবা protected হতে পারে। public অর্থ মেথডসমূহকে যেকোন স্থান থেকে এক্সেস করা যাবে, private অর্থ শুধুমাত্র সংশ্লিষ্ট ক্লাস থেকে এক্সেস করা যাবে এবং protected অর্থ হলো সংশ্লিষ্ট ক্লাস এবং এর চাইল্ড ক্লাস থেকেও এক্সেস করা যাবে।
  • PHP: Constructor - পিএইচপির বিশেষ ধরণের বিল্ট-ইন মেথড। অবজেক্ট তৈরির সময় প্রোপার্টির ভ্যালু এসাইনে সম্মতি দেয়। অবজেক্ট তৈরি হলে এই মেথডটি স্বয়ংক্রিয়ভাবেই সম্পাদিত হয়। দুটি আন্ডারস্কোর(__) দিয়ে construct মেথড শুরু হয়।
  • PHP: Destructor - Constructor এর বিপরীত। অবজেক্ট ধ্বংশ হয়ে গেলে এটি স্বয়ংক্রিয়ভাবেই কল হয়।
  • PHP: Type Hinting - ফাংশন ডিক্লেয়ারেশনের সময় আরগুমেন্ট এর জন্য প্রত্যাশিত ডেটা টাইপ( (arrays, objects, interface ইত্যাদি) নির্ধারণ করে দেওয়া হয়।
  • PHP: Static property এবং method - নতুন অবজেক্ট তৈরি করা ছাড়াই ক্লাস এর প্রোপার্টি এবং মেথডকে এক্সেস করা যায়।
  • PHP: Object Cloning - অবজেক্ট এর একটি কপি তৈরি করতে ক্লোনিং ব্যবহৃত হয়।
  • PHP : spl_autoload_register() - প্রয়োজনীয় সকল ক্লাসকে সংশ্লিষ্ট ফাইলে স্বয়ংক্রিয়ভাবে লোড করে।
  • PHP : $this - এটি একটি বিশেষ ধরনের ভ্যারিয়েবল যা একই অবজেক্টকে নির্দেশ করে।
  • PHP: scope Resolution Operator(::) - একটি class এর static, constant এবং overridden প্রোপার্টি অথবা মেথডকে এক্সেস করতে পিএইচপি scope Resolution Operator(::) ব্যবহৃত হয়।
  • PHP: Magic Method __construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state() এবং __clone() ফাংশনকে পিএইচপি ম্যাজিক মেথড বলা হয়।

চলুন দেরি না করে এখনি পিএইচপি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কৌশল শেখা শুরু করি।