سلام
در این پروژه داخل کلاس QueryBuilder از تعداد متدهای زیادی استفاده شده است. یعنی در اصل این کلاس وظایف زیادی به عهده دارد مثل ایجاد یک رکورد جدید، حذف رکورد، آپدیت کردن اون و همچنین فچ کردن اون و ’.... آیا این موضوع اصل single responsibility رو نقض نمی کنه؟ اگر اینطوره، بهتره چطوه پروژه رو توسعه بدهیم؟
سلام و احترام
هدف از SRP جلوگیری از انجام وظایف متفاوت برای کلاس هست
میتونید از دیزاین پترن builder هم استفاده کنید برای ساختن یه orm، مثال خوب از builder خود سورس کد لاراول هستش https://github.com/laravel/framework/tree/8.x/src/Illuminate/Database/Query
درباره دیزاین پترنش هم میتونید اینجا بخونید https://refactoring.guru/design-patterns/builder/php/example