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 NULLe, 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ę?