nuri60 Sağol varol ama keşke başlığı da Türkçe yazsaydın. Forumda gardiyan gibi elimde sopayla dolaşmak istemiyorum, böyle mütevazi bir yer olsun, herkes kendini yönetsin istiyorum. Sen eski kullanıcı sayılırsın artık, yeni kullanıcılara örnek olman lazım.
Bir konu yazacağın zaman önce başlığı yazma, önce içeriği yaz, ondan sonra yazdıklarına bakıp ona uygun bir başlık düşün. Bu şekilde daha kolay olur. Bunun aynısını kod yazmaya da uygulayabilirsin. Mesela yöntemi yazdıktan sonra direkt kodu yazma içine önce yapacaklarını yaz, bir plan oluştur, sonra en üstten başlayarak altına kodları yaz:
public function create(
ProductDataInterface $data,
ProductRepositoryInterface $productRepository
): ProductInterface
{
// $data gereksinimleri karşılıyor mu kontrol et
// $data->type değerine göre oluşturma stratejisi seç
// Repository ile ürünü oluştur
// Alakalı olayları tetikle
// Oluşan ürün modelini dön
// return $product;
}
Sonra tek tek bunları altını doldur:
// $data gereksinimleri karşılıyor mu kontrol et
throw_if(!$data->hasOptions(), new ProductDataMissingOptionsException);
// $data->type değerine göre oluşturma stratejisi seç
$strategy = $productRepository->findStrategyByType($data->type);
// Repository ile ürünü oluştur
$product = $productRepository->create($data, $strategy);
// Alakalı olayları tetikle
event(new ProductCreated($product, $data, $strategy));
// Oluşan ürün modelini dön
return $product;
Sonra yazdığın yorumları sil:
public function create(
ProductDataInterface $data,
ProductRepositoryInterface $productRepository
): ProductInterface
{
throw_if(!$data->hasOptions(), new ProductDataMissingOptionsException);
$strategy = $productRepository->findStrategyByType($data->type);
$product = $productRepository->create($data, $strategy);
event(new ProductCreated($product, $data, $strategy));
return $product;
}
Temiz.