29-04-1395، 09:24 ق.ظ
مقدمه
با توجه به حجم زیاد درخواست برای آموزش نحوه مسیریابی و ایجاد لینکها و آدرسها در Yii2 تصمیم گرفتم این تاپیک رو ایجاد کنم. این تاپیک ترجمه صفحه Routing and URL Creation از سایت رسمی YiiFramework هست که البته سعی کردم تجربیات و توضیحات خودم رو هم بهش اضافه کنم.
وقتی یه برنامه Yii شروع به پردازش URL درخواستشده میکنه، اولین قدمی که برمیداره، تفسیر URL و تبدیلش به یک مسیر هست. این مسیر بعداً برای ایجاد یک شئ از اکشن کنترلر مناسب برای کنترل درخواست بکار میره. کل این فرایند مسیریابی نام داره.
فرایند معکوس مسیریابی هم «ساخت URL» نام داره که طی اون، یه URL ازطریق مسیر مشخصشده و پارامترهای Query (روش GET) که توی قوانین مسیریابی (Rules) تعیین کردیم، تولید میشه.
بخش مرکزی که مسئول مسیریابی و ساخت URLها هست، URL Manager نام داره که بعنوان کامپوننت urlManager توی فایل تنظیمات برنامه ثبت شده. مدیر URL متد خاصی داره بنام parseRequest() برای تفسیر یه درخواست ورودی به یه مسیر و پارامترهای Get مربوطه و همچنین متد createUrl() برای ایجاد یک URL از مسیر مشخص و پارامترهای تعریفشده. با تنظیمکردن کامپوننت urlManager توی فایل تنظیمات برنامه، میتونین به برنامه خودتون اجازه بدین که فرمتهای URL مختلف رو بدون نیاز به تغییر سورسکد برنامه اصلاح کنه. برای مثال میتونید از کد زیر برای ایجاد یک آدرس برای اکشن post/view استفاده کنید:
بسته به تنظیمات urlManager، آدرس تولیدشده ممکنه شبیه یکی از موارد زیر (یا یک فرمت دیگه) باشه و اگه بعداً URL تولیدشده هم توسط کاربران درخواست شد، مجدداً به فرمت مسیر اصلی و پارامترهای GET مربوطه تبدیل میشه:
با توجه به حجم زیاد درخواست برای آموزش نحوه مسیریابی و ایجاد لینکها و آدرسها در Yii2 تصمیم گرفتم این تاپیک رو ایجاد کنم. این تاپیک ترجمه صفحه Routing and URL Creation از سایت رسمی YiiFramework هست که البته سعی کردم تجربیات و توضیحات خودم رو هم بهش اضافه کنم.
وقتی یه برنامه Yii شروع به پردازش URL درخواستشده میکنه، اولین قدمی که برمیداره، تفسیر URL و تبدیلش به یک مسیر هست. این مسیر بعداً برای ایجاد یک شئ از اکشن کنترلر مناسب برای کنترل درخواست بکار میره. کل این فرایند مسیریابی نام داره.
فرایند معکوس مسیریابی هم «ساخت URL» نام داره که طی اون، یه URL ازطریق مسیر مشخصشده و پارامترهای Query (روش GET) که توی قوانین مسیریابی (Rules) تعیین کردیم، تولید میشه.
بخش مرکزی که مسئول مسیریابی و ساخت URLها هست، URL Manager نام داره که بعنوان کامپوننت urlManager توی فایل تنظیمات برنامه ثبت شده. مدیر URL متد خاصی داره بنام parseRequest() برای تفسیر یه درخواست ورودی به یه مسیر و پارامترهای Get مربوطه و همچنین متد createUrl() برای ایجاد یک URL از مسیر مشخص و پارامترهای تعریفشده. با تنظیمکردن کامپوننت urlManager توی فایل تنظیمات برنامه، میتونین به برنامه خودتون اجازه بدین که فرمتهای URL مختلف رو بدون نیاز به تغییر سورسکد برنامه اصلاح کنه. برای مثال میتونید از کد زیر برای ایجاد یک آدرس برای اکشن post/view استفاده کنید:
use yiihelpersUrl; // Url::to() calls UrlManager::createUrl() to create a URL $url = Url::to(['post/view', 'id' => 100]);
بسته به تنظیمات urlManager، آدرس تولیدشده ممکنه شبیه یکی از موارد زیر (یا یک فرمت دیگه) باشه و اگه بعداً URL تولیدشده هم توسط کاربران درخواست شد، مجدداً به فرمت مسیر اصلی و پارامترهای GET مربوطه تبدیل میشه:
/index.php?r=post%2Fview&id=100 /index.php/post/100 /posts/100