استكشف أقوى تقنيات Laravel الحديثة: Inertia.js، View Creators، وHLS خطوة بخطوة

يوليو 27, 2025

أدوات قوية تقدر تستخدمها لتطوير تطبيقات Laravel بشكل احترافي: Inertia.js v2، وView Creators، وحزمة Laravel HLS لبث الفيديوهات بأمان.

١. Inertia.js v2 مع Laravel Adapter و React

Inertia.js هو حل بيخليك تشتغل على تطبيقات SPA - Single Page Application باستخدام Laravel و React من غير ما تضطر تبني REST API بالكامل.

🔧 خطوات التثبيت:
composer require inertiajs/inertia-laravel

npm install @inertiajs/inertia @inertiajs/inertia-react react react-dom
⚙️ إعداد المشروع:
// resources/js/app.jsx
import { createInertiaApp } from '@inertiajs/inertia-react';
import { render } from 'react-dom';

createInertiaApp({
  resolve: name => require(`./Pages/${name}`),
  setup({ el, App, props }) {
    render(, el);
  },
});
🔥 أهم المميزات في Inertia v2:
  • inertia.ensure_pages_exist: Laravel بيعرض خطأ واضح لو الـ Component مش موجود.
  • php artisan inertia:check-ssr: أمر جديد بيتأكد إن SSR شغال بعد النشر.
  • form.resetAndClearErrors(): بينضف البيانات والأخطاء معًا في استدعاء واحد.
🧪 مثال على التنقل باستخدام Inertia:
import { Inertia } from '@inertiajs/inertia';

Inertia.visit('/users', {
  onSuccess: () => console.log('تم تحميل الصفحة'),
  onError: () => alert('فيه مشكلة في التحميل'),
});

٢. View Creators في Laravel

View Creators بتسمحلك تحضّر البيانات مباشرة بعد إنشاء الـ View، قبل ما تبدأ Laravel في رندرتها.

🔧 طريقة الاستخدام:
use Illuminate\Support\Facades\View;

View::creator('dashboard', function ($view) {
    $view->with('totalUsers', \App\Models\User::count());
});
📌 الفوائد:
  • بيفصل منطق تجهيز البيانات عن الـ Controller.
  • بيخلّي الـ View دايمًا فيه المعلومات المطلوبة من غير تكرار الكود.

٣. بث الفيديوهات باستخدام Laravel HLS

Laravel HLS هي حزمة بتخليك تحوّل فيديوهاتك المخزنة في Eloquent Models لبث مباشر أو عند الطلب باستخدام بروتوكول HLS، وبتدعم تشفير AES-128.

🔧 التثبيت:
composer require outl1ne/laravel-hls
⚙️ الاستخدام:

ضيف Trait في موديل الفيديو:

use Outl1ne\Hls\Traits\ConvertsToHls;

class Video extends Model {
    use ConvertsToHls;
}

وبعدين تقدر تنفذ التحويل:

$video = Video::find(1);
$video->convertToHls();
🎯 المزايا:
  • تحويل سريع وآمن للفيديوهات.
  • دعم تشفير AES-128 لحماية المحتوى.
  • مناسب للتعليم الإلكتروني أو منصات الفيديو حسب الطلب.

المدونة

React Labs: View Transitions وActivity

يونيو 17, 2025

React Labs: View Transitions وActivity المنشور اتكتب يوم 23 أبريل 2025 من Ricky Hanlon. في React Labs النهارده بيقدّموا ميزتين تجريبيّتين مودرن...

مقارنة بين Scopes + Traits × UseEloquentBuilder في Laravel

يوليو 13, 2025

في Laravel، بنحتاج دايمًا نكتب استعلامات شبه بعض في أكتر من مكان. Laravel بتوفر طريقتين أساسيين نقدر نستخدمهم علشان نرتّب الاستعلامات دي: Scopes + Tra...

مقارنة CSS: طبقات vs BEM vs Utility Classes

يونيو 26, 2025

مقارنة CSS: Cascade Layers و BEM و Utility Classes المقالة بتتكلّم عن ٣ طرق لإدارة الـ specificity في CSS – BEM والـ utility‑first classes وك...

Laravel 12.19: استخدام Attributes لتنظيم الـ Query Builder

يوليو 07, 2025

Laravel 12.19: استخدام Attributes تنظّم Query Builder في Laravel 12.19، دلوقتي تقدر تستخدم Attribute اسمه #[UseEloquentBuilder] علشان تحدد Query Bu...

شرح مفصل لكل هوك في React

يوليو 01, 2025

🎣 شرح React Hooks وبأمثلة عملية 🧠 useState بيعمل إيه: بيضيف حالة داخلية (state) جوا أي مكون شغال بوظيفة. مثال عملي: import React, { useSta...

استخدام useCallback في React: الفوائد، القيود، والممارسات المثالية

يوليو 31, 2025

Hook useCallback في React يُستخدم لإنشاء نسخة ثابتة من دالة (callback) بحيث لا يُعاد إنشاؤها إلا إذا تغيرت الـ dependencies المحددة. الهدف الأساسي م...