তারা কি একই জিনিসটি বোঝায় (ক্রিয়ায় ইউআরএল সংযুক্ত করে, বা ইউআরএলগুলিতে ক্রিয়া করে) বা আমার কোনও অনুপস্থিতি রয়েছে?
উদাহরণ: http://github.com/dannyvankooten/PHP- রাউটার বনাম http://konstrukt.dk
তারা কি একই জিনিসটি বোঝায় (ক্রিয়ায় ইউআরএল সংযুক্ত করে, বা ইউআরএলগুলিতে ক্রিয়া করে) বা আমার কোনও অনুপস্থিতি রয়েছে?
উদাহরণ: http://github.com/dannyvankooten/PHP- রাউটার বনাম http://konstrukt.dk
উত্তর:
রাউটার:
রাউটিং হ'ল একটি ইউআরআই শেষ পয়েন্ট (ইউআরআই-এর সেই অংশ যা বেস ইউআরএল পরে আসে) গ্রহণ করে এবং প্যারামিটারগুলিতে এটি দ্রবীভূত করে যে কোনও মডিউল, নিয়ামক এবং সেই নিয়ামকের ক্রিয়াকলাপটি অনুরোধটি গ্রহণ করবে।
নিয়ন্ত্রক:
কন্ট্রোলার একটি »কন্ট্রোলার প্যাটার্ন প্রয়োগ করে, যাতে সমস্ত অনুরোধগুলি নিয়ন্ত্রণকারীর দ্বারা বাধিত হয় এবং অনুরোধ করা URL- এর ভিত্তিতে পৃথক অ্যাকশন কন্ট্রোলারদের কাছে প্রেরণ করা হয় (এটি রাউটারের অনুরোধটি রাউটিংকে নির্দেশ করে)।
কোন ফ্রন্টএন্ড-কন্ট্রোলারকে এই অ্যাপ্লিকেশনটির বিরুদ্ধে (এইচটিটিপি) অনুরোধের ভিত্তিতে সিদ্ধান্ত নেওয়ার জন্য একটি রাউটার এবং একটি ডিসপ্যাচারের সাথে সহযোগিতা করা উচিত যা কংক্রিট অ্যাকশন কার্যকর করতে হবে এবং তারপরে তা প্রেরণ করবে।
কিভাবে বিস্তারিত একটি নকশা উপর ভিত্তি করে, কিছু কন্ট্রোলার গুলি ছাড়া কাজ রাউটার গুলি এবং তারা তাদের নিজস্ব রাউটিং বা রাউটিং নকশা কিভাবে অনুরোধের প্রক্রিয়াকরণ হয় অন্তর্নিহিত হয় না।
কিছু ডেস্প্যাচার র একটি পাস অনুরোধ প্রেষিত বস্তুর কর্ম পদ্ধতি । এরপরে অ্যাকশন-পদ্ধতিগুলি অনুরোধটিকে নিজের অংশে দ্রবীভূত করে দেয় যাতে এমনকি কন্ট্রোলার ক্রিয়াকলাপগুলি অনুরোধের ভিত্তিতে এখনও কিছু রাউটিং করতে পারে । এর জন্য একটি আদর্শ উদাহরণ সেই ক্ষেত্রে হয় যখন কোনও ফ্রেমওয়ার্ক প্রতিক্রিয়া হিসাবে পুনর্নির্দেশ করার প্রস্তাব দেয়। এটাও দেখায় কিভাবে সংশ্লিষ্ট বা কাছাকাছি রাউটার এবং কন্ট্রোলার আছে।
এখানে সাধারণত যে পার্থক্যটি আঁকা হয় তা হ'ল রাউটিংটি কোন ক্রিয়াকলাপটি কার্যকর করতে হবে তা চিহ্নিত করতে সহায়তা করে এবং নিয়ামক তখন এই ক্রিয়াটি সরবরাহ করতে দায়বদ্ধ তবে উভয়ই অনুরোধটি পরিচালনা করে।
আপনি দেখতে পাচ্ছেন, রাউটার এবং কন্ট্রোলারের মধ্যে পার্থক্য বাস্তবায়ন এবং ফ্রেমওয়ার্কগুলির মধ্যে ব্যাপকভাবে পরিবর্তিত হতে পারে। শেষ পর্যন্ত, কংক্রিট অ্যাপ্লিকেশনটির এটির প্রয়োজনীয়তা রয়েছে যেগুলি নির্দিষ্ট স্তরের বিমূর্ততা দরকারী বা সেই পথে দাঁড়িয়েছে কিনা whether
তবে শর্তগুলি থেকে আমি বলব যে সামগ্রিক প্রয়োগে কন্ট্রোলার একটি উচ্চতর ভূমিকা পালন করে। এই যেখানে পদক্ষেপ তাই বলা যায়।
রাউটারগুলি নিয়ামক স্তরের অংশ । রাউটার প্রসেসিং মেকানিজম হ'ল পুরানো স্কুল ফ্রন্ট কন্ট্রোলার প্যাটার্ন (ইনডেক্স.এফপিতে বড় স্যুইচ) এর প্রতিস্থাপন।
একটি আধুনিক কাঠামোর মধ্যে একটি রাউটার সম্ভাব্য অনুরোধগুলির একটি "ধরণের" এবং এর প্রসেসরের মধ্যে সরাসরি সংযোগটি সংজ্ঞায়িত করে। বিপরীতে, একটি নিয়ামক কেবল তথ্য সনাক্ত করে এবং তার নিজস্ব প্রসঙ্গে এই ডেটাটিকে বিশ্লেষণ করে।
সাধারণত জিইটি বা পোষ্ট ভেরিয়েবল যেমন বাহ্যিক ইনপুট উপর ভিত্তি করে অ্যাপ্লিকেশন মাধ্যমে একটি রাউটার একটি যাত্রা কাজ করে।
একটি রাউটার তবে এমভিসির কোনও অংশ নয়, বেশ কয়েকটি এমভিসি এবং এইচএমভিসি ফ্রেমওয়ার্ক রাউটারগুলি ব্যবহার করে তবে এটি তাদের এমভিসির ধরণে আবদ্ধ করে না।
অতিরিক্তভাবে এমভিসি-র বেশ কয়েকটি প্রাথমিক বাস্তবায়ন আমি প্রত্যক্ষভাবে দেখেছি পৃথক নিয়ন্ত্রক অ্যাক্সেসের জন্য নিয়ন্ত্রণকারীর জন্য একটি ফাইলের সাথে ফাইল-ভিত্তিক ক্রিয়াগুলির উপর নির্ভরশীল। এটি অ্যাপ্লিকেশনটিকে আরও উন্নততর করে তোলে, কারণ চর্মসার নিয়ামকগুলি সহ, আরও শক্তিশালী মডেলগুলি সহ, আপনাকে কখনই নিয়ামকের কোনও নির্দিষ্ট পদ্ধতিতে স্ক্রোল করতে হয় না, এবং তাই আপনি যুক্তিটি এক জায়গায় (মডেল) অ্যাক্সেস করতে পারেন, আপনাকে মিশ্রিত করার অনুমতি দিয়ে থাকেন can আচরণে।
রাউটার লাগে
অনুরোধ
এবং সিদ্ধান্ত নেয় যে কোন নিয়ামক / নিয়ন্ত্রণকারী পদ্ধতিগুলি অনুরোধটি পরিচালনা করবে।
কন্ট্রোলার অনুরোধগুলি গ্রহণ করে এবং এটি পরিচালনা করে!
এখন আমি এমন কন্ট্রোলারও তৈরি করেছি যা ইউআরএলকে বিভক্ত করে এবং বেস ইউআরএলটির পরে প্রথম অংশটি নিয়ামক হিসাবে এবং দ্বিতীয় অংশটি ক্রিয়া হিসাবে ব্যবহার করে। এটি কন্ট্রোলারের সাথে সম্পর্কিত একটি ফাইল এবং ক্রিয়াটির সাথে সম্পর্কিত সেই ফাইলের মধ্যে একটি পদ্ধতি লোড করে।
এটি আসলে কোনও নিয়ামক নয় (যতদূর এমভিসি সম্পর্কিত) এটি রাউটিংয়ের অংশ।
উদাহরণস্বরূপ [জিইটি] ইউরি নিন: উদাহরণ.com/article/view/123 এমভিসি রাউটার ইউরি পার্স করবে এবং নিম্নলিখিত বিভাগগুলি সন্ধান করবে
নিবন্ধ ভিউ 123 ডিফল্টরূপে বেশিরভাগ রাউটারগুলি এখন আর্টিকেল নিয়ন্ত্রণকারীকে ইনস্ট্যান্ট করবে এবং তার ভিউ পদ্ধতিটিকে 123 এ প্যারামিটার হিসাবে পাস করার আহ্বান জানাবে। (আপনার বিকল্পভাবে কিছু getUriSeament (সেগমেন্টআইডেক্স) পদ্ধতি থাকতে পারে, এটি আপনার কাঠামোর জন্য একটি নকশা পছন্দ))
আর্টিকেল কন্ট্রোলারের একটি $ আর্টিকেল আইডি প্যারামিটার সহ একটি ভিউ পদ্ধতি থাকবে। এই পদ্ধতিটি সম্ভবত কিছু করতে পারে: নির্দিষ্ট নিবন্ধটি (উদাহরণস্বরূপ কোনও মডেলের মাধ্যমে একটি ডিবি থেকে) পান এবং তারপরে এটি প্রদর্শন করুন (সম্ভবত এমন কোনও ভিউ ফিরে আসবে যা মডেল দ্বারা ফিরে দেওয়া নিবন্ধটি দেওয়া হয়েছে)