احتمالا همه ما وقتی یه پروژه رو بصورت local اجرا میکنیم، دوست داریم از شر localhost نوشتن راحت بشیم و از یه آدرس کوتاه و شیک مثل app.dev
یا شبیه این استفاده کنیم.
این امکان رو ابزارایی مثل Mamp، Vagrant و حتی Wamp در اختیار ما میزاره ولی کمی پیچیده هست، مخصوصا وقتی برای اولین بار باشه که بخوایم اینکار رو انجام بدیم. مشکل پیچیدگی که این روش ها دارن اینه که همون موقع که پروژمون رو ساختیم نمیتونیم از این نوع آدرس استفاده کنیم و قبلش حتما باید تنظیمات رو بصورت دستی انجام بدیم و میتونه زمان بر باشه.
راه حل خیلی راحت و ساده برای این کار، استفاده از Laravel Valet هست.
Laravel Valet
خب برای شروع اول از همه باید Laravel Valet
رو نصب کنیم.
لاراول valet فقط مخصوص کاربران Mac
هست و اگر شما کاربر ویندوز هستید میتونید از Vagrant برای اینکار استفاده کنید و برای هر پروژه، host file
رو بصورت دستی آپدیت کنید.
در صورتی که پکیج Laravel/Laravel روی سیستم شما نصب نیست، پیشنهاد میکنم اول آموزش نصب لاراول و آموزش نصب لاراول با استفاده از Homestead رو حتما بخونید و لاراول رو روی سیستمتون نصب کنید.
نصب Homebrew
خب اول از همه ما باید Homebrew
رو نصب کنیم. با استفاده از این دستور میتونیم Homebrew
رو روی سیستممون نصب کنیم.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Homebrew
در حقیقت یک Package Manager
برای سیستم عامل Mac
هست.
برای اطمینان از نصب Homebrew
، دستور brew
رو در ترمینال اجرا میکنیم. اگر مراحل نصل درست انجام شده باشه، لیستی از دستورهای قابل اجرا با brew
رو میبینیم.

نصب PHP7 و MySQL
بعد از نصب Homebrew
، نوبت به نصب PHP7
و MySQL
هست. برای نصب PHP7
دستور زیر رو اجرا میکنیم.
brew install homebrew/php/php70
موردی که ممکنه حین انجام کار روی پروژه هامون باهاش مواجه بشیم، ارور مربوط به mcrypt
هست که به دلیل نصب نبودن روی سیستمه.
برای نصب افزونه mcrypt
این دستور رو اجرا میکنیم.
brew install homebrew/php/php70-mcrypt
mcrypt در حقیقت جایگزین دستور crypt
در Unix
شده که وظیفه Encrypt
کردن فایل رو داشت. در واقع mcrypt هم همون کار رو میکنه ولی با الگوریتم های جدیدی مثل AES
در صورتی که دوست دارین لیست افزونه های بیشتری رو برای PHP7 ببینید، از این دستور استفاده کنید.
brew search php7
برای نصب MySQL
هم این دستور رو در ترمینال اجرا میکنیم.
brew install mysql
خب مرحله بعد نصب Laravel Valet هست که باید از طریق Composer
اینکار رو انجام بدیم. شما میتونید آموزش نصب Composer رو از اینجا بخونید.
بعد از نصب Composer، از طریق این دستور، پکیج Laravel/Valet رو دانلود و نصب میکنیم.
composer global require laravel/valet=~1.0
بعد از نصب valet بصورت global دستور زیر رو اجرا میکنیم،
valet install
خب حالا بعد از نصب valet نیاز داریم یک دایرکتوری مشخص کنیم که همه پروژه هامون که قراره روی valet اجرا بشه در این دایرکتوری قرار داشته باشه. من به شخصه همونطور که توی دو پست قبل گفتم، در home directory
یک دایرکتوری www
دارم که همه پروژهام در اون قرار داره. حالا یک دایرکتوری جدید بنام valet
در www
میسازم که همه پروژه هایی که قراره روی valet اجرا بشه، اینجا قرار داشته باشه.
حالا باید این دایرکتوری که برای پروژمون مشخص کردیم رو به valet بشناسونیم یا به اصطلاح این دایرکتوری رو روی valet پارک
کنیم. قبل از اجرای دستور پایین باید وارد دایرکتوری مورد نظرمون بشیم.
valet park
حالا توی همون دایرکتوری یک پروژه جدید با لاراول به اسم app
ایجاد میکنیم. دقت کنید هر اسمی که برای پروژمون تعریف کنیم، به عنوان دامین استفاده میشه.
laravel new app
بعد از ایجاد پروژه جدید، وارد مرورگر مشیم و آدرس app.dev
رو وارد میکنیم. به همین راحتی 😍

استفاده از دامین دیگر
بصورت پیشفرض، valet روی domain extension .dev
اجرا میشود. در صورتی که بخوایم میتونیم با استفاده از دستور زیر، از domain extension مورد نظرمون استفاده کنیم که برای مثال در این دستور به .app
تغییر میدیم. شما میتونین بجای app
از هر کلمه ای استفاده کنید.
valet domain app
استفاده از 🔒 SSL
با استفاده از این دستور میتونیم سایت رو از طریق SSL
اجرا کنیم.
valet secure app
که app
در اینجا نام دایرکتوری پروژمون هست.
برای بازگرداندن به حالت قبل یا استفاده از HTTP میتونیم از این دستور استفاده کنیم.
valet unsecure app
به اشتراک گذاری پروژه
یکی از قابلیت های فوق العاده valet، امکان اشتراک گذاری پروژه هست. برای استفاده از این امکان، وارد دایرکتوری پروژمون میشیم و این دستور رو اجرا میکنیم.
valet share

همونطور که در عکس هم میبینیم. در قسمت forwarding
آدرسی در اختیار ما قرار میگیره که میتونیم این آدرس رو به اشتراک بگذاریم. فقط با یه دستور ساده بقیه میتونن پروژه ای که بصورت local روی سیستم اجرا شده رو ببینن !!!
واقعا فوق العاده نیست ؟!! 😍