انواع فرمت های URL در فریمورک Yii
هنگامی که برنامه Yii یک آدرسِ درخواستی (request) را پردازش می کند، ابتدا URL را به یک route تبدیل می کند. سپس، برای handle کردن request، از این route برای معرفی یک action از controller استفاده می کند. این فرآیند مسیریابی یا routing نامیده می شود. معکوس این فرایند "URL creation" یا "ایجادِ آدرس"، نامیده می شود.
برنامه urlManager مسئول routing و URL creation است، که این دو متد را ارائه می دهد :
- parseRequest() - یک request را به یک route تبدیل می کند.
- createUrl() - یک URL برای یک route مشخص شده ایجاد می کند.
فرمت های URL
اجزای برنامه urlManager از دو فرمت URL پشتیبانی می کند :
- فرمت پیش فرض از یک پارامتر پرس وجو r برای نشان دادن مسیر استفاده می کند. به عنوان مثال، /index.php?r=news/view&id=5 نشانگر route یا مسیر news/view و یک query که دارای پارامتر id با مقدار 5 است.
- فرمت pretty URL از مسیر اضافی با نام اسکریپت ورودی استفاده می کند. به عنوان مثال، فرمت مثال قبلی را می توان به فرمت /index.php/news/view/5 نوشت. برای استفاده از این فرمت شما باید قوانین URL را تنظیم کنید.
برای فعال کردن فرمت URL مناسب و پنهان کردن نام اسکریپت ورودی، این مراحل را دنبال کنید -
مرحله 1 - فایل config/web.php را به شیوه زیر تغییر دهید.
<?php
$params = require(__DIR__ . '/params.php');
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'components' => [
'request' => [
// !!! insert a secret key in the following (if it is empty) -
//this is required by cookie validation
'cookieValidationKey' => 'ymoaYrebZHa8gURuolioHGlK8fLXCKjO',
],
'cache' => [
'class' => 'yii\caching\FileCache',
],
'user' => [
'identityClass' => 'app\models\User',
'enableAutoLogin' => true,
],
'errorHandler' => [
'errorAction' => 'site/error',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true
],
'db' => require(__DIR__ . '/db.php'),
],
'modules' => [
'hello' => [
'class' => 'app\modules\hello\Hello',
],
],
'params' => $params,
];
if (YII_ENV_DEV) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [
'class' => 'yii\debug\Module',
];
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
];
}
return $config;
?>
ما فقط فرمت pretty URL را فعال نمودیم و نام اسکریپت ورودی را غیر فعال کردیم.
مرحله 2 - حال اگر در نوار آدرس مرورگر وب http://localhost:8080/site/about را تایپ کنید، pretty URL را در action مشاهده خواهید کرد.
توجه داشته باشد که دیگرآدرس http://localhost:8080/index.php?r=site/about وجودندارد
این فصل در یک نگاه:
…
سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…این فصل در یک نگاه:
…
پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…