neuedaten/freezed
Composer 安装命令:
composer require neuedaten/freezed
包简介
Freezed is a static site generator powered by the TYPO3 Fluid template engine.
README 文档
README
❄️ Freezed
A static site generator powered by the TYPO3 Fluid template engine.
Templates in, static files out. No database, no runtime, no surprises.
What is Freezed?
Freezed renders a folder of content and one or more themes into a plain static
website using Fluid — the same templating engine that powers TYPO3 CMS. You
write layouts, partials, sections and (optionally) custom ViewHelpers, and
Freezed compiles everything to static HTML and assets in a public/ directory
you can host anywhere.
content/ + themes/ ──► freezed build ──► public/ (static HTML + assets)
Features
- Fluid templating — layouts, partials, sections and ViewHelpers.
- Stackable themes — drop themes into
themes/; they layer and override cleanly. - Content as folders — every page is a folder with a template and a
variables.php. - Asset pipeline — reference CSS/JS/images via the
resourceViewHelper. - Static files — anything in
static/is copied verbatim into the build. - Build hooks — run shell commands before and after a build.
- Zero runtime — the output is just files; host it on any static host or CDN.
Quick start
Start a new site (recommended)
Use the starter skeleton, which scaffolds a working site for you:
composer create-project --stability=beta neuedaten/freezed-skeleton my-site cd my-site ./vendor/bin/freezed build # open public/index.html
The skeleton also ships a Docker dev environment (docker compose up --build).
See neuedaten/freezed-skeleton.
Add Freezed to an existing project
composer require neuedaten/freezed:@beta # @beta required during the beta ./vendor/bin/freezed install # scaffold content/, themes/, config ./vendor/bin/freezed build # render into public/
During the beta you need the
@betaflag (or"minimum-stability": "beta"in yourcomposer.json). See Installation › Beta stability.
Project structure
A Freezed site is just a handful of folders:
my-site/
├─ content/ # your pages, grouped by content type
│ └─ pages/
│ └─ home/
│ ├─ index.html # a Fluid template
│ └─ variables.php # variables for this page
├─ themes/ # one or more stackable themes
│ └─ 00_default/
│ ├─ templates/{layouts,partials,templates}/
│ ├─ assets/{css,js,images}/
│ └─ static/
├─ static/ # files copied verbatim into the build
├─ public/ # generated output (git-ignored)
└─ freezed.config.php # content types, default variables, build hooks
Documentation
| Guide | What it covers |
|---|---|
| Getting started | Install, first build, the dev loop |
| Installation | Skeleton, library, requirements |
| Concepts | The build pipeline and core ideas |
| Content & pages | Writing pages, variables, content types |
| Themes | Layouts, partials, assets, the resource ViewHelper |
| Configuration | freezed.config.php reference |
| CLI | The freezed command |
| Docker | The containerised dev environment (ships with the skeleton) |
| Deployment | Hosting the static output |
Requirements
- PHP 8.2 or newer
- Composer
- PHP extensions:
mbstring,dom(both ship with most PHP builds)
This repository
This is the engine — the freezed CLI and rendering pipeline, published as
the Composer package neuedaten/freezed.
.
├─ bin/freezed # CLI entry point
├─ Classes/ # PSR-4: Neuedaten\Freezed\
│ ├─ Commands/ # install / compile commands
│ ├─ Domain/ # models + repositories (content, themes, resources)
│ ├─ Services/ # config, compile, render, file, static, scripts, log
│ └─ ViewHelpers/ # ResourceViewHelper
├─ assets/ # default theme + example content + default config
├─ includes/config.php # built-in path defaults
└─ docs/ # documentation
A ready-to-build starter project lives in the companion repo neuedaten/freezed-skeleton.
Status
Freezed is in beta. The build pipeline is stable; the API may still change before 1.0. Issues and feedback are very welcome.
License
GPL-2.0-or-later © Bastian Schwabe / neuedaten
neuedaten/freezed 适用场景与选型建议
neuedaten/freezed 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2 次下载、GitHub Stars 达 2, 最近一次更新时间为 2026 年 06 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「templating」 「static」 「fluid」 「static site generator」 「ssg」 「typo3fluid」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 neuedaten/freezed 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 neuedaten/freezed 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 neuedaten/freezed 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Shoot aims to make providing data to your templates more manageable
Bookdown.io With Bootswatch Styles And Prism Syntax Highlighting
TwigStan is a static analyzer for Twig templates powered by PHPStan
Enables creation of responsive images for fluid styled content elements.
Highly flexible AJAX rating based on extbase/fluid/jquery. Allows multiple ratings within one page. Could be used as a cObj by other extensions or included in every FLUID template using the viewhelper. Each ratingstep could be configured having a name - international localization included.
A Processor for Markup written in PHP. Allows extraction of Markup into a data structure, orchestrated nested manipulation of said structure, and output as (optimized) Markup.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 39
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2026-06-11