وب‌لاگ

نوشته‌های من

تغییرمسیر های تو در تو برای فریم‌ورک لاراول

اخیرا پکیجی به نام Laravel Redirects توسط Andrei Badea منتشر شده که این قابلیت را به ما می‌دهد که تغییرمسیر (Redirect) های ساده و یا تو در تو را به اپلیکیشن‌های لاراولی خود اضافه کنیم.

" هنگامی که شما در یک اپلیکیشن URL هایی دارید که دارای قابلیت تغییر هستند، این پکیج می‌تواند از دیدگاه بهینه سازی موتورهای جستجو (SEO) نیز مفید واقع شود. " (بر گرفته از فایل README پکیج)

ابتدا، این پکیج با استفاده از یک میان‌افزار ( middleware ) مسیرها را شناسایی می‌کند و بالقوه کاربران را بر اساس نتایج دریافتی از دیتابیس در جدول تغییرمسیر ها، هدایت می‌کند.

سپس، شما می‌توانید تغییر مسیر دلخواهتان را به مدل پیکربندی شده تغییرمسیر ها اضافه کنید.

در زیر مثالی از نحوه عملکرد تغییرمسیرهای پویا را می‌بینیم.

  • فرض کنیم شما URL ای دارید به نام original/
  • شما یک تغییرمسیر از original/ به modified/ ایجاد می‌کنید:
 Accessing /original will redirect to /modified 
  • حال شما یک تغییرمسیر دیگر از modified/ به modified-again/ ایجاد می‌کنید:
 Accessing /modified will redirect to /modified-again AND
 Accessing /original will redirect to /modified-again 
  • حال شما یک تغییرمسیر دیگر از modified-again/ به modified-yet-again/ ایجاد می‌کنید:
 Accessing /modified-again will redirect to /modified-yet-again AND
 Accessing /modified will redirect to /modified-yet-again AND
 Accessing /original will redirect to /modified-yet-again 
  • حال شما یک تغییرمسیر دیگر از modified-yet-again/ به original/ ایجاد می‌کنید:
 Accessing /modified-yet-again will redirect to /original AND
 Accessing /modified-again will redirect to /original AND
 Accessing /modified will redirect to /original 

نصب پکیج

به راحتی از طریق کامپوزر پکیج رو نصب کنید:

composer require neurony/laravel-redirects

فایل کانفیگ رو پابلیش کنید:

php artisan vendor:publish --provider="Neurony\Redirects\ServiceProvider" --tag="config"

فایل مایگریشن رو پابلیش کنید:

php artisan vendor:publish --provider="Neurony\Redirects\ServiceProvider" --tag="migrations"

بعد از پابلیش مایگریشن، با دستور زیر جدول تغییرمسیرها (redirects) را ایجاد کنید:

php artisan migrate

روش استفاده

افزودن میان‌افزار

برای اینکه عملکرد هدایت شدن اتفاق بیفتد، باید میان افزار RedirectRequests را اضافه کنید . برای این کار به فایل App\Http\Kernel.php مراجعه کنید و آدرس کامل این میان‌افزار را که در زیر آمده است به آرایه middlewareGroups$ و به قسمت web اضافه کنید.


protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, ... \Neurony\Redirects\Middleware\RedirectRequests::class, ], 'api' => [ 'throttle:60,1', 'bindings', ], ];

ساخت تغییرمسیر ها

شما نباید به صورت مستقیم از مدل Redirect استفاده کنید; زیرا این مدل خود از روی اینترفیس RedirectModelContract پیاده سازی شده است. استفاده از کلاس Redirect به صورت مستقیم باعث می‌شود شما نتوانید به تمام قابلیت‌ های درون مدل دسترسی پیدا کنید.

برای ساخت ریدایرکت های جدید در جدول redirects به شکل زیر عمل کنید:

ساخت تغییرمسیر

برای دیدن اینکه چگونه می توانید قابلیت های مدل Redirect را گسترش دهید، کامنت های موجود در config/redirects.php را بررسی کنید.

شاید از این نوشته‌ها هم خوشتان بیاید

وراثت یا کامپوزیشن؟ مسئله این است

کامپوزیشن، به پروسه ای گفته میشه که ما طی اون المان های مختلف برنامه رو برای ساخت یک آبجکت، ترکیب می‌کنیم

کار کردن با فایل‌ها در فریم‌ورک لاراول

مدیریت فایل‌ها یکی دیگر از ویژگی‌هایی است که لاراول آن را در اکوسیستم خود به سادگی پیاده‌سازی کرده است.

زبان برنامه‌نویسی Rust : مقدمه

زبان Rust زبانی مولتی پارادایم هست، که نسخه اولیش در سال ۲۰۱۰ توسط Graydon Hoare ارائه شد

با من تماس بگیرید

از طریق این فرم اهداف و نیازهای پروژه خود را با من در میان بگذارید.