Piszę sobie w Lumenie API, mam kontrolery, modele, wszystko fajnie. Ale albo czegoś nie rozumiem, albo trafiłem na totalny fuckup tego frameworka.
Mam klasę modelową, np. User
, a taki użyszkodnik ma zazwyczaj first_name
oraz last_name
i inne tam pola. Ponieważ robię też dokumentację w Swaggerze to pomyślałem, że dopiszę te wszystkie pola do klasy jako public i doczepię do nich komentarze Swaggera, a przy okazji jak gdzieś będę miał ten obiekt to i podpowiadanie składni zadziała.
Nic bardziej mylnego.
Po zadeklarowaniu tych pól jako public wracają stamtąd zawsze NULL
e, bo model opiera się na magicznych metodach __get
/ __set
przy pobieraniu/ustawianiu wartości dla atrybutów, a te metody są wywoływane tylko jeżeli jest odwołanie do niezdefiniowanego atrybutu. Pomijając już więc dokumentację Swaggera (bo model mogę opisać w innym pliku, choć to też nie jest fajne wyjście, bo potem ktoś coś zmieni w modelu i nie aktualizuje opisu bo ten jest gdzieś indziej), to traci się możliwość podpowiadania składni, a to generuje masę błędów z literówkami, nie wspominając o tym, że trzeba co chwilę patrzeć czy na pewno ten atrybut się tak nazywał.
To tak na serio jest czy ja to od zadka strony robię?