У меня есть две строки, которые повторяются много раз и между ними есть код. Как избавиться от дублирования?

У меня есть две строки, которые повторяются всегда и между ними есть код. Как избавиться от дублирования ?
Код между строками всегда разный
Вот код, который повторяется много раз:
$this->apiUrl = self::DEFAULT_API_URL;
            
    do {
       Here is different code every time
    } while ($this->apiUrl = $jsonData['next_page_url'] ?? null);


Пример реального кода:

public function parse()
            {
                $this->apiUrl = self::DEFAULT_API_URL;
        
                do {
                    $this->importProductWithAttributes($this->apiUrl);
                } while ($this->apiUrl = $jsonData['next_page_url'] ?? null);
            }

    public function addToQueue() : void
            {
                $this->apiUrl = self::DEFAULT_API_URL;
        
                do {
                    $this->getDataJson($this->apiUrl);
                    $jsonData = self::$data;
                    $tenPartJsonDate = array_chunk($jsonData['data'], 10, true);
        
                    foreach ($tenPartJsonDate as $key => $products) {
                        $skuArray = [];
        
                        foreach ($products as $sku => $product) {
                            $skuArray[] = $sku;
                        }
        
                        ProcessImportB2B::dispatch($skuArray)->onQueue('b2bImport');
                    }
        
                } while ($this->apiUrl = $jsonData['next_page_url'] ?? null);
            }
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 2
Adamos
@Adamos
private function check($jsonData) {
  return $this->apiUrl = $jsonData['next_page_url'] ?? null;
}
Ответ написан
Fragster
@Fragster
помогло? отметь решением!
Сделать функцию с циклом, в которую передавать лямбду с меняющимся кодом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы