সাধারণ ব্যাখ্যা পিএইচপি ওওপি বনাম প্রক্রিয়াগত?


106

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

ওওপি বনাম প্রক্রিয়াজাতীয়

  1. আমার কোনটি শিখতে হবে?
  2. কোডে পার্থক্য কী? এর প্রভাব কী?
  3. কীভাবে পিএইচপি ফ্রেমওয়ার্ক ওওপি অ্যাপ্রোচ সহায়তা করতে পারে? (আমি কোডআইগনিটার শিখতে চাই)
  4. পদ্ধতিগত একটি ফ্রেমওয়ার্ক প্রয়োজন?

আমি উভয়ের কোডের পার্থক্যটি সত্যই জানতে চাই, ওওপি সম্পর্কে আমার বোধগম্যতা হ'ল আপনি কি এর মতো একটি বর্গ তৈরি করেন এবং এটি অ্যাক্সেস হতে পারে। (আমি যদি ঠিক হয়ে যায় তবে আমি ডান্নো)।

ধন্যবাদ!



1
মুখটি যখন এটি একটি খুব দীর্ঘ সংযোগ নয়
ফলিক্স গাগনন-গ্রেনিয়ার



উত্তর:


279

পটভূমি: আপনি একটি "সাধারণ ব্যাখ্যা" চেয়েছিলেন যা প্রস্তাব দেয়:

  1. আপনি জার্গন ছাড়াই একটি নন-বাজে ওভারভিউ চান
  2. আপনি এমন কিছু চান যা আপনাকে প্রথম থেকেই শিখতে সহায়তা করবে
  3. আপনি আবিষ্কার করেছেন যে দু'জন লোকই কখনও একইভাবে প্রশ্নের উত্তর দেয় না , এবং এটি বিভ্রান্তিকর। এই কারণেই আপনি এখানে একটি সহজ ব্যাখ্যা জিজ্ঞাসা করছেন। হ্যাঁ?

সংক্ষিপ্ত নো-জার্গন উত্তর:

  1. অনেক প্রারম্ভিক ব্যাখ্যা "ওওপি রিয়েল ওয়ার্ল্ড" উদাহরণগুলিতে দ্রুত লাফায়। এগুলি সাহায্যের চেয়ে আরও বেশি বিভ্রান্ত করতে পারে, তাই আপাতত এটিকে অবহেলা করতে নির্দ্বিধায়।
  2. আপনি সোর্স কোডটিকে কেবল কার্যকারিতার "অংশ" হিসাবে ভাবতে পারেন, যা কেবল পৃথক ফাইলে সংরক্ষণ করা হয়।
  3. এই "খণ্ডগুলি" সংগঠিত করার বিভিন্ন উপায় রয়েছে; প্রোগ্রামিং ভাষার কনভেনশন, বিকাশকারীদের পটভূমি এবং প্রশিক্ষণ, বা কেবল পুরানো ব্যক্তিগত পছন্দ হিসাবে সাধারণ বিষয়গুলির উপর নির্ভর করে।
  4. কীভাবে এই "খণ্ডগুলি" কোডটি সজ্জিত ও ব্যবস্থা করা যায় তার জন্য ওওপি এবং পদ্ধতিগত প্রোগ্রামিং হ'ল দুটি প্রধান, সাধারণভাবে স্বীকৃত পদ্ধতি।

দীর্ঘ নং-জার্গন উত্তর:

পদ্ধতিগত বনাম ওওপি কম্পিউটার প্রোগ্রামিংয়ের একটি মৌলিক সমস্যার কেবল একটি দিক: আপনার কোডটি কীভাবে বোঝা যায় এবং পেশাদারভাবে রক্ষণাবেক্ষণের জন্য একটি টুকরো পিঠা কীভাবে তৈরি করা যায় । আপনি আসলে "কার্যবিবরণী" কোডটি লিখতে পারেন যা ওওপি-র কিছু নীতির অনুসরণ করে, সুতরাং দু'টি অবশ্যই বিপরীত নয়।

আপনি অন্য অবজেক্ট-ভিত্তিক প্রোগ্রামিং ভাষাগুলি শিখলে আপনার বোধগম্যতা সত্যিই বাড়বে , যার মধ্যে পিএইচপি "ব্লকের নতুন বাচ্চা"।

