برنامه نویسی

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

این از داشتن ساختار درخت با پرونده هایی که در آن شما باید به بی نهایت و فراتر از آن بروید ، جلوگیری می کند.


به من کمک کنید تا این موضوع را توسعه داده و زندگی کنم!

من نمی دانم که آیا با لاراول کم و بیش به همان روش ساختار یافته است؟

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا