ich nehme mir nie viel zeit um mich in all die "grossartigen" und "scheinbar unverzichtbaren" programmiersprachen , apis, frameworks oder was auch immer reinzulesen - ich mag den "kranken" hype nicht, der oftmals um diese herum gemacht wird. Diesmal habe ich versucht, die Inhalte deiner URL durchzulesen und zu verstehen und rate mal was passiert ist.
Ab der Zeile mit
$family = $user->getFamily();
# SELECT * FROM family where (family_id = 1337)
war bei mir schluss mit intuitiv. Das grösste Problem dabei: viel Selbstfplege, wenig Hilfe für Einsteiger. Jeder normale Mensch dürfte sich fragen, woher dein Mappie die family_id 1337 her hat. Natürlich kann man es sich mit etwas Anstrengung denken dass diese vermutlich aus dem User-record stammt, aber ist es vertändlich erklärt? - NEIN! Dabei die Frage: wenn du schon mit Extensions der beiden erwähnten Tabellen arbeitest, dann stelle die auch bitte vor.
$users = $family->getAllUser();
# this code does not execute a query
alles fein, aber ist es intuitiv? grösste frage für mich und viele andere dürfte dabei sein: warum hier auf einmal keine Query läuft. Grob abstrakt ist alles klar und dirgendwann, 4 verwirrende Beispiele später erbarmst du dich auch und sagst endlich : "Note that the query is only executed as soon as we start to iterate over the records". Aber ist es simpel und intuitiv?
Für wen? Für dich? Für mich? Für Milka-Kuh? Gerade in dem DB-Thead von blackscorp,bei all dem Fachgequasel ist euch vermutlich garnicht aufgefallen, was das eigentliche Problem ist. Ein "Profi" ist oftmals zu sehr "Profi" um irgendwelchen Lösungen anderer "Profies" beachtung zu schenken und alle anderen sind gerade auf vernünftige Dokumentation angewiesen, damit überhaupt Interesse zündet.
Andere irritieren/verwirren ist keine grosse Kunst, das kann jeder x-beliebige Textgenerator sicherlich besser und damit ersthaft angeben ist geradezu lächerlich ("alles was nicht selbsterklärend ist (was eine gute API eben sein sollte").
Doku-note: 5-