Ah je vois ce que tu veux dire. Pour le coup l'API interne de Kirby ne ressemble pas à une API traditionnelle comme tu l'entends. Elle est avant tout utilisée pour accéder à des fichiers eux-même stockés dans des dossiers. Tu peux parfaitement set, create, save avec l'API (notamment si par exemple tu crées un plugin spécifique pour toi) mais sinon la plupart du temps c'est le panel d'admin (totalement optionnel au passage) qui s'en occupe et toi tu ne fais souvent qu'aller fetch du contenu.
Du coup pour te répondre, les exemples donnés là consistent à aller chercher un ensemble de données se trouvant dans un dossier. : $accounts = $kirby->root()->accounts() signifie que tu vas, depuis la racine de ton instance de kirby, lister les dossiers "racine" (comme si tu listais des tables dans une BDD) et que tu prends le dossiers accounts (table accounts dans une bdd). Cela te retourne un objet avec lequel tu peux bosser. $kirby c'est en fait l'instance de ton CMS et c'est aussi sa racine à partir de laquelle tu fais tout. Si tu instancies Kirby c'est parce que tu peux avoir plusieurs instances avec une seule installation de fichiers, par exemple pour faire du multisite à la wordpress.
Un cas assez traditionnel, par exemple pour récup le dernier article type magazine se trouvant dans /content/articles tu ferais un truc du genre :
Code:
return function($site) {
$mag = $kirby->root()->articles()
->children()
->visible()
->filterBy('famille', '==', 'magazine')
->sortBy('date', 'desc')
->first();
return [
'mag' => $mag,
];
};
Je sais pas si j'ai été très clair mais voila. Perso je trouve ça plutôt clair/facile à prendre en main. Une fois que tu as capté les quelques objets disponibles un peu partout ($kirby pour la base du site, $pages pour le listing de toutes les pages, $page pour la page courante) tu peux commencer à récupérer ton contenu rapidement.
Je fais peut-être un parallèle étrange mais les requêtes de ce genre me rappellent les lambda query quand je faisais de l'ASP.NET MVC (via LINQ), dans lesquelles tu enchaines les expressions pour affiner ta requête. C'est aussi un peu proches du chainage que tu as en javascript comme les promises et les .then. La raison pour laquelle tu as deux exemples c'est (je pense) parce que Kirby fait évoluer sa syntaxe avec le temps. Initialement tu n'avais que la syntaxe type $kirby->root()->accounts(), inspirée je crois de jquery. Je peux me tromper mais je crois que la nouvelle syntaxe vise à se rapprocher un peu plus du javascript natif.