• 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
32 wizyt
pytanie zadane 6 lutego w PHP, Symfony, Zend przez s4bek Użytkownik (600 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 159 wizyt
0 głosów
0 odpowiedzi 18 wizyt
pytanie zadane 7 kwietnia w PHP, Symfony, Zend przez hiper007 Stary wyjadacz (10,670 p.)
0 głosów
1 odpowiedź 38 wizyt
pytanie zadane 2 kwietnia w PHP, Symfony, Zend przez hiper007 Stary wyjadacz (10,670 p.)
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

62,481 zapytań

108,647 odpowiedzi

226,823 komentarzy

36,497 pasjonatów

Przeglądających: 141
Pasjonatów: 16 Gości: 125

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.

...