আপনি অভিজ্ঞতা তৈরি করার সময় আপনি কী শিখবেন তার একটি দ্রুত ওভারভিউ এখানে দেওয়া হয়েছে :

  • আপনি পিএইচপি উত্স কোড লিখতে পারেন যা দরকারী কাজ করে
  • আপনি কোডের "খণ্ডগুলি" তে দরকারী কাজগুলি সংগঠিত করতে পারেন
  • আপনি পৃথক ফাইলগুলি সেভ করা হয় সেগুলি সম্পর্কে স্বাধীনভাবে কোডের "অংশগুলি" ভাবতে পারেন
  • কখনও কখনও কোডগুলির এই "খণ্ডগুলি" আপনি যে প্যারামিটারগুলিতে পাস করেন তার উপর ভিত্তি করে ভিন্ন আচরণ করবে
  • কোডগুলির কয়েকটি অংশ যা পরামিতিগুলি গ্রহণ করে তাদের "ফাংশন" বলা হয়
  • ক্রিয়াকলাপগুলি একসাথে "ছিন্নমূল" হতে পারে এবং এটি করার বিভিন্ন উপায় রয়েছে:
    • উদাহরণস্বরূপ: আপনার পুরো জীবনে আপনি লিখেছেন এমন সমস্ত ফাংশনগুলির সাথে আপনার কেবলমাত্র একটি বড় পিএইচপি ফাইল থাকতে পারে, ফাংশন নাম অনুসারে বর্ণানুক্রমিক ক্রমে তালিকাভুক্ত
    • উদাহরণস্বরূপ: আপনার কাছে একাধিক পিএইচপি ফাইল থাকতে পারে যা ফাংশনগুলির সাথে একসাথে বিশৃঙ্খলাযুক্ত থাকে [উদাহরণস্বরূপ, বেসিক স্ট্রিং ম্যানিপুলেশন করার জন্য ফাংশন, অ্যারে প্রসেসিংয়ের জন্য ফাংশন, ফাইল ইনপুট / আউটপুট ইত্যাদির জন্য]
  • ওওপি হ'ল "ক্লানিং" ফাংশনগুলিকে একত্রে "ক্লাস" এ পরিণত করার একটি বিশেষ উপায়
  • একটি ক্লাস হ'ল "চুনকিং" কোডের অন্য একটি স্তর যা একসাথে সম্পূর্ণ হিসাবে এটি আচরণ করতে পারে
  • একটি শ্রেণিকে পদ্ধতি এবং বৈশিষ্ট্যগুলির "চুনকাম" হিসাবে ভাবা যেতে পারে

    • পদ্ধতিগুলি হ'ল ফাংশন যা যুক্তিযুক্তভাবে কিছু অর্থপূর্ণ উপায়ে একে অপরের সাথে সম্পর্কিত। "পদ্ধতি" এবং "ফাংশন" শব্দগুলি মূলত একই জিনিসটির জন্য দুটি পৃথক পদ।
    • বৈশিষ্ট্যগুলি কেবল শ্রেণীর সাথে সম্পর্কিত ডেটা মানগুলি। এগুলি এমন মানগুলি যা ইচ্ছাকৃতভাবে কোনও পৃথক ফাংশনে বিচ্ছিন্ন নয়, কারণ শ্রেণীর একাধিক ক্রিয়াকলাপের তাদের অ্যাক্সেস থাকা উচিত।
      • উদাহরণস্বরূপ : যদি আপনার শ্রেণিতে জ্যোতির্বিজ্ঞান করার জন্য প্রচুর পদ্ধতি থাকে তবে শ্রেণীর বৈশিষ্ট্যগুলি নির্দিষ্ট কিছু বিখ্যাত সংখ্যার জন্য মান হতে পারে যা সম্পর্কে জ্যোতির্বিদ্যার সমস্ত পদ্ধতি সম্পর্কে জানতে হবে (পাই, আলোর গতি, নির্দিষ্ট গ্রহের মধ্যে দূরত্ব, ইত্যাদি)।
    • এই যেখানে অধিকাংশ গলি ব্যাখ্যা বিভ্রান্তিকর পেতে কারণ তারা মধ্যে বন্ধ শাখায় বিভক্ত " বাস্তব জগতে উদাহরণ " যা দ্রুত প্রসঙ্গ-বহির্ভূত বন্ধ পেতে পারেন । প্রায়শই, "বাস্তব জগৎ" হ'ল একটি নির্দিষ্ট ব্যক্তির অনটোলজিকাল দৃষ্টিভঙ্গির জন্য শ্রুতিমধুরতা। যে হতে থাকে দরকারী শুধুমাত্র একবার যদি আপনার আগে থেকেই ধারণা বুঝতে ভাল অন্য কেউ এটা শেখান যথেষ্ট।
    • বিভ্রান্তি ছাড়াই ওওপি বুঝতে, আপনি আপাতত "রিয়েল ওয়ার্ল্ড" উদাহরণগুলি এড়িয়ে যেতে পারেন এবং কেবল কোডটিতে ফোকাস করতে পারেন। একটি শ্রেণি হ'ল ফাংশন (ওরফে পদ্ধতি) এবং বৈশিষ্ট্যগুলি (ওরফে ডেটা) এক বা একাধিক সম্পর্কিত "খণ্ডে" পিএইচপি কোড হিসাবে সংরক্ষণ করার একটি উপায় যেখানে প্রতিটি ব্যক্তি "অংশ" একটি নির্দিষ্ট বিষয় বা কার্যকারিতার অংশ হিসাবে কাজ করে। শুরু করার জন্য আপনাকে কেবল এটি জানা দরকার।
  • একটি শ্রেণি দরকারী কারণ এটি আপনাকে আপনার কোডটি খুব উচ্চ স্তরে এমনভাবে সংগঠিত করতে দেয় যা বোঝা, ব্যবহার করতে এবং বজায় রাখা আপনার পক্ষে সহজ করে।

  • যখন কেউ ফাংশন অনেক লেখা হয়েছে, এবং তাদের ক্লাস অনেকটা সংগঠিত, এবং কিছু শীতল ভাবে একত্রে কাজ করার জন্য আপনি ওই অর্জিত, তারা পুরো জিনিস একসঙ্গে প্যাকেজ এবং সেটিতে কল একটি "ফ্রেমওয়ার্ক"
  • একটি ফ্রেমওয়ার্ক হ'ল "চুনকিং" ( পরবর্তী কোডিং স্টাইল এবং কনভেনশন সহ) এর পরবর্তী স্তরের যা এক বা একাধিক লোকের সাথে একমত হয় কারণ তারা কোডটি সংগঠিত করার পদ্ধতি পছন্দ করে এবং এটি তাদের কার্যকরী শৈলী, পছন্দ, মানসমূহ, বিশ্বের পরিকল্পনার সাথে মানায় like আধিপত্য ইত্যাদি

