Object Oriented Programming in PHP

Object Oriented Programming in PHP: PHP के इस Section में हम PHP के उन Advance Features के बारे में जानेंगे, जिनकी वजह से PHP वर्तमान समय में 70% से ज्यादा Web Sites में Server Side Scripting Language के रूप में Use की जा रही है। PHP एक बहुत ही सरल भाषा है और लगभग पूरी तरह से “C”, “C++” व “Java” के Coding Structure व Concepts का मिश्रण है।

इसलिए यदि आप “C” Language की Procedural Programming से परिचित हैं, तो आपको PHP का Core Concept काफी अच्छी तरह से व आसानी से समझ में आ गया होगा। जबकि यदि आप “C++” व “Java” के Coding Structure व Object Oriented Programming Concepts से पूरी तरह से परिचित हैं, तो PHP का ये Advance Section आपको आसानी से समझ में आ जाएगा।

लेकिन यदि आपने “C++” या “Java” को कभी नहीं पढा व Object Oriented Programming Concepts के विषय से आप पूरी तरह से अनभिज्ञ हैं, तो फिर आपको “C++ Programming Language in Hindi” व “Java Programming Language in Hindi” पुस्तकों को कम से कम एक बार जरूर पढना चाहिए।

क्योंकि इस पुस्तक में हम Programming के Basic Concepts को ज्यादा Detail में समझाने की कोशिश नहीं कर रहे हैं और हम यही मान कर चल रहे हैं कि आपको Programming के Basic Concepts तथा Object Oriented Programming के विषय में Basic जानकारी है।

Object Oriented Programming in PHP – The Concepts

अभी तक हमने PHP के बारे में जो बातें जानी हैं, वे सभी बातें पूरी तरह से Procedural Programming से संबंधित है। Procedural Programming की कुछ मूल परेशानियां हैं, जिनमें से एक मुख्‍य परेशानी ये है कि Procedural Programming में Program Create करने का कोई Specific तरीका नहीं होता। साथ ही Procedural Programming Model के आधार पर Develop किए गए Programs के Codes को ज्यों का त्यों Reuse नहीं किया जा सकता।

परिणामस्वरूप समान प्रकार के कामों को करने के लिए भी हमें बार-बार लगभग एक जैसे Codes लिखने पडते हैं। इन दो मुख्‍य परेशानियों से बचने के लिए Developers ने एक नया Programming Concept Develop किया और इस Programming Concept का नाम Object Oriented Programming System रखा गया।

Object Oriented Programming System वास्तव में Abstract नियमों का एक ऐसा समूह है, जिसे किसी भी Programming Language में Implement किया जा सकता है। PHP के 5वें Version में Object Oriented Programming System को पूरी तरह से Implement कर लिया गया है, इसलिए हम PHP में भी ऐसे Codes लिख सकते हैं जो पूरी तरह से Manageable व Reusable हो।

Object Oriented Programming System के Rules का मूल Purpose ये होता है कि हम हमारे Programs द्वारा किसी समस्या को उसी तरह से Solve करें, जिस तरह से हम किसी समस्या को Real Life में Solve करते हैं। यानी Object Oriented Programming System वास्तव में किसी समस्या को Program के रूप में Model करने का एक तरीका मात्र है।

Object Oriented Programming System के Rules किसी Program को Design करना व Maintain करना आसान बनाते हैं साथ ही समान प्रकार के Codes को बार-बार Reuse करने की सुविधा प्रदान करते हैं, जिससे Development का काम काफी तेजी से व आसानी से किया जाना सम्भव हो पाता है तथा Program को Upgrade व Extend करना भी आसान हो जाता है।

Object Oriented Programming System में दुनियां की हर Visible या Logical वस्तु, जिसे कोई नाम दिया जा सकता है, को एक Object के रूप में Represent किया जाता है। हर Object मूल रूप से AttributesBehaviors का समूह होता है।

हर Object की अपनी कुछ Characteristics होती हैं, जिनसे उस Object की अन्य Objects से अपनी अलग पहचान होती है। Object की इन Characteristics को Object के Attributes कहते हैं।

