لارافيل درس تعليمي

إتقان Laravel Sail: دليلك لتطوير محلي سلس

Admin User
Admin User
Apr 29, 2026
6 دقيقة قراءة

Key Takeaways

  • ## إتقان Laravel Sail: دليلك لتطوير محلي سلس
  • Laravel Sail هو واجهة سطر أوامر خفيفة الوزن للتفاعل مع بيئة تطوير Docker الافتراضية الخاصة بـ Laravel. يوفر طريقة...

إتقان Laravel Sail: دليلك لتطوير محلي سلس #

Laravel Sail هو واجهة سطر أوامر خفيفة الوزن للتفاعل مع بيئة تطوير Docker الافتراضية الخاصة بـ Laravel. يوفر طريقة بسيطة لإنشاء إعداد تطوير محلي قوي لتطبيقات Laravel الخاصة بك دون الحاجة إلى خبرة مسبقة في Docker. من خلال الاستفادة من Docker، يضمن Sail أن بيئة التطوير الخاصة بك تحاكي بيئة الإنتاج الخاصة بك عن كثب، مما يقلل من مشكلات "يعمل على جهازي" ويُبسّط التعاون بين أعضاء الفريق.

لماذا تختار Laravel Sail؟ #

  • الاتساق: تضمن حاويات Docker أن تطبيقك يعمل في نفس البيئة عبر جميع الأجهزة، من التطوير إلى الإنتاج.
  • العزل: يمكن لكل مشروع أن يكون له بيئته المعزولة الخاصة به بإصدارات PHP محددة، أنواع قواعد البيانات، والخدمات.
  • البساطة: يقوم Sail بتجريد معظم تعقيدات Docker، مما يسمح لك بالتركيز على كتابة الكود.
  • ميزات كاملة: يتضمن خدمات شائعة مثل MySQL، PostgreSQL، Redis، Mailpit، Memcached، MeiliSearch، و Selenium.

المتطلبات الأساسية #

قبل الغوص في Laravel Sail، تأكد من توفر ما يلي:

  • Docker Desktop: لنظامي macOS و Windows (يوصى بـ WSL2 لـ Windows).
  • Docker Engine & Docker Compose: لنظام Linux.
  • فهم أساسي لـ Laravel.
  • مشروع Laravel جديد أو موجود.

البدء مع Laravel Sail #

1. تثبيت Laravel Sail

لمشاريع Laravel الجديدة: أسهل طريقة للبدء مع Sail هي إنشاء مشروع Laravel جديد وتضمين Sail منذ البداية. سيقوم هذا تلقائيًا بتثبيت Sail وجميع ملفات Docker Compose الضرورية.

composer create-project laravel/laravel example-app --prefer-dist
cd example-app
php artisan sail:install

بدلاً من ذلك، يمكنك إنشاء مشروع جديد مباشرة باستخدام Sail وتحديد الخدمات التي تحتاجها:

curl -s "https://laravel.build/example-app?with=mysql,redis,meilisearch,mailpit,selenium" | bash
cd example-app
./vendor/bin/sail up

يقوم هذا الأمر بتنزيل مُثبّت Laravel، وإنشاء مشروعك، وتثبيت Sail، ورفع حاويات Docker.

لمشاريع Laravel الموجودة: إذا كان لديك تطبيق Laravel موجود، يمكنك إضافة Sail إليه باستخدام Composer:

cd your-laravel-project
composer require laravel/sail --dev
php artisan sail:install

سيقوم أمر sail:install بنشر ملف docker-compose.yml إلى جذر مشروعك وتكوين ملف .env الخاص بك لاستخدام خدمات Sail.

2. تشغيل وإيقاف Sail

بمجرد تثبيت Sail، يمكنك بدء بيئة التطوير الخاصة بك باستخدام أمر up:

./vendor/bin/sail up

سيقوم هذا الأمر ببناء صور Docker (إذا لم تكن مبنية بالفعل) وبدء الحاويات المحددة في ملف docker-compose.yml الخاص بك. سيكون تطبيقك متاحًا عادةً على http://localhost.