আরো দেখুন


1
@ ড্রেফটিম্যাক: আমার সংযোজনগুলির মধ্যে কী কী উন্নতি করা যায় তা সম্পর্কে আপনি আমাকে প্রতিক্রিয়া সরবরাহ করতে পারতেন, আমার পিঠের পিছনে বিশ্রীভাবে মুছে ফেলার পরিবর্তে। সত্যিই। আমি গঠনমূলক সমালোচনাকে স্বাগত জানাই, এবং আপনাকেও এটি করার জন্য আমন্ত্রণ জানাচ্ছি।
ফ্লাভিয়াস

1
পছন্দ করুন প্রচেষ্টার জন্য এবং সংযোজন করতে কিছুক্ষণ সময় দেওয়ার জন্য কৃতজ্ঞতা। এটি সম্পর্কে চিন্তাভাবনা করার পরে, এটি যুক্তিসঙ্গত বলে মনে হয় যে সংযোজনটি আপনি নিজের স্ট্যান্ড-একা উত্তরের জন্য উপযুক্ত করেছেন।
dreftymac

2
একটি সংযোজন: একটি শ্রেণি ফাংশন ডেটা একসাথে ছাঁটাই করার জন্যও কার্যকর, যাতে আপনাকে এটি পরামিতিগুলির কাছাকাছি যেতে হবে না।
chiborg

1
আপনার পছন্দসই "ফ্রেমওয়ার্ক" এর জন্য বিশেষত +1। আমি শুনেছি যে অনেক লোক একটি কাঠামো কী তা বোঝানোর চেষ্টা করে এবং আমি মনে করি যে এটি আপনার বোঝার পক্ষে সহজ।
TecBrat

