নেমস্পেসগুলি কেবল অটোলোডিং ক্লাসের জন্য নয়। তারা নামকরণের বিরোধকেও প্রতিরোধ করে। আসলে, এটি তাদের প্রাথমিক উদ্দেশ্য।
বলুন User
আপনার অ্যাপ্লিকেশন ব্যবহারকারীদের সম্পর্কে তথ্য সঞ্চয় করার জন্য আপনার একটি প্রকল্প রয়েছে যার নামের একটি শ্রেণি প্রয়োজন , তবে একটি প্লাগইন User
তথ্য সংরক্ষণের জন্য নামের একটি (বিভিন্ন) শ্রেণিও ব্যবহার করে । নেমস্পেসগুলি আপনাকে একটি नेमস্পেসের মধ্যে আপনার শ্রেণি তৈরি করতে দেয় (বলুন MyApp
) এবং প্লাগইনটিকে অন্য নামের স্থান ব্যবহার করতে দিন (বলুন CoolPlugin
)। MyApp
স্পেসের মধ্যে কোডগুলি কেবল User
(যেমন, new User();
) উল্লেখ করতে পারে এবং তাই CoolPlugin
স্পেসে কোডও করতে পারে; প্রত্যেকে প্রত্যাশিত ফলাফল পাবে। যখন আপনাকে অন্য নেমস্পেস থেকে কোড ব্যবহার করতে হবে , আপনি কেবল এটির উপসর্গই রেখেছেন। উদাহরণস্বরূপ, CoolPlugin
স্পেসের কোড User
এর MyApp
মাধ্যমে শ্রেণি অ্যাক্সেস করতে পারেnew \MyApp\User();
বিকল্পটি হ'ল প্রতিটি শ্রেণীর সর্বত্র একটি জটিল নাম প্রয়োজন , যেমন class MyApp_User
এবং class CoolPlugin_User
। নেমস্পেসগুলি আপনাকে বেশিরভাগ সময় জিনিসগুলিকে সহজীকরণ এবং সমস্ত সময় নামকরণ বিরোধের এড়াতে দেয়।
সম্পাদনা: এই প্রশ্নের উত্তর দিতে, "দুজনের মধ্যে কোনও পারফরম্যান্সের পার্থক্য রয়েছে কি?"
অর্থবহ এক নয়, না। আমি এটি বেঞ্চমার্ক করিনি, তবে ন্যানোসেকেন্ডের স্তরে সম্ভবত একটি পার্থক্য রয়েছে। এটি বলেছে যে, অতি-ক্ষুদ্র পারফরম্যান্স টুইটের জন্য কোডের মানকে ত্যাগ করা ভাল কৌশল নয়, সুতরাং আপনার নাম নির্বিশেষে ব্যবহার করা উচিত। একই ধরণের সমস্যার মানদণ্ডগুলির জন্য , PHPbench.com এবং এই স্ট্যাকওভারফ্লো উত্তরটি দেখুন ।
আপনার কোডটি এই ধরণের প্রসঙ্গে মাইক্রো-অপ্টিমাইজ করার বিষয়ে উদ্বিগ্ন হওয়ার আগে আপনার অবিশ্বাস্যরকম শক্ত এবং অবিশ্বাস্যভাবে সময় সংবেদনশীল (উচ্চ-ফ্রিকোয়েন্সি ট্রেডিং বা পারমাণবিক প্রতিক্রিয়া পরিচালনার জন্য ভাবেন) দরকার। যদি এটি সত্যিই সেই সময়ের-সংবেদনশীল হয় তবে আপনার সম্ভবত সি বা এমনকি সমাবেশে কোডিং করা উচিত , পিএইচপি-র মতো ব্যাখ্যা করা ভাষাগুলি নয়।