• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Refactor / Doctrine / PHP

0 głosów
30 wizyt
pytanie zadane 6 lutego w PHP, Symfony, Zend przez s4bek Użytkownik (580 p.)

Cześć! Chciałbym przebudować daną metodę na bardziej czytelniejszą, lecz nie wiem jak się za to zabrać. Czy mógłby ktoś mi pomóc w Refactorze?

 

 class InventoryService
{
     public function createAction($data = [])
    {
        $isValid = \GUMP::is_valid($data, [
            'placeId' => 'required'
        ]);
        if($isValid === true) {
            $inventoryEntity = new Inventory();
            $inventoryEntity->setPlaceId($data['placeId']);
            $result = $this->entityManager->getRepository('AppBundle:Inventory')->save($inventoryEntity);
            if(!$result) {
                throw new InvalidArgumentException('Dodawanie wpisu nie powiodło się.');
            }
            $lastInsertedId = $result->getId();

            foreach($data['values'] as $key => $value) {
                if($this->columnDoesntExists($key)) {
                    throw new InventoryServiceException('Kolumna o podanym ID nie istnieje.');
                }
                $valueEntity = new Value();
                $valueEntity->setValue($value);
                $valueEntity->setColumnId($key);
                $valueEntity->setInventoryId($lastInsertedId);

                $this->entityManager->getRepository('AppBundle:Inventory')->save($valueEntity);
            }

            $licenseInsert = new Value();
            $licenseInsert->setValue($data['licenses']);
            $licenseInsert->setColumnId($data['licenseId']['column_id']);
            $licenseInsert->setInventoryId($lastInsertedId);

            $resultOfLicenseInsert = $this->entityManager->getRepository('AppBundle:Inventory')->save($licenseInsert);
            if(!$resultOfLicenseInsert) {
                throw new InventoryServiceException('Dodawanie wpisu nie powiodło się.');
            }

            return ['status' => 'success'];
        } else {
            throw new InventoryServiceException('Placówka nie może być pusta.');
        }
    }
}

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 156 wizyt
0 głosów
1 odpowiedź 38 wizyt
0 głosów
1 odpowiedź 63 wizyt
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

60,244 zapytań

105,928 odpowiedzi

220,065 komentarzy

32,445 pasjonatów

Przeglądających: 152
Pasjonatów: 3 Gości: 149

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...