لارافيل 12: كل جديد من 12.0 لـ 12.19 – دليل شامل
يوليو 20, 2025🔧 1. لارافيل 12.0 – ستارتر كيتس وتعديلات أساسية
إصدار 12.0 جاب Starter Kits جاهزة للـ React، Vue، Livewire، وكمان دمج مع WorkOS AuthKit، وكود نوعي آمن، ودعم PHPUnit 12.
React/Vue Starter Kit
تقدر تنشئ مشروع جديد بسهولة:
composer create-project laravel/laravel my-app --prefer-dist
cd my-app
php artisan breeze:install react --typescript
# أو
php artisan breeze:install vue --typescript
WorkOS AuthKit (سوشيال لوجإن، SSO، Passkeys)
// config/workos.php
return [
'client_id' => env('WORKOS_CLIENT_ID'),
'api_key' => env('WORKOS_API_KEY'),
'redirect_uri' => env('WORKOS_REDIRECT_URI'),
'providers' => ['google'=>true,'github'=>true,'microsoft'=>true],
'passkeys' => ['enabled'=>true,'rp_name'=>env('APP_NAME'),'rp_id'=>env('APP_DOMAIN')],
];
وفي الكنترولر:
public function callback() {
$workos = new WorkOS(config('workos.api_key'));
$profile = $workos->sso->getProfile(request('code'));
$user = User::firstOrCreate(['email'=>$profile->email], [
'name'=>$profile->firstName.' '.$profile->lastName,
'workos_id'=>$profile->id,
]);
auth()->login($user);
return redirect()->intended('/dashboard');
}
دعم PHPUnit 12 و Type-Safe Requests
public function store(Request $req): JsonResponse {
$user = User::create([
'name' => $req->string('name')->value(),
'email' => $req->string('email')->value(),
'prefs' => $req->collect('preferences')->toArray(),
]);
return response()->json($user, 201);
}
🧩 2. لارافيل 12.1 – Arr::partition() وتحسينات في HTTP
الميزة الجديدة Arr::partition() بتقسّم المصفوفة حسب شرط:
$numbers = [0,1,2,3,4,5];
[$evens, $odds] = Arr::partition($numbers, fn($n)=>$n%2===0);
// $evens = [0,2,4], $odds = [1,3,5]
وكمان تقدر تتحكم في حجم ponse body لو حصل خطأ في طلب HTTP:
Http::truncateExceptionsAt(240)
->post('https://example.com/api', [...]);
⚙️ 3. لارافيل 12.19 – Custom Builders & Fluent Casts وغيرها
@useEloquentBuilder: تربط موديل builder خاص.- Fluent Casts: تحول الخصائص لكائنات زي URI.
- Fail-on-Exception Middleware: يفشل الجوب لو حصل throttle exception أوتوماتيكي.
#[useEloquentBuilder(MyBuilder::class)]
class Post extends Model {
// دلوقتي استعلامات Model هتستخدم MyBuilder
}
📋 4. تغييرات بسيطة وراحة أفضل للمطور
String::doesntStartWith()وdoesntEndWith().- إضافة JSON Serializable في URI class.
- تحسينات في الـ queue، pagination، واللوجز.
- تحقّق الصور ما يشتّملش SVG إلا لو بعدتها صراحة:
'photo'=>'image:allow_svg'.
💡 نصائح عملية للاستخدام في المشاريع
- ✅ استخدم starter kits لتسريع الـ setup.
- 🔍 استبدل تقسيم المصفوفة باستخدام
Arr::partition(). - 🛡️ استخدم truncate للتقليل من حجم الخطأ في الـ logs.
- 🧰 لفّك استخدام custom builders و fluent casts لكود أوضح.
- 🧪 حدّث PHPUnit و Carbon 3 عشان تختبر صح.
- ⚠️ لو محتاج SVG خليه مسموح صراحة.
المدونة
الدليل الكامل لتحديثات ECMAScript 2025 للمطورين
يوليو 06, 2025
📘 شرح تفصيلي لتحديثات ECMAScript 2025 جميع مميزات ECMAScript 2025، مع أمثلة عملية وفهم ليه الميزة دي مهمة لأي مبرمج واجهة أمامية. ١. مجموعات مسما...
نظرة معمقة على Laravel Context: تسجيل وتحليل السياق البرمجي باحترافية
يوليو 20, 2025
في Laravel 12، تم تقديم Laravel Context كأداة قوية بتخلي تتبع الطلبات، تسجيل الأخطاء، وتحليل سلوك الوظائف الخلفية أسهل وأدق من أي وقت فات. وده بيحصل ع...
إتقان CSS الحديثة: قوة if()، Popover Hints، والتنسيقات الذكية
يوليو 16, 2025
🌐 إتقان CSS الحديثة: قوة if()، Popover Hints، والتنسيقات الذكية CSS دلوقتي بقت أذكى بكتير. دالة if()، وميزة popover="hint"، وازاي نكتب تنسيقات متج...
أحدث مميزات ECMAScript 2025
يونيو 30, 2025
أحدث مميزات ECMAScript 2025 في 25 يونيو 2025، تم اعتماد ES2025 رسميًا. الإضافات الجاية هتسهل عليك كتابة الكود: 1. 📦 Import Attributes و JSON Module...
لارافيل 12: كل جديد من 12.0 لـ 12.19 – دليل شامل
يوليو 20, 2025
🔧 1. لارافيل 12.0 – ستارتر كيتس وتعديلات أساسية إصدار 12.0 جاب Starter Kits جاهزة للـ React، Vue، Livewire، وكمان دمج مع WorkOS AuthKit،...
React Native 0.80 وExecuTorch: بداية قوية للذكاء الاصطناعي المحلي في تطبيقات الموبايل
يوليو 28, 2025
🚀 الجديد في React Native 0.80 بالتفصيل الإصدار React Native 0.80 يعتبر نقطة تحول حقيقية في عالم تطوير تطبيقات الموبايل باستخدام React Native. التح...