## مقدمة
مع توسّع تطبيقات 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.
يُعرف إطار عمل Laravel ببنيته الأنيقة وميزاته القوية، ويزدهر بفضل مجتمعه النشط والمفتوح المصدر. مؤخرًا، أعلن تايلور أوتويل، مؤسس Laravel، عن تحول كبير في كيفية...
مقدمة: إطلاق العنان للأداء مع Laravel Octane
مع استمرار تطور نظام Laravel البيئي، يبحث المطورون باستمرار عن طرق لبناء تطبيقات أسرع وأكثر كفاءة. تذكرنا أحداث مثل...
# بناء أنظمة سير عمل الموافقة القوية في Laravel
تعتبر سير عمل الموافقة (Approval Workflows) ميزة حاسمة في العديد من تطبيقات الويب، حيث تتيح الإشراف على المحتوى...
# إطلاق العنان للوقت الحقيقي: دليل شامل لـ Laravel Reverb
Laravel Reverb هو خادم WebSocket قوي ومباشر لتطبيقات Laravel، مصمم لجعل ميزات الوقت الحقيقي مثل الدرد...