# ما هي بيئة لارافل فاليت Laravel Valet؟
بيئة لارافل فاليت* (ڤالي) وهي بيئة تطوير متقدمة جداً لمستخدمي أنظمة تشغيل الماكنتوش OSX ، تم الإفصاح عنها الأسبوع الماضي على أنها بيئة التطوير المثلى وفعلاً هي كذلك كما سنرى في الأسطر التالية،
أخي/أختي شاركوني رأيكم في تعليق أيضاً بعد الإنتهاء من قراءة هذا المقال البسيط 🙂
عندما يقوم تقوم بتشغيل جهازك الماكينتوش تقوم لارفل Valet بتكوينه ليقوم بدوره بتشغيل سيرفر كادي Caddy في الخلفية، ومن ثم عبر إستخدام هذه الأداة لـ Dnsmasq فإنه يقوم بتوكيل جميع الطلبات القادمة إلى النطاقات التي تنتهي بـ *.dev إلى المواقع المنصبة على جهازك المحلي.
بكلماتٍ أخرى، ستملك بيئة تطوير سريعة جداً تستخدم على أقصى تقدير 7 MB من الذواكر!!
Valet ليس ببديل كامل لبيئة تطويرك الوهمية الـ Homestead أو Vagrant وإنّما تزودك ببديل عظيم في حال رغبتك بـ:
- أساسيات مرنة
- تفضل السرعة
- تستخدم حاسوب بكمية محددة من الذواكر.
خارج الصندوق فإنّ Valet يدعم (ولكن لا يقتصر) على:
علماً أنّهُ يمكنك تخصيص Valet للتعامل مع الجزئية التي تريد عبر إضافة برامج تشغيل مخصصة لـ Valet
# لارافل Homestead أم Valet ؟
كما تعرفون حضرتكم فإذن لارافل تأتي مع بيئة التطوير الخاصة بها Homestead، هومستيد و Valet يختلفون من حيث جمهورهم المستهدف وطريقة وصول كل منهما كبيئة تطوير محلية، يقدم لك هومستيد نظام تشغلي Linux كامل وهمي مع إعدادات تكوين أوتوماتيكية لسيرفر Nginx، وبالتالي Homestead خيار رائع في حال رغبتك بإستخدام نظام تشغيل وهمي كامل أو انك تستخدم أحد أنظمة التشغيل الأخرى Windows / Linux.
يجدر بالذكر أنّ Valet يعمل فقط على نظام OSX ويجب أن يحوي هذا النظام على PHP و مخدم قاعدة بيانات منصبان على جهاز حاسوبك بشكل محلي وليس على أي نظام وهمي، وهذا أمر جل بسيط عبر إستخدام أداة مثل Homebrew مع تعليمات مثل:
brew install php70 // وأيضاً brew install mariadb // في الأسفل يوجد طريقة التنصيب // لذلك يرجى عدم تنفيذ هذه الأوامر الآن
Valet يزودك ببيئة تطوير محلية ملتهبة السرعة مع إستهلاك أدنى للموارد التي يملكها حاسوبك وبالتالي هو حل ممتاز للمطورين اللذين يحتاجون إلى PHP / MySQL ولا يحتاجون إلى بيئة تطوير وهمية بنظام كامل.
كلا الأداتين يعتبرا حلين مثالين كبيئة تطوير لتطبيقات لارافل أيهما يجب أن تختار هو أمر يخص مذاقك الشخصي و متطلبات فريقك.
# تنصيب Valet
كما ذكرنا سابقاً، تحتاج إلى حاسوب Mac وإلى أداة Homebrew منصبة بشكل مسبق، قبل البدء بعملية التنصيب من المهم أن تتحق من عدم وجود أي تطبيقات مثل Apache أو Nginx تستخدم المنفذ 80 على جهازك
- نصب الأداة همبرو أو قم بتحديثها إلى آخر إصدار عبر
brew update
- قم بتنصيب PHP 7 عبر Homebrew
brew install homebrew/php/php70
- قم بتنصيب Valet عبر الأداة Composer
composer global require laravel/valet
تأكد بعد ذلك من إضافة المسار التالي إلى المتحول PATH في نظامك
~/.composer/vendor/bin
في حالتك من الممكن أنك تستخدم الـ Shell الإفتراضي وبالتالي يمكنك تنفيذ الأمر المذكور أدناه لوضع المسار المذكور في الأعلى داخل المتحول PATH
echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc
لا تنسى أن تقوم بعملية تسجيل خروج والدخول مرة أخرى إلى Terminal 🙂
في حالتي انا أستخدم أداة OhMyZsh وبالتالي المتحول PATH موجود داخل ~/.zshrc ، فكان على عاتقي إضافته كالتالي:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$HOME/.composer/vendor/bin"
- شغل الأمر التالي والذي سيقوم بدوره بتهيئة Valet و DnsMasq وتسجيل Valet daemon ليقوم بتشغيل نفسه مع كل بدء إطلاق لحاسوبك.
valet install
بعد الإنتهاء من تنصيب Valet ببساطة قم بتنفيذ الأمر ping أي نطاق ينتهي بـ *.dev بإستخدام أداة مثل
ping foobar.dev
في حال كان تنصيب Valet ناجحاً فمن المفروض أن يظهر لك أن هذا النطاق المكتوب بالأعلى يتم الإجابه عليه من قبل IP المحلي لحاسوبك 127.0.0.1 كما في هذه الصورة:
Valet سيقوم بتشغيل daemon الخاص به مع كل مرة يقلع فيها جهازك وبالتالي لا يوجد حاجة لتشغيل أي من الأوامر التالية في حال تم التنصيب بشكل ناجح. valet start أو valet install
إستخدام نطاق آخر
في الحالة الإفتراضية، Valet يقوم بتخديم جميع مشاريعك بإستخدام الدومين .dev كـ TLD نطاق المستوى الأعلى، في حال رغبتك بإستخدام نطاق مختلف يمكنك ذلك عبر التعليمة
valet domain tld-name
مثلاً: في حال رغبتك بإستخدام النطاق .local عوضاً عن .dev يمكنك ذلك عبر تنفيذ الأمر التالي:
valet domain local
سيبدأ Valet بعد هذا الأمر بتخديم مشاريعك من النطاق *.local بشكل تلقائي.
قاعدة البيانات
في حال رغبتك بإنشاء قاعدة بيانات قم بتجربة MariaDB عبر تنصيبها بإستخدام الدالة
brew install mariadb
يمكنك بعد ذلك الإتصال بقاعدة البيانات عبر إستخدام
اسم المستخدم: root
كلمة مرور: سلسة نصوص فارغة
تخديم المواقع
بمجرد أن يتم تنصيب Valet ستتم من تخديم مواقعك بإستخدام هذه الأداة الرائعة، Valet يزودك بتعليمتان لتساعداك بتخديم مشاريعك/مواقعك، وههما park و link
- الأمر park:
- إبدأ بإنشاء مجلد على جهازك الماك عبر الأمر
mkdir ~/Sites // ثم قم بالولوج إلى هذا المجلد cd ~/Sites // ثم قم بتشغيل الأمر valet park
هذا الأمر سيجعل Valet يقوم بتسجيل المجلد الحالي على أنه مجلد حاوي للمشاريع الخاصة بك، وبالتالي Valet سيقوم بالبحث عن مشاريع في داخل هذا المجلد والذي بحالتا يملك الاسم Sites
- قم بإنشاء مشروع لارافل جديد عبر تشغيل الأمر
laravel new blog
- قم بزيارة الرابط التالي
http://blog.dev
هذا كل ما في الامر! 🙂 والآن أي مشروع لارافل تريد إنشاءه داخل مجلدك Sites ــ والذي يعتبر مجلد مركون (parked) بالنسبة لـ Valetــ سيتم تخديمه بشكل تلقائي عبر العرف التالي:
اسم المجلد مكتوباً بحالة الكباب kebab-case ملحوقاً بالدالة .dev
فمثلاً:
في حال كان اسم المجلد هو: Folder Name
سيكون النطاق الخاص به هو: http://folder-name.dev
- إبدأ بإنشاء مجلد على جهازك الماك عبر الأمر
- الأمر link:
يمكنك إستخدام هذا الأمر أيضاً لتخديم مواقعك المُنشئة بإستخدام إطار عمل لارافل، هذا الأمر مفيد في حال رغبتك بتخديم مشروع واحد فقط وليس بتخديم مجلد كامل:- لإستخدام هذا الأمر قم بالملاحة إلى أحد مشاريعك وثم قم بتنفيذ الأمر:
valet link app-name
Valet سيقوم بإنشاء رابط رمزي ** داخل المجلد
~/.valet/Sites
وهذا الرابط الرمزي سيشير إلى مجلد عملك الحالي.
- بعد تشغيل الأمر link يمكنك زيارة الموقع في مستعرضك عبر الرابط
http://app-name.devفي حال رغبتك بإستعراض جميع المجلدات المربوطة يمكنك ذلك عبر الأمر:valet links
كما يمكنك إستخدام التعليمة التالية لتدمير الرابط الرمزي الموجود بين مجلدك و Valet
valet unlink app-name
- لإستخدام هذا الأمر قم بالملاحة إلى أحد مشاريعك وثم قم بتنفيذ الأمر:
- تأمين المواقع عبر TLS
TLS أو طبقة المنافذ الآمنة، في الحالة الإفتراضية Valet يقوم بتخديم المواقع عبر البروتوكول HTTP البسيط، أما في حال رغبتك بإستخدام بروتوكول مشفر TLS بإستخدام HTTP2 يمكنك ذلك عبر إستخدام الأمر secure، فمثلاً في حال كان موقعك يتم تخديمه بواسطة Valet عبر النطاق laravelme.dev يتوجب عليك تشغيل الأمر التالي لتأمينهvalet secure laravelme
ولفك الحماية عن هذا النطاق يمكنك إستخدام الأمر unsecure، وهذ االأمر كسابقه يتوقع تمرير اسم النطاق كمعامل كما في الأمر التالي:
valet unsecure laravelme
# مشاركة المواقع
— في رأيي الشخصي هنا تكمن روعة Valet، ما هو رأيك؟ تكرم بإبداءه في تعليق 😉 —
Valet أيضاً تتضمن أمراً لمشاركة مواقعك التي تقوم بتطويرها محلياً مع العالم!! لا تحتاج إلى تنصيب أداة أو برمجية أخرى فإنّ تنصيبك لـ Valet يكفي.
لمشاركة موقع ما، قم بالملاحة إلى المجلد الذي يحوي على مشروعك/موقعك وقم بتشغيل الأمر:
valet share
سيتم نسخ رابط لمشروعك إلى الـ Clipboard بحيث يمكنك الوصول إلى مشروعك من أي مستعرض حول العالم. هذا كل ما في الأمر!
وكما هو واضح في الصورة أعلاه، لإلغاء عملية المشاركة يمكنك وقت ما تشاء الضغط على
Control + C
أتمنى لكم يوماً سعيداً <3
*: فاليت Valet معناها في اللغة العربية الموظيف المسؤول عن ركن السيارات أو الشخص المصاحب للرجل والذي يتقلص دوره على الأعمال الخاصة بالمظهر والملابس والخدمات المماثلة.
**: الرابط الرمزي symbolic link المتعارف عليه بين مستخدمي ويندوز تحت اسم “إنشاء إختصار” أو shortcut
استغربت وجود هكذا مدونة مليئة بالمقالات المميزة وعدم وجود الكثير من المهتمين من المطورين العرب..
شكراً لك صديقي على المجهود الواضح.
العفو و والشكر الجزيل لك صديقي باسل، وهذا من طيب روحك و كرم أخلاقك 🙂 بإذن الله وبمساعدتك ومساعدة جميع المهتمين سيزداد عدد المتابعين 🙂
شكرًا جزيلا لك، سأجربها بوقت لاحق و اخبرك بالجديد ، اعجبتني مدونتك
سأحتفظ بالتدوينة في العارض الى حين إبلاغك بالجديد
العفو صديقي المسلم، وأتشكرك انت لمرورك ولتعليقك!
أتمنى لك يوماً سعيداً
شكرا كبير الك اخي العزيز اتمنى ان تواصل طرح المزيد من الدروس ودائما بانتظار جديدك واكثر مايهمني هو اطار العمل لارافيل اتمنالك الموفقية اخي وان شاءلله المزيد من المتابعين لانك تستاهل صراحة
Warning: file_get_contents(/var/root/.valet/config.json): failed to open stream: Permission denied in /Users/mypa3x/.composer/vendor/laravel/valet/server.php on line 42
Warning: Invalid argument supplied for foreach() in /Users/mypa3x/.composer/vendor/laravel/valet/server.php on line 67
404 – Not Found