بيئة لارافل فاليت Laravel Valet

# ما هي بيئة لارافل فاليت Laravel Valet؟

بيئة لارافل فاليت* (ڤالي) وهي بيئة تطوير متقدمة جداً  لمستخدمي أنظمة تشغيل الماكنتوش OSX ، تم الإفصاح عنها الأسبوع الماضي على أنها بيئة التطوير المثلى وفعلاً هي كذلك كما سنرى في الأسطر التالية،
أخي/أختي شاركوني رأيكم في تعليق أيضاً بعد الإنتهاء من قراءة هذا المقال البسيط 🙂

عندما يقوم تقوم بتشغيل جهازك الماكينتوش تقوم لارفل Valet  بتكوينه ليقوم بدوره بتشغيل سيرفر كادي Caddy في الخلفية، ومن ثم عبر إستخدام هذه الأداة لـ Dnsmasq فإنه يقوم بتوكيل جميع الطلبات القادمة إلى النطاقات التي تنتهي بـ *.dev إلى المواقع المنصبة على جهازك المحلي.

بكلماتٍ أخرى، ستملك بيئة تطوير سريعة جداً تستخدم على أقصى تقدير 7 MB من الذواكر!!
Valet ليس ببديل كامل لبيئة تطويرك الوهمية الـ Homestead أو Vagrant وإنّما تزودك ببديل عظيم في حال رغبتك بـ:

  1. أساسيات مرنة
  2. تفضل السرعة
  3. تستخدم حاسوب بكمية محددة من الذواكر.

خارج الصندوق فإنّ 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 كما في هذه الصورة:

    laravel valet ping laravelme.dev

     

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:
    1. إبدأ بإنشاء مجلد على جهازك الماك عبر الأمر
      mkdir ~/Sites
      // ثم قم بالولوج إلى هذا المجلد
      cd ~/Sites
      // ثم قم بتشغيل الأمر 
      valet park

      هذا الأمر سيجعل  Valet يقوم بتسجيل المجلد الحالي على أنه مجلد حاوي للمشاريع الخاصة بك، وبالتالي  Valet سيقوم بالبحث عن مشاريع في داخل هذا المجلد والذي بحالتا يملك الاسم Sites

    2. قم بإنشاء مشروع لارافل جديد عبر تشغيل الأمر
      laravel new blog
    3. قم بزيارة الرابط التالي
      http://blog.dev

      هذا كل ما في الامر! 🙂 والآن أي مشروع لارافل تريد إنشاءه داخل مجلدك Sites ــ والذي يعتبر مجلد مركون (parked) بالنسبة لـ Valetــ سيتم تخديمه بشكل تلقائي عبر العرف التالي:
      اسم المجلد مكتوباً بحالة الكباب kebab-case ملحوقاً بالدالة .dev

      Kebab Case meme
      فمثلاً:
      في حال كان اسم المجلد هو:    Folder Name
      سيكون النطاق الخاص به هو:  http://folder-name.dev

 

  • الأمر link:
    يمكنك إستخدام هذا الأمر أيضاً لتخديم مواقعك المُنشئة بإستخدام إطار عمل لارافل، هذا الأمر مفيد في حال رغبتك بتخديم مشروع واحد فقط وليس بتخديم مجلد كامل:

    1. لإستخدام هذا الأمر قم بالملاحة إلى أحد مشاريعك وثم قم بتنفيذ الأمر:
      valet link app-name

      Valet سيقوم بإنشاء رابط رمزي ** داخل المجلد

      ~/.valet/Sites

      وهذا الرابط الرمزي سيشير إلى مجلد عملك الحالي.

    2. بعد تشغيل الأمر 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  بحيث يمكنك الوصول إلى مشروعك من أي مستعرض حول العالم. هذا كل ما في الأمر!
laravel valet share laravelme.dev

وكما هو واضح في الصورة أعلاه، لإلغاء عملية المشاركة يمكنك وقت ما تشاء الضغط على
Control + C

 

أتمنى لكم يوماً سعيداً <3


*: فاليت Valet معناها في اللغة العربية الموظيف المسؤول عن ركن السيارات أو الشخص المصاحب للرجل والذي يتقلص دوره على الأعمال الخاصة بالمظهر والملابس والخدمات المماثلة.

**: الرابط الرمزي symbolic link المتعارف عليه بين مستخدمي ويندوز تحت اسم “إنشاء إختصار” أو shortcut

6 آراء على “بيئة لارافل فاليت Laravel Valet”

  1. استغربت وجود هكذا مدونة مليئة بالمقالات المميزة وعدم وجود الكثير من المهتمين من المطورين العرب..
    شكراً لك صديقي على المجهود الواضح.

    1. العفو و والشكر الجزيل لك صديقي باسل، وهذا من طيب روحك و كرم أخلاقك 🙂 بإذن الله وبمساعدتك ومساعدة جميع المهتمين سيزداد عدد المتابعين 🙂

  2. شكرًا جزيلا لك، سأجربها بوقت لاحق و اخبرك بالجديد ، اعجبتني مدونتك
    سأحتفظ بالتدوينة في العارض الى حين إبلاغك بالجديد

  3. شكرا كبير الك اخي العزيز اتمنى ان تواصل طرح المزيد من الدروس ودائما بانتظار جديدك واكثر مايهمني هو اطار العمل لارافيل اتمنالك الموفقية اخي وان شاءلله المزيد من المتابعين لانك تستاهل صراحة

  4. 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

التعليقات مغلقة.