जैसे कि Student एक Object हो सकता है, जिसका Name, Father Name, Date of Birth, Date of Admission, Height, Color आदि Attributes होते हैं, जिनके मानों के आधार पर एक Student Object को दूसरे Student Object से Uniquely अलग Identify किया जाता है।

इसी तरह से हर Object किसी न किसी तरह का काम करता है और किसी न किसी तरह से अपने Attributes पर किसी न किसी तरह का Operation Perform करते हुए अपने Attributes के मानों में परिवर्तन करता है अथवा अपने Attributes को Access व Manipulate करता है। Objects के अपने Attributes के साथ किसी न किसी तरह के Operation को Perform करने की क्षमता को Object का Behavior कहा जाता है।

Object Oriented Programming System हमें ऐसे Rules Provide करता है, जिनको Follow करते हुए हम नए प्रकार के User Defined Data Types Create करते हैं और इन नए Data Types को ठीक उसी तरह से उपयोग में ले सकते हैं, जिस तरह से Programming Language के Basic Data Types को उपयोग में लेते हैं।

Object Oriented Programming System के Rules को Follow करते हुए हम किसी Real World Object के DataBehavior को ठीक उसी तरह से अपने Program में Model कर लेते हैं, जिस तरह से वह Object Real World में होता है।

यानी Object Oriented Programming System किसी Real World Object को Computer Program में एक Data Type की तरह Model करने की सुविधा देता है। परिणामस्वरूप हम किसी भी Real World Object को Computer Program में ठीक उसी तरह से Data Type के रूप में Model कर सकते हैं, जिस तरह से वह Object Real World में Model होता है और हम उस Object को Computer Program में भी ठीक उसी तरह से Behave करवा सकते हैं, जिस तरह से वह Object Real World में Behave करता है।

Object Oriented Programming System में मूल रूप से तीन Concepts होते हैं:

  1. Encapsulation
  2. Inheritance
  3. Polymorphism

इन्हीं तीन Concepts को Extend करते हुए कई और नए Concepts सामने आते हैं, जिनके बारे में हम कुछ Basic बातों को यहां समझने की कोशिश करेंगे।

Encapsulation

Encapsulation एक ऐसी प्रक्रिया होती है, जिसमें किसी Object को उपयोग में लेने के लिए हमें उस Object से Associated विभिन्न प्रकार के Interface मिलते हैं, जिनके द्वारा हम उस Object को Access कर सकते हैं। हमें ये जानने की जरूरत नहीं होती है कि वास्तव में Internally उस Object में क्या हो रहा है।

उदाहरण के लिए हम हमारे Computer System को एक Encapsulated Unit समझ सकते हैं। हमें जब हमारे Computer System पर कोई काम करना होता है, तब हम हमारे Computer System की Power Supply ON करके CPU पर दिए गए ON-OFF Switch को On करते हैं। बस हमारा Computer Start होता है और हमारे सामने हमारा Desktop आ जाता है। यहां हमें ये जानने की जरूरत नहीं होती है कि Internally Computer किस प्रकार से क्या Operations Perform करता है, जिसकी वजह से Computer Start हो जाता है।

इस उदाहरण में हमारा Computer System एक Object है और उस Computer System के CPU पर दिया गया ON/OFF Switch वह Interface है, जिसका प्रयोग करके हम Computer को Start करते हैं, जबकि Start होने के बाद दिखाई देने वाला Desktop हमारे Object का Data है।

जब हम इस ON/OFF Switch को On करते हैं, तब इस On/Off Switch से Associated कौनसा Function Run होता है और किस तरह से वह Function Computer System को Start करके हमारे काम करने लाया स्थिति में ले आता है, इस बात से हमें कोई मतलब नहीं होता।

Encapsulation को एक और उदाहरण द्वारा समझें, तो हमारा Mobile Phone भी एक Encapsulated Unit होता है। जिसके द्वारा जब हम किसी व्यक्ति को Call करते हैं, तब हमें ये जानने की जरूरत नहीं होती है कि Mobile Phone Internally किस प्रकार से किसी Particular व्यक्ति को Call Dial करता है। हमें बस केवल उस व्यक्ति के Contact Numbers को Mobile के Keypad से Enter करना होता है और Call Button को Press करना होता है।

