প্রতি পৃষ্ঠায় একজন নিয়ামক বা একটি নিয়ামকের অনেক পৃষ্ঠা?


16

আমি এমভিসি করার পদ্ধতি সম্পর্কে কিছু পরামর্শ চেয়েছিলাম advice আমি কোডইনিটার ব্যবহার করছি এবং আমি ভাবছিলাম যে কোনও ওয়েবসাইটের জন্য প্রতি পৃষ্ঠায় একজন নিয়ামক রাখা বা সমস্ত পৃষ্ঠার জন্য একটি নিয়ামক রাখা ভাল?

ধরা যাক আমার একটি সহজ ওয়েবসাইট রয়েছে যেখানে আপনি হোমপেজটি দেখতে, লগইন করতে, একটি অ্যাকাউন্ট তৈরি করতে এবং প্রশাসকের সাথে যোগাযোগ করতে পারেন।

  1. এই কন্ট্রোলারগুলি রাখা কি আরও ভাল হবে: ফ্রন্টএন্ড (সূচী), লগইন, অ্যাকাউন্ট, যোগাযোগ বা ফ্রন্টএন্ড নামে পরিচিত একটি নিয়ামক থাকা বা যেমন লগইন, ক্রিয়াকলাক্ট, যোগাযোগ?

  2. আপনি কখন জানেন যে কোনও পরিস্থিতিতে একজন নিয়ামক ব্যবহার করা ভাল কিনা?


আমি সর্বদা ধর্মের দ্বারা বেঁচে ছিলাম: তাদের সকলকে শাসন করার এক নিয়ামক এবং অন্ধকারে তাদের বেঁধে রাখুন। (সত্যিই নয়, তবে আমি এর শব্দটি পছন্দ করি ::-)
পিটার রোয়েল

উত্তর:


17

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


এই ক্ষেত্রগুলি সহ আপনি কোনও ওয়েবসাইটকে কীভাবে উপস্থাপন করবেন: হোম, লগইন, অ্যাকাউন্ট, যোগাযোগ। আপনি কি উদাহরণস্বরূপ 2 টি নিয়ামক ব্যবহার করবেন? আপনি যদি লোকালহোস্টে যান / এটি হোমকন্ট্রোলারটি খোলে আপনি যদি থিয়োলে লোকালহোস্ট / যোগাযোগে যান তবে এটি নিয়ামকের সাথে যোগাযোগ করতে হবে না? এবং আপনি ব্যাকএন্ড বলতে কি বোঝাতে চান?
রুশিনো

এটি নির্ভর করে যে পৃষ্ঠাগুলির গঠন কী এবং আপনার কত পৃষ্ঠা রয়েছে। আমি হোম কন্ট্রোলার (হোম, যোগাযোগ) বা পৃষ্ঠাগুলি নিয়ন্ত্রণকারী (হোম, যোগাযোগের বা বিশদ (আইডি)) তৈরি করব। উদাহরণস্বরূপ এএসপি.নেট এমভিসিতে আপনার কাছে হোম এবং প্রায় পৃষ্ঠাটি সহ ডিফল্ট হোমকন্ট্রোলার রয়েছে।
সান্টাস

আমি এই পদ্ধতিটি পছন্দ করি। এছাড়াও একটি ক্লায়েন্টকন্ট্রোলার (বা আপনি যা কল করতে চান) Jquery.Ajax এর মাধ্যমে কল করা ক্রিয়াগুলির জন্য যা আপনার অ্যাপ্লিকেশনের কোনও নির্দিষ্ট অংশের সাথে সুনির্দিষ্ট নয়। যেমন আপনার যে কোনও মতামত থেকে পুনরায় ব্যবহারযোগ্য
ক্রিস

আমার সঠিক উত্তর মনে হচ্ছে। কোডইগনিটারগুলি নিয়ন্ত্রণকারীদের জন্য সাব ডিরেক্টরিগুলি গ্রহণ করে যা অঞ্চলগুলিতে পৃথক করা নিয়ন্ত্রণকারীদের সক্ষম করে যাতে আমি দুটি পৃষ্ঠাস্ক্রোলার (প্রতিটি অঞ্চলে এক) দিয়ে শেষ করতে পারি। ধন্যবাদ!
রুশিনো

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

4

@ রুশিনো আপনার এখানে দুটি 'অ্যাপ' রয়েছে - সম্মুখ-প্রান্ত (পাঠকদের জন্য) এবং ব্যাকএন্ড (প্রশাসকদের জন্য)। কার্যকারিতা প্রতিটি গ্রুপের জন্য, আপনি একটি নিয়ামক আছে।

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

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

ব্যবহারকারীদের জন্য - যদি ব্যবহারকারীরা নিজেরাই নিবন্ধভুক্ত করতে পারেন তবে তাদের জন্য ফ্রন্টএন্ড কন্ট্রোলারের প্রয়োজন হবে, তবে যদি তা না হয় তবে ব্যবহারকারীদের সাথে করা সবকিছু কেবল ব্যাকএন্ডে চলে যায়।

নোট করুন যে প্রতিটি ব্যাকএন্ড ফাংশনটিতে জেনারেটর এবং হ্যান্ডলার উভয়েরই প্রয়োজন হতে পারে। জেনেরিক ফর্ম জেনারেটর এমন একটি প্লাগইন সহ এই জিনিসগুলি কনফিগার ফাইলে বিভক্ত করা যেতে পারে।

সংক্ষেপে, এটি এর মতো দেখাচ্ছে:

Frontend
  Pages
    View, Handle
  Login
    View, Handle
  Users
    Register (note that the handler can be the same as 'create' on the backend)
  Contact
    View
    Handle

Backend
  Users
    Create, Delete, Edit, Update, View
  Pages
    Create, Delete, Edit, Update, View

অপেক্ষা করুন .. আপনার বক্তব্য যে একটি বিভাগ একটি অ্যাপ্লিকেশন উপস্থাপন করে? এটি করার আকর্ষণীয় উপায় (এবং সম্ভবত এটি করার উপায়)। আশ্চর্য কি যদি কোডিগাইনার এটি এভাবে করে .. চেক করবে। আমি অবশ্যই নিশ্চিত যে আপনি কোনও অধিবেশন বা সংযোগের অবস্থা ভঙ্গ না করে এক অ্যাপ থেকে অন্য অ্যাপে যেতে পারেন।
রুশিনো

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

2

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

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

শুধু আমার 2 সেন্ট।


0

আমি মনে করি আপনি অন্যরকম পদ্ধতির গ্রহণ করতে পারেন:

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

এটি আমার ধারণা নয় তবে সিমফনি ফ্রেমওয়ার্ক এইভাবে কাজ করে যাতে আমি আপনাকে বলতে পারি যে আমার অভিজ্ঞতার দ্বারা এটি একটি ফ্রন্টএন্ড বাস্তবায়নের জন্য একটি দুর্দান্ত এবং মার্জিত উপায়।

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