পিএইচপি ফ্রেমওয়ার্ক সহ, কেন "রুট" ধারণাটি ব্যবহার করা হয়?


31

আমি এটি জিজ্ঞাসার কারণটি কোনও পিএইচপি স্ক্রিপ্ট কোনও রুট নয়? উদাহরণস্বরূপ, আপনার যদি আর্টিকেল.এফপি থাকে তবে আপনার রুটটি কেবল http://mysite.com/article.php

কোনও সরল ফাইল হিসাবে ইতিমধ্যে বিদ্যমান যখন কোনও রুটের ধারণাটিকে কেন বিমূর্ত করা যায়?

উত্তর:


44

রাউটার কী করে তা বুঝতে, আপনাকে প্রথমে পুনর্লিখনের ইঞ্জিনটি কী তা বুঝতে হবে। থেকে Wikipedia নিবন্ধটি (জোর খনি):

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

যখন একটি পুনর্লিখন ইঞ্জিন ব্যবহার করা হয় তখন আপনার ইউআরএল এবং পিএইচপি স্ক্রিপ্টের মধ্যে 1: 1 সম্পর্ক নেই। একই নিবন্ধ থেকে একটি উদাহরণ:

http://example.com/wiki/index.php?title=Page_title

এটি আবার লিখতে পারেন:

http://example.com/wiki/Page_title

আছে বিভিন্ন সুবিধা কৌশল ব্যবহার করে। যেহেতু পিএইচপি সাধারণত শক্তভাবে এ্যাপাচি সঙ্গে মিলিত হয়, সবচেয়ে বেশি ব্যবহৃত লেখা ইঞ্জিন এ্যাপাচি এর mod_rewrite

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

রাউটিং হ'ল একটি ইউআরআই শেষ পয়েন্ট (ইউআরআই-এর সেই অংশ যা বেস ইউআরএল পরে আসে) গ্রহণ করে এবং প্যারামিটারগুলিতে এটি দ্রবীভূত করে যে কোনও মডিউল, নিয়ামক এবং সেই নিয়ামকের ক্রিয়াকলাপটি অনুরোধটি গ্রহণ করবে।

আজকাল বেশিরভাগ পিএইচপি ফ্রেমওয়ার্কগুলি এমভিসি প্যাটার্নের উপর ভিত্তি করে হয় এবং এমভিসি ফ্রেমওয়ার্কে প্রক্রিয়াটি এরকম কিছু হয় * :

  1. ব্রাউজারটি একটি ইউআরএলকে নির্দেশ করা হয়েছে,
  2. ওয়েব সার্ভার অনুরোধটি ক্যাচ করে এবং এটিকে একটি সাধারণ এন্ট্রি পয়েন্টে প্রেরণ করে, সাধারণত একটি index.phpস্ক্রিপ্ট,
  3. index.php ইউআরএল পায় এবং রাউটিং প্রক্রিয়া শুরু করে।
  4. ইউআরএলটি পরামিতিগুলিতে বিভক্ত হয়, যেখানে প্রথমটি নিয়ামক হয়, দ্বিতীয়টি ক্রিয়া পদ্ধতি এবং বাকীগুলি গতিশীল পরামিতি হিসাবে বিবেচিত হয়,
  5. যদি প্রথম প্যারামিটারের সাথে মেলে একটি নিয়ামক শ্রেণি উপস্থিত থাকে তবে একটি নিয়ামক অবজেক্ট ইনস্ট্যান্ট হয়,
  6. ক্রিয়া পদ্ধতি যা সাধারণত নিয়ামক বস্তুর একটি ফাংশন বলা হয় এবং এর রিটার্ন আসলে ব্রাউজারে ফিরে আসে।

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

$ রুট ['জার্নাল'] = "ব্লগ";

$ রুট ['ব্লগ / জো'] = "ব্লগ / ব্যবহারকারী / 34";

$ রুট ['product / (: any)'] = "ক্যাটালগ / পণ্য_লুপআপ";

$ রুট ['product / (: num)'] = "ক্যাটালগ / পণ্য_লুপআপ_বি_আইডি / $ 1";

$routeঅ্যারে কী হিসেবে নিদর্শন এবং মান হিসাবে ফলে কর্ম ঝুলিতে controller/action_method/dynamic_parameterবিন্যাস।

* এটি ক্যানোনিকাল প্রক্রিয়াটির বর্ণনা হিসাবে নয়, কেবল একটি ছোট্ট ব্যাখ্যা।


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