আপেক্ষিক যোগ্যতা / দুর্বলতার সাথে আমি যে বিকল্পগুলি দেখছি সেগুলি হ'ল:
ফাইল ভিত্তিক প্রক্রিয়া
এর জন্য আপনার কোডটি আইএনআই ফাইল সন্ধানের জন্য নির্দিষ্ট স্থানে সন্ধান করা প্রয়োজন। এটি সমাধান করা একটি কঠিন সমস্যা এবং এটি সর্বদা বড় পিএইচপি অ্যাপ্লিকেশনগুলিতে ফসল কাটায়। তবে আপনাকে পিএইচপি কোডটি অনুসন্ধানের জন্য সমস্যাটি সমাধান করতে হবে যা রানটাইমটিতে সংযুক্ত / পুনরায় ব্যবহৃত হবে।
এর সাধারণ পন্থাগুলি হ'ল সর্বদা আপেক্ষিক ডিরেক্টরিগুলি ব্যবহার করা বা বর্তমান ডিরেক্টরি থেকে অ্যাপলিকেশনটির বেস ডিরেক্টরিতে নির্দিষ্টভাবে নামের একটি ফাইল সন্ধানের জন্য উপরের দিকে অনুসন্ধান করা।
কনফিগার ফাইলগুলির জন্য ব্যবহৃত সাধারণ ফাইল ফর্ম্যাটগুলি হ'ল পিএইচপি কোড, আইএনআই ফর্ম্যাট করা ফাইল, জেএসএন, এক্সএমএল, ওয়াইএএমএল এবং সিরিয়ালযুক্ত পিএইচপি
পিএইচপি কোড
এটি বিভিন্ন ডেটা স্ট্রাকচারের উপস্থাপনের জন্য বিশাল পরিমাণে নমনীয়তা সরবরাহ করে এবং (পার্সড কোডটি অন্তর্ভুক্ত বা প্রয়োজনের মাধ্যমে প্রক্রিয়াজাতকরণ ধরে নেওয়া) পার্সড কোডটি অপকড ক্যাশে থেকে উপলব্ধ থাকবে - একটি পারফরম্যান্স সুবিধা দেয়।
Include_path অতিরিক্ত কোড উপর নির্ভর না করেই ফাইল সম্ভাব্য অবস্থানগুলির সংক্ষেপ জন্য একটি উপায় প্রদান করে।
অন্যদিকে, কোড থেকে কনফিগারেশন আলাদা করার অন্যতম প্রধান কারণ হ'ল পৃথক দায়িত্ব। এটি রানটাইমে অতিরিক্ত কোড ইনজেকশন দেওয়ার জন্য একটি রুট সরবরাহ করে।
কনফিগারেশনটি যদি কোনও সরঞ্জাম থেকে তৈরি করা হয়, তবে সরঞ্জামটিতে ডেটা বৈধকরণ করা সম্ভব হতে পারে, তবে এইচটিএমএল, ইউআরএল, মাইএসকিউএল স্টেটমেন্ট, শেল কমান্ডের উপস্থিতি হিসাবে পিএইচপি কোড এম্বেড করার জন্য ডেটা এড়াতে কোনও স্ট্যান্ডার্ড ফাংশন নেই ... ।
সিরিয়ালযুক্ত ডেটা
এটি স্বল্প পরিমাণে কনফিগারেশনের জন্য তুলনামূলকভাবে দক্ষ (প্রায় 200 আইটেম পর্যন্ত) এবং কোনও পিএইচপি ডেটা কাঠামো ব্যবহারের অনুমতি দেয়। ডেটা ফাইল তৈরি / পার্স করার জন্য এর খুব সামান্য কোডের প্রয়োজন (যাতে পরিবর্তে আপনি ফাইলটি কেবলমাত্র যথাযথ অনুমোদনের মাধ্যমেই লিখিত হয়েছে তা নিশ্চিত করার জন্য আপনার প্রচেষ্টা ব্যয় করতে পারেন)।
ফাইলে লেখা লিখিত সামগ্রী থেকে বেরিয়ে আসা স্বয়ংক্রিয়ভাবে পরিচালনা করা হয়।
যেহেতু আপনি অবজেক্টগুলিকে সিরিয়ালাইজ করতে পারেন তাই এটি কনফিগারেশন ফাইল (__ওয়াকআপ ম্যাজিক পদ্ধতি) পড়ে কেবল কোডের জন্য আবেদন করার সুযোগ তৈরি করে।
কাঠামোগত ফাইল
কোড আবেদনের অপসারণের সময় মার্সেল বা জেএসওএন বা এক্সএমএল দ্বারা প্রস্তাবিত আইএনআই ফাইল হিসাবে এটি সংরক্ষণ করা একটি পিএইচপি ডেটা স্ট্রাকচারে (এবং এক্সএমএল ব্যতীত, ডাটা এড়ানোর জন্য এবং ফাইলটি তৈরি করতে) ফাইলকে ম্যাপ করার জন্য একটি সহজ এপিআই সরবরাহ করে while সিরিয়ালযুক্ত পিএইচপি ডেটা ব্যবহার করে দুর্বলতা।
এটির ক্রিয়াকলাপযুক্ত ডেটার অনুরূপ কর্মক্ষমতা বৈশিষ্ট্য থাকবে।
ডাটাবেস স্টোরেজ
এটি আপনার পক্ষে বিপুল পরিমাণে কনফিগারেশন রয়েছে তবে এটি বর্তমান কাজের জন্য যা প্রয়োজন তা বেছে বেছে বিবেচনা করা হয় - আমি অবাক হয়ে গিয়েছিলাম যে প্রায় 150 ডেটা আইটেমের চেয়ে স্থানীয় মাইএসকিউএল উদাহরণ থেকে ডেটা পুনরুদ্ধার করা আরও দ্রুত ছিল একটি ডেটা ফাইলে আনসিরিয়ালাইজ করুন।
আপনি আপনার ডাটাবেসের সাথে সংযোগ করতে ব্যবহার করেন এমন শংসাপত্রগুলি সংরক্ষণ করার পক্ষে এটি ভাল জায়গা নয়!
কার্যকর করার পরিবেশ
আপনি কার্যকর করতে পারেন পরিবেশ নির্ধারণের পরিবেশে মানগুলি সেট করতে পারেন পিএইচপি চলছে।
এটি কনফিগারেশনের জন্য নির্দিষ্ট জায়গায় সন্ধানের জন্য পিএইচপি কোডের যে কোনও প্রয়োজনীয়তা সরিয়ে দেয়। OTOH এটি প্রচুর পরিমাণে ডেটাতে ভাল স্কেল করে না এবং রানটাইমে সর্বজনীনভাবে পরিবর্তন করা শক্ত।
ক্লায়েন্ট উপর
কনফিগারেশন ডেটা সংরক্ষণের জন্য আমি উল্লেখ না করে একটি জায়গা ক্লায়েন্টের কাছে। আবার নেটওয়ার্কের ওভারহেডের অর্থ হ'ল এটি বড় পরিমাণে কনফিগারেশনে ভাল স্কেল করে না। এবং যেহেতু শেষ ব্যবহারকারীর ডেটার উপর নিয়ন্ত্রণ রয়েছে তাই এটি অবশ্যই এমন ফর্ম্যাটে সংরক্ষণ করতে হবে যেখানে কোনও ছিটেফেলা সনাক্তকরণযোগ্য (যেমন একটি ক্রিপ্টোগ্রাফিক স্বাক্ষরের সাহায্যে) এবং কোনও তথ্য যা তার প্রকাশের মাধ্যমে আপোস করা উচিত নয় (যেমন বিপরীতক্রমে এনক্রিপ্ট করা হয়) ted
বিপরীতে, সংবেদনশীল তথ্য সংরক্ষণের জন্য এতে প্রচুর সুবিধা রয়েছে যা শেষ ব্যবহারকারীর মালিকানাধীন - আপনি যদি সার্ভারে এটি স্টোর না করে থাকেন তবে সেখান থেকে এটি চুরি করা যাবে না।
নেটওয়ার্ক ডিরেক্টরিগুলি
কনফিগারেশন তথ্য সঞ্চয় করার জন্য আরও একটি আকর্ষণীয় জায়গা হ'ল ডিএনএস / এলডিএপি। এটি অল্প সংখ্যক ক্ষুদ্র তথ্যের টুকরোটির জন্য কাজ করবে - তবে আপনাকে 1 ম সাধারণ ফর্মের সাথে আটকে থাকার দরকার নেই - বিবেচনা করুন, উদাহরণস্বরূপ এসপিএফ ।
অবকাঠামো ক্যাচিং, প্রতিলিপি এবং বিতরণ সমর্থন করে। সুতরাং এটি খুব বড় অবকাঠামোগত জন্য ভাল কাজ করে।
সংস্করণ নিয়ন্ত্রণ সিস্টেম
কনফিগারেশন, যেমন কোড পরিচালনা করা উচিত এবং সংস্করণটি নিয়ন্ত্রিত হওয়া উচিত - সুতরাং আপনার ভিসি সিস্টেম থেকে সরাসরি কনফিগারেশন পাওয়া একটি কার্যকর সমাধান solution তবে প্রায়শই এটি একটি উল্লেখযোগ্য পারফরম্যান্সের সাথে আসে যা ওভারহেড তাই ক্যাশে রাখা ভাল।