इस Mobile Phone का Keypad हमारे लिए Mobile द्वारा दिया जाने वाला Interface है, जिसका प्रयोग करके हम किसी व्यक्ति के Contact Number को Dial कर सकते हैं। जबकि Call को Dial करने की Internal प्रक्रिया से हमें कोई मतलब नहीं होता।

ठीक इसी तरह से किसी Object Oriented Program में हम ऐसे Objects Create करने के लिए Class यानी नया User Defined Data Type Create करते हैं, जिनके Instances के रूप में उस Class या नए User Defined Data Type के Objects यानी Variables Create किए जाते हैं। इस Class में Object के AttributesBehaviors यानी Data व उन Data पर Perform किए जा सकने वाले Operations को एक Unit के रूप में Group कर लिया जाता है और उस Object के Data को Access करने के लिए Interfaces का एक Well Defined Set Provide कर दिया जाता है।

जब कोई User हमारे द्वारा बनाए गए Class के Objects Create करता है और उस Object की Functionalities को Access करना चाहता है, तो वह हमारे द्वारा Provide किए गए Well Defined Interfaces के माध्यम से ही हमारे Object को Access करने में सक्षम हो पाता है।

यानी जब कोई User हमारे द्वारा Create की गई Class के Object Create करता है और इस Object के Data को Access करना चाहता है, तो वह User Directly उस Object के Data को Access नहीं कर सकता। बल्कि उस Object के Data को Access करने के लिए User, Interfaces के रूप में Define किए गए Web Defined Functions के समूह में से किसी Function को Call करता है और वह Function अपने Associated Data को Access करके Appropriate Result Return करता है। परिणाम स्वरूप हमारे Object का Data, Direct Outer Access से पूरी तरह से सुरक्षित रहता है।

चूंकि इस प्रक्रिया के दौरान किसी भी Object के Data को केवल उसी Object से Associated Functions ही Access कर सकते हैं, इसलिए Object का Data किसी भी अन्य Function या Script के लिए Directly Accessible नहीं होता, बल्कि अन्य Functions व Scripts के लिए Object का Data Hidden रहता है। Object Oriented Programming में इस प्रक्रिया को Data Hiding कहा जाता है।

Inheritance

Object Oriented Programming System में Inheritance एक ऐसी प्रक्रिया होती है, जिसके Rules को Follow करते हुए हम किसी पहले से बने हुए Code को नए Program में नए तरीके से बिना Modify किए हुए ज्यों का त्यों Reuse कर सकते हैं और अपने नए Program की जरूरत के अनुसार उस Code द्वारा Provide की जाने वाली Functionalities को Extend कर सकते हैं, जबकि हमें पहले से बने हुए Codes को छेडने की बिल्कुल भी जरूरत नहीं होती है।

परिणामस्वरूप पहले से बना हुआ Code पूरी तरह से Accessible व उपयोगी रहता है और इस Code को जरूरत के अनुसार विभिन्न Programs में उपयोग में बार-बार उपयोग में लिया जा सकता है व अपनी जरूरत के अनुसार Codes को बिना Modify किए हुए भी Codes द्वारा Provide की जाने वाले Functionalities को Extend किया जा सकता है।

Polymorphism

Polymorphism, Object Oriented Programming का एक ऐसा Concept है, जो हमें कम से कम Codes अथवा समान प्रकार के Codes द्वारा विभिन्न प्रकार के काम करने व Program में विभिन्न प्रकार की Functionalities प्राप्त करने की सुविधा देता है।

Inheritance व Polymorphism ऐसे Concepts हैं, जो तब तक ठीक से समझ में नहीं आ सकते, जब तक कि हम इन्हें Practically उपयोग में न लें। इसलिए इन Concepts को हम आगे विस्तार से विभिन्न प्रकार के उदाहरणों द्वारा समझेंगे।

PHP Date Time Functions
Abstraction in PHP

PHP in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Special Discount Offer

खरीदिए एक से ज्‍यादा EBooks, और पाईए ₹100 से ₹1200 तक का Extra Cash Discount

Discount Coupon Codes