لتشغيل الحاويات في الخلفية (daemonized)، استخدم العلامة -d:

./vendor/bin/sail up -d

لعرض حالة الحاويات قيد التشغيل:

./vendor/bin/sail ps

لإيقاف جميع حاويات Sail قيد التشغيل:

./vendor/bin/sail stop

لإيقاف وإزالة جميع الحاويات، الشبكات، والوحدات التخزينية (volumes):

./vendor/bin/sail down

هذا مفيد للبدء من جديد، ولكن كن حذرًا لأنه يزيل بيانات قاعدة البيانات إذا لم يتم حفظها خارج الحاوية.

3. تشغيل أوامر Artisan و Composer و NPM

يوفر Sail طريقة ملائمة لتنفيذ الأوامر داخل حاويات Docker الخاصة بك، مما يضمن تشغيلها في البيئة الصحيحة. فقط قم بإضافة ./vendor/bin/sail قبل أوامرك المعتادة.

أوامر Artisan:

./vendor/bin/sail artisan migrate
./vendor/bin/sail artisan tinker
./vendor/bin/sail artisan make:controller HomeController

أوامر Composer:

./vendor/bin/sail composer require laravel/horizon
./vendor/bin/sail composer install

أوامر NPM (Node.js/Yarn):

./vendor/bin/sail npm install
./vendor/bin/sail npm run dev
./vendor/bin/sail yarn add react

أوامر PHP:

./vendor/bin/sail php --version
./vendor/bin/sail php artisan --version

الاختبار:

./vendor/bin/sail test

4. الاتصال بقاعدة البيانات والخدمات الأخرى

يقوم Sail بتكوين ملف .env الخاص بك بالبيانات الضرورية للاتصال بخدماته.

MySQL/PostgreSQL:

  • DB_HOST=mysql (أو DB_HOST=pgsql لـ PostgreSQL)
  • DB_PORT=3306 (أو 5432 لـ PostgreSQL)
  • DB_DATABASE=laravel
  • DB_USERNAME=sail
  • DB_PASSWORD=password

Redis:

  • REDIS_HOST=redis
  • REDIS_PORT=6379
  • REDIS_PASSWORD=null

تذكر أن mysql و redis هي أسماء الخدمات المحددة في ملف docker-compose.yml الخاص بك، والتي يحلها Docker إلى عناوين IP الصحيحة داخل شبكة Docker.

5. تخصيص بيئة Sail الخاصة بك

بينما يعمل Sail بشكل رائع خارج الصندوق، قد تحتاج إلى تخصيص بيئته.

نشر ملفات Dockerfile الخاصة بـ Sail: للحصول على تحكم كامل في صور Docker، يمكنك نشر ملفات Dockerfile الخاصة بـ Sail إلى جذر مشروعك باستخدام:

./vendor/bin/sail artisan sail:publish

سيضع هذا الأمر ملفات Dockerfile (مثل docker/8.2/Dockerfile) وملفات التكوين الأخرى في دليل docker في جذر مشروعك. يمكنك بعد ذلك تعديل هذه الملفات لتثبيت امتدادات PHP إضافية أو تبعيات النظام أو تغيير الصور الأساسية. بعد التعديل، ستحتاج إلى إعادة بناء صورك:

./vendor/bin/sail build --no-cache
./vendor/bin/sail up -d

تعديل docker-compose.yml: يمكنك تعديل ملف docker-compose.yml مباشرة لإجراء ما يلي:

  • إضافة خدمات جديدة (مثل قاعدة بيانات أخرى، عامل قائمة انتظار متخصص).
  • تغيير تعيينات المنافذ (port mappings).
  • ضبط حدود الموارد.
  • تركيب وحدات تخزين إضافية (mount additional volumes).

مثال: إضافة خدمة جديدة (مثل خادم Nginx وكيل مخصص):

