kaiseki/wp-template-renderer
Composer 安装命令:
composer require kaiseki/wp-template-renderer
包简介
Render WordPress template parts by slug or from a class, with a configurable class-to-slug generator
README 文档
README
Render WordPress template parts by slug or from a class, with a configurable class-to-slug generator.
Two renderers, both wired through ConfigProvider:
TemplateRenderer— renders a template part by slug from a configurable base directory under the active theme (defaulttemplate-parts), capturing its output as a string.ClassTemplateRenderer— renders a template part that lives next to a given object's class file, deriving the slug from the class short name (kebab-cased by default) via aClassSlugGeneratorInterface.
Installation
composer require kaiseki/wp-template-renderer
Requires PHP 8.2 or newer.
Usage
Register ConfigProvider with your laminas-style config aggregator. It declares the renderer factories
and aliases ClassSlugGeneratorInterface to the kebab-case ClassTemplateSlugGenerator, and exposes a
template_renderer config key for the defaults:
use Kaiseki\WordPress\TemplateRenderer\ConfigProvider; return (new ConfigProvider())(); // [ // 'template_renderer' => [ // 'template_renderer' => ['template_directory' => 'template-parts'], // 'class_template_renderer' => ['template_name' => 'template'], // ], // 'dependencies' => [ /* aliases + factories */ ], // 'hook' => ['provider' => []], // ]
Rendering a template part by slug
use Kaiseki\WordPress\TemplateRenderer\TemplateRenderer; /** @var TemplateRenderer $renderer */ $renderer = $container->get(TemplateRenderer::class); // Renders <stylesheet>/template-parts/card.php and returns its output. $html = $renderer->render('card', ['title' => 'Hello']); // With a name variant: <stylesheet>/template-parts/card-featured.php $html = $renderer->render('card', ['title' => 'Hello'], 'featured');
The base directory is configurable via template_renderer.template_renderer.template_directory.
Rendering a template part from a class
use Kaiseki\WordPress\TemplateRenderer\ClassTemplateRenderer; /** @var ClassTemplateRenderer $renderer */ $renderer = $container->get(ClassTemplateRenderer::class); // For an instance of App\Blocks\HeroBlock, looks for hero-block-template.php // next to HeroBlock's class file and returns its output. $html = $renderer->render($block, ['heading' => 'Welcome']); // Override the derived slug and/or the template name suffix: $html = $renderer->render($block, ['heading' => 'Welcome'], slug: 'hero', templateName: '');
The slug is produced by the ClassSlugGeneratorInterface binding (kebab-cased class short name by
default); the template-name suffix defaults to
template_renderer.class_template_renderer.template_name.
Both renderers throw a RuntimeException when the resolved template file does not exist.
Development
composer install
composer check # check-deps, cs-check, phpstan
License
MIT — see LICENSE.
kaiseki/wp-template-renderer 适用场景与选型建议
kaiseki/wp-template-renderer 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 436 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 11 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 kaiseki/wp-template-renderer 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 kaiseki/wp-template-renderer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 436
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 10
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-11-11