es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

Code With Somar

Code With Somar

Ir al canal en Telegram

🚀 ريادي أعمال ومطوّر ويب بخبرة واسعة 💻 متخصص بتطوير حلول ويب متكاملة باستخدام Laravel، Django، React، Vue، و Node.js. 🏆 ضمن أفضل 4 صناع محتوى في سوريا وأفضل 3 في المحتوى التقني. 🌟 ناشط في مجتمع برمجة الأطفال، ومساهم في تطوير المحتوى التقني عربياً.

Mostrar más
2 733
Suscriptores
Sin datos24 horas
+67 días
-130 días
Atraer Suscriptores
oct '26
octubre '26
+28
en 0 canales
septiembre '26
+42
en 0 canales
Get PRO
agosto '26
+75
en 1 canales
Get PRO
julio '26
+62
en 2 canales
Get PRO
junio '26
+34
en 1 canales
Get PRO
mayo '26
+28
en 1 canales
Get PRO
abril '26
+28
en 1 canales
Get PRO
marzo '26
+27
en 1 canales
Get PRO
febrero '26
+37
en 0 canales
Get PRO
enero '26
+32
en 0 canales
Get PRO
diciembre '25
+38
en 0 canales
Get PRO
noviembre '25
+76
en 3 canales
Get PRO
octubre '25
+61
en 1 canales
Get PRO
septiembre '25
+91
en 2 canales
Get PRO
agosto '25
+67
en 0 canales
Get PRO
julio '25
+75
en 1 canales
Get PRO
junio '25
+45
en 1 canales
Get PRO
mayo '25
+91
en 1 canales
Get PRO
abril '25
+108
en 3 canales
Get PRO
marzo '25
+89
en 3 canales
Get PRO
febrero '25
+172
en 5 canales
Get PRO
enero '25
+110
en 2 canales
Get PRO
diciembre '24
+45
en 1 canales
Get PRO
noviembre '24
+141
en 1 canales
Get PRO
octubre '24
+339
en 3 canales
Get PRO
septiembre '24
+183
en 0 canales
Get PRO
agosto '24
+205
en 0 canales
Get PRO
julio '24
+135
en 1 canales
Get PRO
junio '24
+173
en 2 canales
Get PRO
mayo '24
+58
en 0 canales
Get PRO
abril '24
+62
en 0 canales
Get PRO
marzo '24
+115
en 0 canales
Get PRO
febrero '24
+322
en 1 canales
Get PRO
enero '24
+128
en 4 canales
Get PRO
diciembre '23
+90
en 0 canales
Get PRO
noviembre '23
+134
en 3 canales
Get PRO
octubre '23
+11
en 0 canales
Get PRO
septiembre '23
+8
en 0 canales
Get PRO
agosto '23
+11
en 0 canales
Get PRO
julio '23
+9
en 0 canales
Get PRO
junio '23
+7
en 0 canales
Get PRO
mayo '23
+21
en 0 canales
Get PRO
abril '23
+6
en 0 canales
Get PRO
marzo '23
+4
en 0 canales
Get PRO
febrero '23
+24
en 0 canales
Get PRO
enero '23
+258
en 0 canales
Fecha
Crecimiento de Suscriptores
Menciones
Canales
25 octubre0
24 octubre+1
23 octubre+1
22 octubre+2
21 octubre+4
20 octubre+2
19 octubre+1
18 octubre+1
17 octubre+1
16 octubre+1
15 octubre+2
14 octubre+2
13 octubre0
12 octubre+2
11 octubre+1
10 octubre0
09 octubre0
08 octubre+1
07 octubre+1
06 octubre+1
05 octubre0
04 octubre+2
03 octubre+1
02 octubre0
01 octubre+1
Publicaciones del Canal
اللي عنده موقع أو سيرفر شغّال على PHP ينتبه! في ثغرتين خطيرات بتقييم 9.2/10، وبحسب الباحثين ممكن يسمحوا للمهاجم يشغّل أوامر ع
اللي عنده موقع أو سيرفر شغّال على PHP ينتبه! في ثغرتين خطيرات بتقييم 9.2/10، وبحسب الباحثين ممكن يسمحوا للمهاجم يشغّل أوامر عن بُعد على السيرفر. 📌 بحسب الإعلان، التحديث الأمني موعده اليوم 21 أكتوبر الساعة 5 المسا بتوقيت سوريا. وقت نشر الخبر، لسا ما كانت تفاصيل النسخ المتأثرة مؤكّدة. ✅ شيّكوا على إعلان PHP الرسمي، وحدّثوا للنسخة المصحّحة أول ما تتوفر، خصوصي السيرفرات المكشوفة عالإنترنت. ⚠️ واللي لسا شغّال على PHP 8.1 أو أقدم، هالنسخ انتهى دعمها من مشروع PHP ولازم يخطّط لترقيتها. لوقت نشر الخبر ما كان في استغلال مُبلّغ عنه، بس هالشي مو ضمان إنو الوضع آمن.

