## مقدمة
مع توسّع تطبيقات Laravel، التعامل مع arrays وبيانات غير منظمة بيبقى صعب في الصيانة والتطوير.
هنا بيظهر دور **DTO – Data Transfer Objects**.
DTO بيوفر طريقة واضحة ومنظمة لنقل البيانات بين طبقات التطبيق.
---
## يعني إيه DTO؟
الـ DTO هو كلاس بسيط:
- بيحتوي على بيانات فقط
- بدون أي business logic
- مسؤوليته الوحيدة نقل البيانات بشكل منظم
---
## مشكلة استخدام Arrays
الاعتماد على:
- `$request->all()`
- `$data['email']`
بيسبب:
- أخطاء وقت التعديل
- كود صعب القراءة
- مشاكل في الاختبار والصيانة
---
## ليه DTO أفضل؟
استخدام DTO بيقدم:
- ✔️ Type safety
- ✔️ تنظيم واضح للبيانات
- ✔️ دعم قوي من الـ IDE
- ✔️ Refactoring أسهل
- ✔️ Controllers أنضف
---
## مثال DTO في Laravel
```php
final class CreateUserDTO
{
public function __construct(
public string $name,
public string $email,
public string $password,
) {}
}
الاستخدام:
$dto = new CreateUserDTO(
name: $request->name,
email: $request->email,
password: $request->password,
);
أفضل أماكن لاستخدام DTO
Service classes
Actions
API handling
Jobs
DDD architecture
----------------
الفرق بين DTO و Form Request
| المقارنة | DTO | Form Request |
| ---------------------- | --- | ------------ |
| Validation | ❌ | ✔️ |
| تنظيم البيانات | ✔️ | ❌ |
| قابلية إعادة الاستخدام | ✔️ | ⚠️ |
--------------------
الخلاصة
DTO مش تعقيد…
DTO هو تنظيم، أمان، واستثمار طويل المدى في جودة الكود.
لو مهتم بـ Clean Code في Laravel، لازم تبدأ تستخدم DTO.
فهم ميزات الأعلام (Feature Flags) في Laravel
ميزات الأعلام، والمعروفة أيضًا بـ "feature toggles"، هي تقنيات قوية في تطوير البرمجيات الحديثة تسمح لك بتشغيل أو إي...
تُعد أعلام الميزات (Feature Flags)، المعروفة أيضًا باسم مفاتيح الميزات (Feature Toggles)، تقنية قوية في تطوير البرمجيات الحديث. تتيح لك تشغيل أو إيقاف تشغيل ميز...
تُعد أساليب التعامل مع المصفوفات والسلاسل النصية بمرونة في لارافيل متعة حقيقية، حيث توفر طرقًا موجزة ومقروءة لتحويل البيانات. ماذا لو كان بإمكانك جلب نفس هذه ال...
مقدمة إلى البحث النصي الكامل وMongoDB Atlas Search
في تطبيقات اليوم الغنية بالبيانات، تعد ميزة البحث القوية والدقيقة أمرًا بالغ الأهمية. يتوقع المستخدمون نتائج...