تحديث Laravel 12.18.0

يونيو 17, 2025

تحديث Laravel 12.18.0

صدر نسخه Laravel 12.18.0 فيها شوية ميزات جامدة كده:

  • توابع لتشفير وفك تشفير النصوص باستخدام Stringable ديركت في chain strings.
  • خيار --batched في php artisan make:job علشان Job يبقي batchable بسهولة.
  • Attribute UsePolicy ممكن تحدد Policy واضحة على موديل معين.
  • CTRL لاختصار استجابة HTTP Client لكل request.

🔐 1. تشفير وفك تشفير النصوص

بدل ما تستخدم:

// قبل
$encryptedToken = str('secret-api-token')
  ->pipe(fn(Stringable $str) => encrypt($str->value()))
  ->prepend('encrypted:')
  ->append(':end');

// بعد
$encryptedToken = str('secret-api-token')
  ->encrypt()
  ->prepend('encrypted:')
  ->append(':end');

بقى أسهل وأوضح بكتير باستخدام Stringable 😎

⚙️ 2. وظيفة batchable job

لو عايز تعمل job تشتغل Batchable، تبص كدا:

php artisan make:job ProcessPodcast --batched

الـ Class الجديد هيبقي:

namespace App\Jobs;

use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;

class ProcessPodcast implements ShouldQueue
{
    use Batchable, Queueable;

    public function handle(): void
    {
        if ($this->batch()->cancelled()) {
            return;
        }
        // شغلك هنا...
    }
}

🏷️ 3. Attribute UsePolicy

دلوقتي تقدر تحدد باسمه:

#[UsePolicy(PostPolicy::class)]
class Post extends Model {}

وده بدل الاعتماد كله على convention.

🌐 4. تحكم في الـ HTTP Client

تقدر تتحكم في طول الخطأ للـ truncate Exceptions بكل request:

Http::truncateExceptionsAt(240)->post(/* ... */)

دي كانت أبرز الميزات اللي اتقدمت في Laravel 12.18.0، ممكن تزور changelog لو حابب تعرف أكتر. 👌

المدونة

إتقان التكرار غير المتزامن في JavaScript باستخدام Array.fromAsync()

يوليو 27, 2025

🔍 ما هي Array.fromAsync() بالضبط؟ Array.fromAsync() هي دالة static من كائن Array، شبيهة بالدالة Array.from()، لكن الفرق الجوهري هو أن Array.fromAs...

إتقان CSS الحديثة: قوة if()، Popover Hints، والتنسيقات الذكية

يوليو 16, 2025

🌐 إتقان CSS الحديثة: قوة if()، Popover Hints، والتنسيقات الذكية CSS دلوقتي بقت أذكى بكتير. دالة if()، وميزة popover="hint"، وازاي نكتب تنسيقات متج...

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

يوليو 01, 2025

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

هل لارافيل بطيء؟ تحسين أداء الاستعلامات والفهارس بأمثلة

يوليو 20, 2025

دليل عملي ومفصل مع أمثلة واقعية وعينات كود تسهّل عليك تفادي بطء Laravel وتحافظ على سرعة التطبيق. 1. 🧠 استدعي اللي محتاجه بس لو بتعمل DB::tabl...

تعزيز PHP Enums باستخدام archtechx/enums

يوليو 01, 2025

تعزيز PHP enums باستخدام حزمة archtechx/enums من PHP 8.1، ظهر نوع جديد اسمه “enums” بيخليك تعرف قيم ثابتة بأسماء مرمّزة زي statuses...

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

يوليو 07, 2025

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