احسان رضایی

یک توسعه دهنده

درس های yii2 شماره 18: حذف web از url

در / تاریخ ارسال 28-04-1396 / 0 نظر / آخرین ویرایش 14-01-1403

دیدن عنوان دایرکتوری web داخل url برای من خیلی آزار دهنده بود. دلیلش این هست که index.php داخل این پوشه قرار گرفته. برای حذف کردن web از آدرس ها فقط کافیه سه مرحله زیرُ دنبال کنید.

- index.php رو به یک پوشه بالاتر مثلا backend/index.php انتقال بدین.

- بازش کنید و مسیر های داخلش رو تغییر بدین. چون جا به جا شده لازمه از هر مسیر یک /.. حذف بشه:

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../common/config/bootstrap.php');
require(__DIR__ . '/config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(require(__DIR__ . '/../common/config/main.php'), require(__DIR__ . '/../common/config/main-local.php'), require(__DIR__ . '/config/main.php'), require(__DIR__ . '/config/main-local.php'));
$application = new yii\web\Application($config);
$application->run();

- میتونید همراه با index.php پوشه های assets، css و... هم منتقل کنید اما اگر مثل من فکر میکنید جاشون خوبه و اینطور کار تمیز تر هست داخل app جاری مثلا backend فایل assets/AppAsset.php رو باز و baseUrl رو اینطور تغییر بدین:

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web/web';
    public $css = ['css/bootstrap.min.css',];
    public $js = ['js/bootstrap.min.js',];
    public $depends = ['yii\web\YiiAsset', 'yii\bootstrap\BootstrapAsset',];
}

همچنین بعدش در config/main داخل components میبایست basePath هم اصلاح بشه(اگر اصلا assetManager رو ندارین اضافه اش کنید)

'assetManager' => [
    'basePath' => '@webroot/web/assets',
    'baseUrl' => '@web/web/assets',
    ],

- کنار index.php یک فایل htaccess. با محتوای زیر ایجاد کنید:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

اگر دوست دارید app جدیدی بسازید و یا اینکه مثلا backend رو تغییر نام بدین این مطلب میتونه کمکتون کنه.

کتاب‌ها

کتاب الگوهای طراحی به بیان ساده(design patterns / دیزاین پترن)

در مهندسی نرم افزار، design patterns(الگوهای طراحی) راه حل‌های قابل استفاده برای مشکلاتی هستند که معمولاً در طراحی نرم‌افزار اتفاق می افتند.

طرح های از پیش ساخته شده‌ای که می‌توانید برای حل مشکلات آن‌ها را سفارشی کنید. شما نمی‌توانید یک الگو را با جستجو در stackoverflow پیدا و در برنامه خود کپی کنید. الگو ها یک قطعه کد خاص نیستند، مفاهیم کلی برای حل مشکلات خاص هستند. شما باید با درک این مفاهیم آن‌ها را در برنامه خود پیاده‌سازی کنید.

کتاب refactoring / ریفکتورینگ

Refactoring مجموعه‌ای از تکنیک‌هاست که به منظور اصلاح و بهبود کدهای قبلی بدون تغییر در عملکرد و رفتارشان جهت خوانایی، کارامدی و قابلیت نگهداری بیشتر انجام می‌شود.

در کتاب Refactoring اثر Martin Fowler نوشته شده: refactoring تکنیک مرتب/منظم سازی برای تجدید ساختار کد موجود است. تغییر ساختار داخلی کد بدون تغییر رفتار خارجی آن.

refactoring یک سرمایه‌گذاری و راه حلی برای مقابله با کد کثیف و بدهی فنی است که باعث کاهش هزینه‌های توسعه نرم‌افزار در آینده خواهد شد.

ارسال نظر