# docker-compose.yml
version: '3.8'
services:
    # ... existing services ...

    my-nginx-proxy:
        image: nginx:alpine
        ports:
            - '8080:80'
        volumes:
            - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
            - ./src:/var/www/html # Assuming your Laravel app is in src
        networks:
            - sail

بعد تعديل docker-compose.yml، قم بتشغيل sail up -d لرفع الخدمة الجديدة.

نصائح وحيل لسير عمل أكثر سلاسة #

  • إنشاء اسم مستعار (Bash Alias): قد يكون كتابة ./vendor/bin/sail أمرًا مملاً. أضف اسمًا مستعارًا إلى ملف تكوين الشيل الخاص بك (.bashrc، .zshrc، إلخ):

    alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
    

    بعد ذلك، يمكنك ببساطة تشغيل sail up، sail artisan migrate، إلخ.

  • الأداء على Windows: للحصول على أفضل أداء على Windows، تأكد من استخدام WSL2 (Windows Subsystem for Linux 2) مع Docker Desktop. قم بتكوين Docker Desktop لاستخدام الواجهة الخلفية لـ WSL2.

  • البيانات المستمرة (Persistent Data): بالنسبة لقواعد البيانات، يتضمن ملف docker-compose.yml عادةً وحدات تخزين مسماة (مثل sail-mysql). تحافظ هذه الوحدات التخزينية على البيانات حتى إذا تمت إزالة الحاويات. إذا استخدمت sail down -v، فستتم إزالة هذه الوحدات التخزينية أيضًا، مما يؤدي إلى حذف بياناتك. كن على دراية بهذا عند التنظيف.

  • الوصول إلى shell الحاوية: يمكنك الاتصال بحاوية تطبيقك (التي تشغل PHP) باستخدام:

    ./vendor/bin/sail shell
    

    هذا مفيد لتصحيح الأخطاء أو تنفيذ الأوامر مباشرة داخل الحاوية.

الخاتمة #

يعمل Laravel Sail على تبسيط إعداد وإدارة بيئة تطوير محلية لتطبيقات Laravel بشكل كبير. من خلال تسخير قوة Docker، فإنه يوفر بيئة متسقة ومعزولة وقابلة للتخصيص بدرجة عالية تساعد في تبسيط سير عمل التطوير والتعاون. احتضن Laravel Sail لجعل تجربة التطوير المحلي الخاصة بك سلسة حقًا.

FAQs

ما هي المزايا الرئيسية لاستخدام Laravel Sail مقارنة بأدوات التطوير المحلية الأخرى مثل Valet أو Homestead؟
يوفر Laravel Sail الاتساق من خلال حاويات Docker، مما يضمن تطابق بيئتك مع بيئة الإنتاج. إنه خاص بالمشروع، سهل المشاركة، ويتضمن مجموعة كاملة من الخدمات دون الحاجة إلى جهاز افتراضي أو تكوينات خادم معقدة، على عكس Homestead. Valet أسرع ولكنه خاص بنظام macOS فقط وأقل عزلًا. يوازن Sail بين سهولة الاستخدام وقوة Docker.
كيف يمكنني إضافة خدمة مخصصة أو خدمة طرف ثالث، مثل قائمة انتظار رسائل معينة أو محرك بحث، إلى بيئة Laravel Sail الخاصة بي؟
يمكنك إضافة خدمات مخصصة عن طريق تعديل ملف `docker-compose.yml` مباشرة. قم بتعريف إدخال خدمة جديدة، وحدد صورة Docker الخاصة بها، والمنافذ، والوحدات التخزينية، وإعدادات الشبكة. بعد التعديل، قم بتشغيل `./vendor/bin/sail up -d` لرفع الخدمة الجديدة. لمزيد من التحكم، انشر ملفات Dockerfile الخاصة بـ Sail (`sail:publish`) وقم بتخصيصها.

Want more content like this?

Explore more tutorials in the لارافيل section.

Explore لارافيل

You might also like