💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ amir tavakolian
بررسی نقض SRP
کیوان علی محمدی حل شده توسط کیوان علی محمدی

سلام استاد 

 

این کد زیر به نظرتون SRP رو نقض کرده

 

 public function insert($table, $data)
  {
    $prantez = dbUtilities::makeInsertQuery($data);
    $this->connection->query("INSERT INTO {$table}. {$prantez} "." VALUES "  );
  }
  

 

هدف از این متد اینه که کوئری insert ساخته بشه 

 

متد makeInsertQuery اون قسمتی از متد insert که به این شکل هستش ==> (?, ?, ?, ?) رو میسازه

که من لاجیک این کد رو  تو utilitie  کلاس نوشتم  و در insert فقط استفادش کردم. 

 

در اخرم متد query رو کال کردم  

 

(البته کدها ناقص هست و اجرا نمیشه فقط میخوام بدونم SRP رو نقض کرده یا نه )

 

<?php
class dbUtilities
{
  public static function makeInsertQuery($data)
  {
    $count = count($data);
    return "(" . rtrim(str_repeat("?,", $count), ",") . ")" . " VALUES " dbUtilities::makeValues($data);
  }
}

 

 

 

 

 

 

 

سلام خدمت شما. هدف از SRP جلوگیری از انجام وظایف متفاوت برای کلاس هست که در این کدهای شما همچین چیزی مشاهده نمیشه. البته اون کلاس Utils جای بحث داره اما ربطی به SRP نداره.

بهترین پاسخ
کیوان علی محمدی ۲۵ مهر ۱۴۰۰، ۰۷:۳۲