johannschopplich/kirby-headless 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

johannschopplich/kirby-headless

Composer 安装命令:

composer require johannschopplich/kirby-headless

包简介

API-first toolkit for Kirby CMS

README 文档

README

Kirby Headless logo

Kirby Headless

Bearer-authenticated KQL, UUID resolution in blocks and layouts, JSON templates, and an Express-style API builder for Kirby – everything you need to drive any frontend from Kirby.

KQLField MethodsJSON TemplatesAPI BuilderAuthentication

Note

Want a ready-to-use headless-only project? Start from the Kirby Headless Starter.

When to Use

I want to… Use
Query content from a frontend over HTTP KQL endpoint at /api/kql
Lock the API behind a token instead of basic auth kql.auth => 'bearer' + headless.token
Resolve UUIDs in blocks and layouts to real objects $field->toResolvedBlocks()
Resolve permalinks in writer and text fields $field->resolvePermalinks()
Return JSON straight from a template JSON templates / __template__ endpoint
Compose custom, authenticated API routes Api::createHandler() + middlewares
Build navigation and language switchers in the frontend page methods (frontendUrl(), i18nMeta(), …)

Features

🔑 Bearer Token Authentication

Protect the /api/kql endpoint and your own API routes with a bearer token, or fall back to Kirby's native API authentication.

// config.php
return [
    'kql' => ['auth' => 'bearer'],
    'headless' => ['token' => 'your-secret-token']
];

Read more →

🧱 Block & Layout Resolution

Resolve UUIDs in blocks and layouts to complete file and page objects server-side, so your frontend consumes ready-to-use URLs and data. Configure which fields to resolve, or plug in custom resolvers.

$page->blocks()->toResolvedBlocks()->toArray();
$page->layout()->toResolvedLayouts()->toArray();

Read more →

⚡️ Enhanced KQL

A drop-in /api/kql endpoint that extends the official KQL plugin with bearer authentication, response caching, and multi-language support via a request header.

await fetch("https://example.com/api/kql", {
  method: "POST",
  headers: { Authorization: `Bearer ${token}` },
  body: JSON.stringify({ query: "page('notes').children" }),
});

Read more →

🗂 JSON Templates

Return JSON from your templates instead of HTML for full control over the response shape, with built-in __template__ and __sitemap__ endpoints.

// site/templates/about.php
echo \Kirby\Data\Json::encode([
    'title' => $page->title()->value(),
    'layout' => $page->layout()->toResolvedLayouts()->toArray()
]);

Read more →

🍢 API Builder

Compose routes from middleware chains – Express-style. Reuse bearer auth, file and page resolution, or your own validators across routes.

use JohannSchopplich\Headless\Api\Api;
use JohannSchopplich\Headless\Api\Middlewares;

Api::createHandler(
    Middlewares::hasBearerToken(),
    fn (array $context, array $args) => Api::createResponse(200, [
        'message' => 'Hello World'
    ])
);

Read more →

🧭 Page Methods

Helpers for headless frontends: frontend URLs, breadcrumb data, and multi-language metadata for navigation and language switchers.

$page->frontendUrl();    // URL on your frontend app
$page->breadcrumbMeta(); // breadcrumb data for navigation
$page->i18nMeta();       // language switcher metadata

Read more →

Requirements

  • Kirby 5
  • PHP 8.3+

Note

Using Kirby 4? Install the v4 release.

Installation

Composer (Recommended)

composer require johannschopplich/kirby-headless

Manual Installation

Download and copy this repository to /site/plugins/kirby-headless.

License

MIT License © 2022-PRESENT Johann Schopplich

johannschopplich/kirby-headless 适用场景与选型建议

johannschopplich/kirby-headless 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 15.96k 次下载、GitHub Stars 达 43, 最近一次更新时间为 2022 年 12 月 28 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「headless」 「kirby」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 johannschopplich/kirby-headless 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 johannschopplich/kirby-headless 我们能提供哪些服务?
定制开发 / 二次开发

基于 johannschopplich/kirby-headless 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 15.96k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 43
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 43
  • Watchers: 3
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-12-28