Arborescence یک پروژه PHP Symfony

پرونده src
یک پروژه Symfony شامل کلاس های تجاری شما است و قلب برنامه شما را تشکیل می دهد.
بهترین شیوه های Symfony یک ساختار اساسی را با این پرونده توصیه می کند src/
و برخی از زیرمجموعه ها.
من در اینجا میوه سالهای اخیر و پروژه های PHP را با چارچوب Symfony انجام می دهم: این یک ساختار درختی است که من در پرونده ها پیدا کردم src
بشر
این لیست برای یخ زدن چیزها وجود ندارد و رسمی نیست.
هدف از این لیست ساخت مخزن برای:
- تعریف کنید که چه نوع کلاس و خدماتی را باید در هر نام Namepace مربوط به یک زیر مجموعه فایل پیدا کنیم
src
- “پیدا کردن الهام” هنگامی که شما یک مدل طراحی ندارید که به طور خودجوش به ذهن خطور می کند.
برخی از مستندات Symfony یا بهترین عملکرد آن ، برخی دیگر از عادت های کاملاً شخصی هستند.
بوها
- Adapt: خدماتی که یک شیء را به دیگری تبدیل می کند (اگر داده است و نه شیء را ببینید)
- جمع کننده: خدماتی که داده ها را از منابع مختلف جمع می کند
- apiresource: پرونده ایجاد شده توسط پلت فرم API که هدف آن شامل مدل های مورد استفاده برای ساخت API های “به طور خودکار” با پلت فرم API است و موجودات آموزشی نیستند
شرح
- سازنده: خدماتی که با عناصر مورد نیاز خود یا مقادیر پیش فرض سرویس ایجاد می کند (برای ساخت اشیاء به کارخانه مراجعه کنید)
جف
- مشتری: خدماتی که به شما امکان می دهد به یک سرویس شخص ثالث (API ، یک سرویس وب و غیره) وصل شوید.
- فرمان: خدماتی که اسکریپت ها / فرآیندهای فرمان آنلاین را انجام می دهد
- کنترل کننده: خدماتی که از درخواست HTTP پشتیبانی می کند و پاسخ HTTP را ارائه می دهد
د
- DataFixtures: پرونده ایجاد شده توسط وسایل دکترین بسته نرم افزاری که در آن ما برای ایجاد کلاس های آن “Entity1fixture” ، “Entity2fixture” و غیره …
- Datamanager: خدماتی که با داده های منبع سوم سازماندهی ، مرتب سازی ، فیلتر و/یا غنی شده است (مشابه مفهوم DAO)
اشمیه
- غنی سازی: خدماتی که داده یا یک شی را با داده های منبع دیگری غنی می کند
- نهاد: شیء آموزه ای که مدل داده را تشکیل می دهد
- Encprocessor: شامل کلاس هایی است که فرآیندهای متغیر را تعریف می کنند
- EventListner: خدماتی که هنگام گوش دادن به یک رویداد که به آن گوش می شود ، مراحل اجرا را تنظیم می کند
- EventUbescript: خدماتی که هنگام ایجاد رویدادی که در آن مشترک است ، فرآیندهای لازم را تنظیم می کند
- استثناء
ج
- کارخانه: خدماتی که با مقادیر مورد نیاز و/یا پیش فرض اشیاء را ایجاد می کند (کاملاً شبیه به سازنده برای خدمات)
جف
سخنرانی
- Handler: خدماتی که منطق کسب و کار را تنظیم می کند ، سازماندهی ، مرتب سازی ، فیلتر اشیاء/اشخاص (به زبان فرانسوی: “مدیر”)
- یاور: خدماتی که عملکردهای مفیدی را “در همه جا” و ساده (اغلب استاتیک) ارائه می دهد
من
- IndexManager: خدماتی که اسناد را از یک فهرست Elasticsearch سازماندهی ، مرتب سازی ، فیلتر و غنی سازی می کند
j
k
سعادت
مگس
- پیام: ساختار داده ای که به شما امکان می دهد پاکت نامه ای را برای انتقال اطلاعات در خطوط پیام تشکیل دهید
- MessageHandler: خدماتی که منطق تجارت مرتبط با دریافت پیام را سازماندهی می کند
- مدل: اشیاء تجاری (DAO)
حرف
ای
پ
- PAGINATOR: خدماتی که به شما امکان می دهد یک صفحه بندی تنظیم کنید
سعدی
حرف
- RESTORY: خدمات مرتبط با اشخاص دکترین و شامل نمایش داده شدگان DQL یا SQL یا درخواست های پویا برای نمایش داده ها (به عنوان مثال “سازنده پرس و جو”) و این باعث می شود اشیاء یا جداول اشیاء پاسخ به این درخواست ها بازیابی شود (این سرویس ها شامل یک منطق تجاری نیستند ، که باید در “دستگیرندگان” یافت شود))
حرف
- امنیت: این پرونده شامل خدمات خاص مربوط به مؤلفه امنیتی Symfony (به عنوان مثال تأیید کننده ، ارائه دهنده و غیره) است
- Serializer: خدماتی که به سریال سازی یا Dearialization اشیاء داده شده ادامه می یابد
- سرویس: از این پوشه از زمان ظاهر Symfony 2 برای قرار دادن همه چیزهایی که کنترل کننده یا یک ترمیم کننده نبود ، استفاده می شود ، اما نادرست است. در پروژه های مهم “Tote” و متراکم شد. من سعی می کنم تا حد ممکن دیگر از آن استفاده نکنم و آن را به نفع سایر موارد ذکر شده در این مقاله ناپدید کنم
حرف
- Transform: خدماتی که داده هایی از نوع خاصی را به نوع دیگری تبدیل می کند
- TWIG: پسوندهای شاخه ای شخصی (فیلترها یا توابع)
تو
حرفهای
- اعتبار سنج: خدماتی که قوانین اعتبار سنجی را کنترل می کند
حرف
x
حرف
Z
امروز همچنین تمایل دارم که در هر یک از این مکان های نام به زیر مجموعه های “معاملات” اضافه کنم. به عنوان مثال src/Entity/User/
ممکن است حاوی:
- SRC/Entity/user/user.php
- SRC/Entity/user/Group.php
- SRC/ENTITY/USER/COLLE.PHP
- SRC/Entity/User/RequestPassword.php
این از داشتن ساختار درخت با پرونده هایی که در آن شما باید به بی نهایت و فراتر از آن بروید ، جلوگیری می کند.
به من کمک کنید تا این موضوع را توسعه داده و زندگی کنم!
من نمی دانم که آیا با لاراول کم و بیش به همان روش ساختار یافته است؟