2
Apple حدّثت الـ App Review Guidelines ⚠️ إذا عندك Feature مخفيها أثناء الـ App Review وبتفعّلها لاحقاً عبر Remote Config أو Feature Flags، ممكن تواجه مشكلة. استخدام هالأدوات مو ممنوع، بس إخفاء الميزات عن Apple ممكن يسبب رفض تطبيقك.
595
3
يا صباح الـ internal server error
يا صباح الـ internal server error
873
4
فيديو ممتع و قادر يسلط الضوء على تفتاصيل حلوة و بيعطيك لمحة عامل عن الـ Backend Ecosystem https://youtu.be/mZ27vUoOEB0?si=McXXFmTfdkteDkTZ
959
5
مطلوب Senior Flutter Developer نوع الدوام: Full-Time نمط العمل: In-Office الموقع: Iraq - Erbil نبحث عن Senior Flutter Developer للانضمام إلى فريقنا المهارات المطلوبة خبرة قوية وعملية في Flutter وDart ضمن تطبيقات Production حقيقية. فهم عميق لـ Flutter Architecture وWidget Lifecycle وRendering وAsynchronous Programming وState Management. خبرة قوية في BLoC / flutter_bloc. خبرة في التكامل مع REST APIs باستخدام Dio أو حلول Networking مشابهة. خبرة عملية مباشرة في نشر وصيانة التطبيقات على Google Play وApple App Store. القدرة على تشخيص وحل مشاكل Native الخاصة بـ Android وiOS. خبرة عملية في Gradle وCocoaPods وXcode وSigning وMobile Build Configuration. خبرة في Firebase، وخصوصًا FCM وCrashlytics وRemote Config. خبرة في تطبيق Deep Links وApp Links وUniversal Links. مهارات قوية في Debugging وProfiling وPerformance Optimization. القدرة على العمل بأمان ضمن Production Codebase كبير وإجراء Refactoring تدريجي دون التأثير على استقرار التطبيق. خبرة جيدة في Git وCode Review Workflows. يفضل وجود خبرة في: خبرة في Mobile Payment Gateway Integrations. خبرة في WebView-based وApp-to-App Payment Flows. خبرة في Flutter Performance Profiling باستخدام DevTools. معرفة جيدة بـ Mobile Application Security Best Practices. خبرة في Mobile CI/CD Pipelines. معرفة عملية بـ Kotlin و/أو Swift. خبرة في Mixpanel أو منصات Product Analytics مشابهة. خبرة في Google Maps وLocation-based Features. معرفة بـ Fragment Shaders أو Custom Rendering في Flutter. نبحث عن شخص سبق له أن تحمّل مسؤولية Production Flutter Application حقيقي، وليس فقط تطوير Screens أو Features منفصلة. يجب أن يكون قادراً على تحمل مسؤولية الـ Feature من Architecture وImplementation، مروراً بـ Testing وNative Configuration، وحتى Release وMonitoring ومعالجة المشاكل التي تظهر في Production. سيتم تقييم مستوى الخبرة بشكل أساسي بناءً على Technical Depth وProduction Ownership والقدرة العملية المثبتة، وليس فقط على عدد سنوات الخبرة. للمهتمين بإمكانكم إرسال ال CV مع روابط التطبيقات التي عملتم عليها إلى البريد التالي: kesen.somar.99@gmail.com مع تحديد الموضوع بـ FL-PRO سوف يتم تجاهل اي بريد لا يحتوي على الموضوع المحدد سابقاً
1 282
6
باقي يومين فقط لانتهاء التسجيل
1 027
7
من الميزات الجديدة بـ PHP 8.6 هي Partial Function Application. الفكرة ببساطة: فيك تاخد function وتحدد جزء من الـ parameters مسبقاً، وتترك الباقي لوقت الاستخدام. مثلاً: $makeSlug = str_replace(' ', '-', ?); $makeSlug('Hello World'); // Hello-World هون حددنا مسبقاً إنو أي space تتحول لـ -، وتركنا النص نفسه كـ parameter لوقت التنفيذ. الميزة بتبين قوتها أكتر مع Pipe Operator: $output = 'Hello World' |> str_replace(' ', '-', ?) |> strtolower(...); // hello-world بدل ما نكتب functions متداخلة ببعض، صار فينا نبني transformation pipeline أوضح وأسهل بالقراءة. ميزة صغيرة، بس ممكن نشوف استخدامها كتير بالـ modern PHP code. 🔥
1 081
8
بتعرف انه قبل PHP 8.6 ما كان مسموح تعمل هيك: public readonly string $name = 'create_books_table'; السبب إنو readonly property بقيمة ثابتة كان قريب جداً من فكرة الـ constant. بس بعد إضافة Property Hooks وإمكانية تعريفها ضمن interfaces، صار وجود immutable default value مفيد ببعض الـ contracts. مثلاً: interface MigratesUp { public string $name { get; } public function up(): QueryStatement; } ومع PHP 8.6 صار implementation مثل هاد مسموح: final class CreateBooksTable implements MigratesUp { public readonly string $name = '2026-01-01_create_books_table'; public function up(): QueryStatement { // ... } } يعني الـ property إلها قيمة جاهزة، وبتضل readonly وما بتتحول لشي قابل للتعديل. تغيير بسيط، بس بيخلي بعض الـ immutable objects والـ contracts أنظف بكتير.
637
9
اسمع مني و انتبه على هي النقاط لما بتشتغل بـ Laravel: ✅ استخدم $fillable كـ allowlist ✅ استخدم $request->validated() أو $request->only() ❌ تجنّب $request->all() مع create() و update() ❌ انتبه من $guarded = [] ❌ لا تستخدم forceFill() مع User Input
521
10
🚨 Google أطلقت تحديث Spam جديد… وإذا عندك موقع، راقب الـ SEO هالأيام Google أعلنت رسمياً عن إطلاق August 2026 Spam Update بت
🚨 Google أطلقت تحديث Spam جديد… وإذا عندك موقع، راقب الـ SEO هالأيام Google أعلنت رسمياً عن إطلاق August 2026 Spam Update بتاريخ 18 أغسطس. التحديث: • 🌍 عالمي ويشمل كل الدول • 🌐 يشمل جميع اللغات • 📊 ممكن يأثر بشكل مباشر على ترتيب المواقع في نتائج البحث • ⏳ طرحه رح يستغرق عدة أيام حتى يكتمل شو يعني هالشي لأصحاب المواقع؟ خلال الأيام الجاية ممكن تلاحظ تغييرات واضحة بالـ Rankings والـ Organic Traffic، سواء صعود أو نزول، بينما Google عم تعيد تقييم المواقع وفق أنظمة مكافحة الـ Spam. والـ Spam بالنسبة لـ Google مو شرط يكون موقع مليان إعلانات وروابط مزعجة فقط، وإنما ممكن يشمل أساليب هدفها التلاعب بنتائج البحث وتحسين الترتيب بشكل غير طبيعي. ⚠️ لذلك إذا لاحظت هبوط مفاجئ بالـ Traffic هالفترة، لا تبدأ مباشرة بتغييرات عشوائية على الموقع. الأفضل تراقب: Google Search Console → Performance → Search results وقارن الـ Impressions والـ Clicks والـ Average Position قبل وبعد 18 أغسطس. وبعد ما يكتمل الـ Rollout وتستقر النتائج، وقتها بيكون تقييم تأثير التحديث على موقعك أدق.
784
11
🔐 إذا عم تستخدم Cloudflare، لا تترك الـ VPS مكشوف مباشرة للإنترنت خطوة بسيطة ومفيدة بالحماية هي إنك تمنع الوصول المباشر للـ HTTP/HTTPS على السيرفر، وتسمح به فقط من IP Ranges الخاصة بـ Cloudflare. بهالطريقة أي طلب مباشر على الـ Origin IP بينرفض، والترافيك لازم يمر أولاً عبر Cloudflare. الفائدة؟ تقليل الـ direct traffic على السيرفر توفير bandwidth غير ضروري منع تجاوز Cloudflare والوصول المباشر للـ Origin الاستفادة بشكل أفضل من WAF وRate Limiting والحماية الموجودة على Cloudflare لكن في نقطة مهمة 👇 السماح لـ Cloudflare IPs فقط مو Authentication حقيقي للطلبات، لذلك للحماية الأقوى فينا نستخدم Authenticated Origin Pulls (AOP). مع AOP السيرفر ما بيكتفي بأن الاتصال جاي من شبكة Cloudflare، وإنما بيتحقق كمان من شهادة TLS مقدمة من Cloudflare قبل ما يقبل الاتصال. الأفضل عملياً: Firewall → اسمح فقط لـ Cloudflare IPs على 80/443 + Authenticated Origin Pulls → تأكد أن الطلب فعلاً جاي عبر Cloudflare هيك الـ Origin Server بيصير أصعب بكثير للوصول إله مباشرة، وCloudflare بيكون فعلياً البوابة بين الإنترنت والسيرفر. 🔒
661
12
📢 Anthropic تمدّد زيادة حدود استخدام Claude Code بنسبة 50% أعلنت Anthropic عن تمديد الزيادة المؤقتة على حدود الاستخدام الأسبوعية لـ Claude Code بنسبة 50% لغاية 31 آب. الشركة قالت إنها بتأمل تخلي هالزيادة دائمة ضمن الخطط، لكن بسبب الطلب الكبير على نماذج Claude، ممكن نشوف بعض القيود على السعة خلال الأسابيع الجاية. يعني باختصار: مستخدمي Claude Code رح يضل عندهم 50% استخدام أسبوعي إضافي لنهاية الشهر. 🚀
685
13
أصدقائي المهتمين بتدريب لارافيل المتقدم في اكاديمية focal x و اللي لربما الموضوع المادي او تكاليف التدريب هيي عائق بالنسبة ال
أصدقائي المهتمين بتدريب لارافيل المتقدم في اكاديمية focal x و اللي لربما الموضوع المادي او تكاليف التدريب هيي عائق بالنسبة الكم لا تترددوا بالتواصل مع الشركة من خلال الواتس اب عالرقم التالي: 00963953666052 عند تواصلكم مع الشركة سيتم تزويدكم بملف يحتوي على كافة التفاصيل.
722
14
Sin texto...
690
15
خلف كل تطبيق يوجد عالم سري من الأكواد. هذا هو عالم الـ Back-end! لتتعلم كيف تبنيه بنفسك وتتحكم بالبيانات، وتضمن السرعة والأمان.🧡💪 انضم الآن لتدريب دفعة V.11 في اختصاص: تطوير المواقع Back-end | مبتدئ + متقدم🧡 التدريب أونلاين ومُتاح لكل الدول، مع توافر ميزة التقسيط. 🔸 محاور التدريب | مستوى مبتدئ: 1. فهم آلية عمل الويب والمصطلحات في المجال: - التعرف على كيفية تفاعل المستخدم مع التطبيقات من خلال الخوادم والمتصفحات. 2. لغة PHP: - لغة برمجة نصية تُستخدم لبناء مواقع تفاعلية وديناميكية (قوية الأداء، متكاملة مع قواعد البيانات). 3. مفاهيم البرمجة الكائنية (OOP): - أسلوب برمجي يعتمد على الكائنات (Objects) لتنظيم الأكواد وزيادة قابليتها لإعادة الاستخدام وتحسين هيكلية المشروع وتقليل التكرار. 4. قاعدة بيانات MySQL: - نظام إدارة قواعد بيانات علائقية شائع الاستخدام. 5. نظام التحكم بالإصدارات Git: - أداة لإدارة أكواد المصدر وتتبع التعديلات عليها لتسهيل التعاون بين الفرق وحفظ تاريخ التعديلات. 6. إطار العمل Laravel: - إطار عمل PHP متكامل ومفتوح المصدر لتطوير تطبيقات ويب ديناميكية. - أدوات مدمجة مثل التحقق من البيانات، التوجيه (Routing)، والترحيلات (Migrations). 7. نمط MVC: - نموذج تصميم لتحسين تنظيم الأكواد وسهولة الصيانة، يقسّم التطبيق إلى ثلاثة أقسام: - ا Model للتعامل مع البيانات. - ا View لعرض واجهة المستخدم. -ا Controller: لتنظيم التفاعل بين البيانات والواجهة. 8. أدوات إدارة قواعد البيانات والتحقق من صحة البيانات: -ا Migration: إنشاء الجداول وتعديلها بمرونة. -ا Validation: التحقق من صحة المدخلات والتأكد من مطابقتها للقواعد. -ا Request: التعامل مع البيانات الواردة من المستخدم بطرق منظمة. 9. التحكم في الوصول والصلاحيات: -ا Authentication: بناء نظام لتسجيل الدخول والخروج. -ا Middleware: تنفيذ مهام إضافية مثل حماية الصفحات بناءً على الصلاحيات. 10. واجهة برمجة التطبيقات (API): - وسيلة لتمكين التطبيقات من التواصل مع بعضها عبر إرسال واستقبال البيانات، تكمن أهميها في: - التكامل: ربط الأنظمة المختلفة مثل بوابات الدفع. - إعادة الاستخدام: بناء خدمات مشتركة للتطبيقات المختلفة. - المرونة: سهولة توسيع التطبيقات دون تعديل كبير. 11. مقدمة حول أساسيات Front-End: - فهم العناصر الأساسية لدمج الواجهة الأمامية مع الخلفية (HTML، CSS، JavaScript). 🔸 شهادات التدريب: مناهجنا الأكاديمية تحت إشراف المنظمة الأوربية لإدارة الجودة بالإضافة لشهادات مهنية من المعهد الامريكي المهني. وشهادات خبرة من شركة فوكال اكس. 🔸 للتسجيل ومعرفة المزيد من التفاصيل: - التواصل حصراً عبر تطبيق واتس آب على الرقم: 00963953666052 وسيرسل لك فريق التدريب ملفاً يحتوي على كل التفاصيل، الدفعات، المحاور، الأوقات، المدربين، وأعمال المتدربين. بالإضافة لمحاور التدريب المتقدم في الـ Back-end 🔸 التدريب أونلاين ومُتاح لكل الدول، يتم تسجيل جميع الجلسات للمراجعة. 🔸أوقات مسائية مناسبة للأفراد (طلاب وموظفين) والشركات. 🔸 أوقات الدوام الرسمية للاستفسار: من السبت حتى الخميس 🔸 يغلق باب التسجيل في نهاية الشهر الثامن لا تتردد، احجز الآن، المقاعد محدودة 🧡
733
16
لما Request بتصير أبطأ من الطبيعي، أول شي ممكن يخطر ببالك هو الـ code. بس بكتير حالات المشكلة بتكون أبسط وأوضح: Queries عم تتكرر بدون داعي N+1 Queries عم تجيب columns أو records أكتر من المطلوب Dataset كبيرة عم تتحمل دفعة وحدة لهيك أول خطوة لازم تكون Measurement مو التخمين. مثلاً في Laravel فيك تراقب الـ Queries: DB::enableQueryLog(); $queries = DB::getQueryLog(); وكمان Laravel Debugbar مفيد جداً بالـ development حتى تشوف عدد الـ Queries ووقت تنفيذها. من أشهر المشاكل هي N+1 Query Problem. بدل ما تجيب Users وبعدين تعمل Query لكل User حتى تجيب Orders: $users = User::with('orders')->get(); استخدم Eager Loading وخفف عدد الـ Queries. نفس الشي بالنسبة للداتا نفسها. إذا محتاج id و name فقط: $users = User::select('id', 'name')->get(); وإذا عندك آلاف records، لا تحملهم كلهم: ``` $users = User::paginate(25); ``` بالجزء الجاي: رح احكيلكم كيف منعرف إذا الـ Query نفسها بطيئة، وشو دور Indexes و EXPLAIN بالموضوع.
678
17
يمكن تكون عم تستخدم SOLID بـ Laravel بدون ما تنتبه. 👀 Laravel نفسه بيعطيك Tools بتساعدك تبني Architecture أنظف. مثلاً: Dependency Injection بدل ما تعمل new لكل Dependency، Laravel بيقدر Inject dependencies إلك. Service Container بتقدر تربط Interface مع Implementation. Form Requests بتطلع Validation من الـ Controller. Policies بتفصل Authorization logic. Events & Listeners بتضيف Reactions جديدة على Event بدون ما تحشر كل شي بمكان واحد. Jobs & Queues بتفصل الـ background work عن الـ request lifecycle. بس انتبه: استخدام Laravel ما بيعني تلقائياً إن مشروعك SOLID. 😅 ممكن تستخدم Service Container ويضل عندك OrderService فيه 3000 سطر. وممكن تعمل 40 Interface بدون أي داعي ويصير المشروع أعقد. Framework بيعطيك الأدوات، بس الـ Architecture بالنهاية مسؤوليتك. ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
723
18
هاد المبدأ رح تشوفه كتير بـ Laravel: D — Dependency Inversion Principle (DIP) تخيل: OrderService جواته: new StripePayment() هيك OrderService صار مربوط مباشرة بـ Stripe. إذا بكرا بدك PayPal، أو بدك تعمل Fake Payment Gateway بالـ Tests، رح تبلش المشاكل. الأفضل يكون: OrderService يعتمد على: PaymentGateway مو على: StripePayment وبعدين Laravel Service Container بيحدد مين الـ implementation: PaymentGateway → StripePayment وببيئة أو حالة تانية ممكن يصير: PaymentGateway → PaypalPayment والـ OrderService نفسه ما تغير عليه شي. هون الفرق المهم: ❌ Depend on concrete implementation ✅ Depend on abstraction وهاد واحد من الأسباب يلي بيخلي Dependency Injection + Service Container مهمين جداً بـ Laravel. مو بس لأن شكل الـ code أحلى. لأنهم بيساعدوك تفصل الـ Business Logic عن تفاصيل الـ implementation. ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
745
19
مو كل Interface كبير هو Interface منيح. هون بيجي المبدأ الرابع: I — Interface Segregation Principle (ISP) تخيل عندك: WorkerInterface وفيه: work() eat() sleep() بالنسبة لـ Human Worker ممكن تمشي. بس بعدين بدك تعمل: Robot implements WorkerInterface صار لازم الـ Robot يعمل implementation لـ: eat() 🤨 sleep() 🤨 مع إنه ما بيحتاجهم أصلاً. المشكلة إن الـ Interface عم يجبر الـ Class يعتمد على Methods ما إله علاقة فيها. الأفضل نقسمه: Workable Eatable Sleepable فالـ Human ممكن يطبق التلاتة. والـ Robot يطبق: Workable وبس. ISP باختصار: بدل Interface ضخم بيحاول يخدم الجميع، اعمل Interfaces صغيرة ومركزة. الـ Class لازم يعتمد فقط على الـ Contract يلي فعلاً محتاجه. ———————————- Linkedin |Instgram | YouTube أنا Somar Kesen أعمل كـ Full Stack Developer أنشر بشكل شبه يومي منشورات تحتوي على العديد من المعلومات عن تطوير البرمجيات و سوق العمل مستخلصة من خبرة سنين في العمل مع العديد من الشركات في الشرق الأوسط و أوروبا ضمن هذا المجال
605
20
نزل Laravel 13.25 — تحديث صغير بالرقم، بس فيه شغلات مهمة للـ Production نزل Laravel 13.25 بتاريخ 11 آب، وفيه مجموعة Updates حلوة، أكتر شي لفتني منها متعلق بالـ Queues أول وأهم إضافة: صار فينا نوقف كل الـ Queues دفعة وحدة: php artisan queue:pause --all ونرجع نشغلهم: php artisan queue:resume --all قبل هالتحديث، إذا عندك أكتر من Queue موزعة على Workers مختلفة، كنت بحاجة تتعامل معها بشكل منفصل. هلق صار في Global Pause بيوقف الـ Workers عن حجز Jobs جديدة بدون ما تضطر توقف التطبيق كله. والموضوع مو مجرد Artisan Commands، صار متوفر برمجياً كمان: Queue::pauseAll(); Queue::resumeAll(); والأحلى إن الـ Global Pause مستقل عن الـ Queues اللي موقفها يدوياً. يعني resumeAll() ما رح يشغّل Queue كنت موقفها بشكل منفصل قبل الـ Deployment. ⸻ artisan dev كمان تغير بشكل كبير الـ Laravel كان يستخدم concurrently لتشغيل عدة Processes بنفس الوقت. المشكلة؟ الـ Vite عم يكتب Logs، والـ Queue Worker عم يكتب Logs، وPail عم يكتب Logs… وكلهم بنفس الـ Terminal 😅 من Laravel 13.25 صار artisan dev يستخدم @laravel/multiplex. صار عندك Terminal UI فيها: • Tabs لكل Process • Search بالـ Logs • Restart لكل Process بشكل منفصل • Clear Logs • Auto Restart إذا Process وقعت وفي 3 Modes: tabs stream inline ⸻ كمان صار التعامل مع Images أبسط. Image صار implements Responsable، يعني صار فيك ترجع الصورة مباشرة من الـ Route: return Image::fromStorage(...)->cover(200, 200)->toWebp()->quality(80); وانضاف: Image::fromStream() وصارت: toFormat() Public. ⸻ وفي Updates أصغر بس مهمة: 🔹 UniqueJobSkipped event للـ ShouldBeUnique Jobs. 🔹 JobTimedOut صار يحتوي قيمة الـ timeout اللي تم تجاوزها. 🔹 دعم #[FailOnTimeout] للـ queued Notifications. 🔹 withoutCookies() لحذف أكتر من Cookie. 🔹 foreignUlidFor() للـ Migrations. 🔹 تعديل Request::all() بحيث الـ Input ياخد الأولوية على File إذا كان عندهم نفس الـ Key. ⸻ بس بالنسبة إلي، أكتر Update مثير للاهتمام هو Global Queue Pause. لأنه بيحل مشكلة ما بتحس فيها أصلاً وأنت عم تطور التطبيق Local. بتبلش أهميته لما يصير عندك: Production Server + Redis + Multiple Queues + Workers + Deployments وساعتها بتكتشف إن معرفة Laravel لحالها جزء من الصورة فقط. كيف الـ Worker شغال؟ مين عم يديره؟ شو بصير فيه أثناء الـ Deployment؟ كيف منعمل Restart بدون ما نخسر Jobs؟ وين Redis داخل بالقصة؟ وكيف كل هالـ Processes عايشة أصلاً على الـ Server؟ هاي تحديداً نوعية التفاصيل اللي بحب ركز عليها لما نحكي عن DevOps للمطورين، وهي من المواضيع اللي رح نشوفها عملياً ضمن DevOps Fundamentals Bootcamp لما نبني ونشغّل Laravel Production Environment حقيقية. لأن أسهل شي نكتب: php artisan queue:work بس السؤال الأهم: مين رح يضل مشغّله بالـ Production؟
553