1
সাথী ... এটি ওপ বনাম পদ্ধতিগত সম্পর্কে আমি সবচেয়ে ভাল ব্যাখ্যাটি পড়েছি এবং আমি প্রচুর পড়েছি! দুর্দান্ত কাজ সত্যিই কার্যকর, সহজ এবং সরাসরি। আপনি সঠিক লোকেরা সর্বদা বাস্তব বিশ্বের উদাহরণ ব্যবহার করে এবং এটি কোনও কিছু বোঝার সহজ উপায় নয়, এটি বোকা!
থিরিশাদাদাদ

25

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

আপনি যখন নিজের পদ্ধতিগত কোডটি তৈরি করছেন তখন একক উত্স ফাইলে সম্পর্কিত পদ্ধতি যুক্ত করে অভ্যাস করুন। আপনার পদ্ধতিগুলি লজিকাল ইউনিটে বিভক্ত করতে শিখুন এবং তারপরে আপনি ইতিমধ্যে অবজেক্ট-ওরিয়েন্টেড হতে শুরু করেছেন। মূলত, কোনও বস্তু একে অপরের সাথে সম্পর্কিত এমন একটি পদ্ধতির সংগ্রহ ছাড়া আর কিছুই নয়, কারণ তারা একই ডেটার একই সেটটিতে কাজ করে। (এখানে ডাটাবেসের কথা বলছি না, তবে অ্যাপ্লিকেশন ডেটা!)

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

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


3
আমি কিছু ওওপি কোডটিকে আরও বিভ্রান্তিকর বলে মনে করি .. উদাহরণস্বরূপ প্রেস্ট্যাশপের পেটে tryোকানোর চেষ্টা করুন।
অ্যান্ড্রুসি

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

6

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

ফ্রেমওয়ার্ক হিসাবে; প্রথমে ভাষার মৌলিক বিষয়গুলি শিখুন, নিক্ষিপ্ত পরীক্ষামূলক প্রোগ্রামগুলি লিখুন এবং এ জাতীয়। পরবর্তীতে আপনি নিজেকে অবকাঠামো সঙ্গে আপনি পরিচিত এবং বিবেচনা করতে পারেন নিজেকে কিনা আপনি তাদের কিছু কিছু প্রসঙ্গ দরকারী খুঁজে। এগুলি অবশ্যই বাধ্যতামূলক নয়।


6

উপরের দুর্দান্ত উত্তরগুলি যুক্ত করতে। আপনার কোডিং শৈলীর প্রাকৃতিক অগ্রগতি হিসাবে আপনাকে ওওপি দেখতে পাওয়া উচিত - যখন আপনি ছোট প্রোগ্রাম লিখতে শুরু করেন তবে আপনাকে পিএইচপি কোডের কয়েকটি লাইন একসাথে রাখার প্রয়োজন হবে, তারপরে সেগুলি ফাংশনে ভাগ করুন এবং আরও ফাংশনগুলি লিখুন যা আপনার প্রয়োজন অনুভব করতে পারে তাদের ক্লাসে আরও ভালভাবে সংগঠিত করা। ওওপি আপনার কাঠামোর জন্য আপনার কোডগুলিকে আরও ভাল কোড বজায় রাখার জন্য আরও ভাল অনুমতি দেয়।


6

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

সহজ উত্তরটি হ'ল, আপনাকে পিএইচপি জানা এবং বুঝতে হবে। আপনি এটি php.net এ শিখতে পারেন। একবার আপনি এটি বুঝতে পারার পরে, আপনি নিজের কোডগুলিকে ছদ্মবেশে সাজানো শুরু করতে পারেন।

পদ্ধতিগত কোড ফাংশন, ভেরিয়েবল ব্যবহার করে।

জিনিসগুলির একটি হ্যাং হয়ে যাওয়ার পরে, আপনি ক্লাসগুলিতে ফাংশন এবং ভেরিয়েবলগুলি সংগঠিত করা শুরু করতে পারেন। আমরা বৈশিষ্ট্য হিসাবে পদ্ধতি এবং ভেরিয়েবল হিসাবে ফাংশন কল করা শুরু।

শুভকামনা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.