Guide

完整的Phlo构建指南:从安装和你的第一个路由到实时应用程序以及语言背后的哲学。

1介绍Phlo 是一个集成平台,拥有自己的全栈语言。您编写 .phlo 源文件;Phlo 将它们转译为您可以打开和阅读的 PHP、CSS 和 JavaScript,每个运行时错误都指向您编写的 .phlo 行。相同的语言包含四个层次:语言本身、应用平台(后端资源加上 phlo.js SPA 引擎)、服务器平台(FrankenPHP、Phlo Daemon、Phlo Realtime、Phlo WhatsApp)和操作平台(Phlo Dashboard)。本指南涵盖了所有这些内容。生产版本运行在共享运行时上,通常位于 /opt/phlo/,而每个应用程序则保留自己的源代码、数据、生成的 PHP 和 webroot。 2配置data/app.json 描述了构建:加载了哪些资源,发布输出的位置,以及哪些资源仅属于发布或仅属于开发。 3运行时配置data/app.json 描述了 build,即被转译的内容。本章涵盖 runtime,即每个请求发生的事情。该配置位于 www/app.php(对于阶段/发布,位于 release/www/app.php)作为 phloapp(...) 的参数。 4语法与结构Phlo 将 .phlo 源文件转译为普通的 PHP 类和生成的资产。语法类似于 PHP,但语句末尾不带分号。 5路由在 Phlo 中,路由将 空格分隔的路径 + HTTP 方法 映射到 目标(通常是一个方法)。来自所有 .phlo 文件的路由被收集;路由器通过 app::route() 激活。 6Views视图直接位于 .phlo 文件中。视图被转译为返回 HTML 的 PHP 方法。您可以使用 view(...) 来渲染视图。 7CSSPhlo 在 <style 块中使用紧凑的、无分号的 CSS 语法。 8ORMPhlo 附带一个强大的内置 ORM,允许您将数据库表定义为类。模型可以通过 columns 快速定义,或通过声明式 schema 完整定义。记录被视为 instances,支持 props、methods、views、relations 和多种数据库引擎。 9实例管理Phlo 使用其自己的 instance manager 来高效且可预测地初始化和重用对象。该系统确定 何时运行控制器代码,实例如何存储,以及如何防止循环引用。 10工具和 CLIPhlo 应用程序具有用于 build、lint、release 和 reflection 的 CLI 层。始终通过应用程序的开发入口点使用它。 11翻译Phlo 使用 lang 资源来处理多语言视图文本和翻译。在视图中,您应该尽量使用紧凑的语言简写来编写静态文本。您可以使用自己的语言编写源文本;下面的示例使用荷兰语(nl)作为源语言。 12高级Phlo 故意保持模块化。您可以保持应用程序小巧,仅激活所需的资源,或组合多个源路径和资源组。 13附录这些附录提供了与生产发布相匹配的简洁示例。 14WebSocket在 Phlo 中,实时功能通过 Phlo Realtime 运行,这是内置于 Phlo Daemon(/guide/daemon) 的 WebSocket 服务器。一个 Node 进程拥有跨每个虚拟主机的套接字连接,并通过守护进程自己的工作池在您的 PHP 应用程序上运行每个事件。您的应用程序实现了四个钩子函数,并通过 wsCast() 从 PHP 广播。 15任务Phlo 内置了跨应用的任务运行器。每分钟会触发一次 tasks::run,这是一个系统 cron 条目或 Phlo Daemon(/guide/daemon);tasks 资源会根据 %app-tasks 进行声明式匹配。您的应用中没有 cron 语法,也没有外部调度程序。 16守护进程Phlo Daemon 是一个 可选 的 Node sidecar (phlo-daemon.js):一个通用引擎,将任何 Phlo 目标分发到一组持久的 worker。核心 Phlo 在没有它的情况下也能工作;该 daemon 加快了重路径的速度,并支持 WebSockets 和定时任务。 17搜索引擎优化seo 资源集中管理应用所需的搜索和共享元数据:sitemap.xml、robots.txt、hreflang 替代项、规范链接,以及包含 <meta 描述的 <head 块,还有 Open Graph 和 Twitter 卡片。它从您已经设置的 props 中派生出所有内容,因此一个统一、完整但又适度的集合从一个地方发出。 18AIPhlo 将多个 AI 提供商(OpenAI、Claude、Gemini、DeepSeek、Grok)整合在一个统一的外观下。您选择一个模型,Phlo 会选择合适的引擎。流式传输到 DOM 使用与 Phlo 其余部分相同的 apply() 机制:没有单独的客户端库,也没有单独的事件总线。 19TracePhlo的跟踪模式是一个运行时插装层,它记录对生成的方法、prop getter、静态或原生函数的每次调用,包括时间和参数。每个请求Phlo会将JSON转储写入data/trace/<id.json。此功能用于调试和性能分析,不适用于生产环境。 20对于 AI 代理Phlo 的构建旨在由 AI 代理驱动,而不仅仅是被它们读取。每个应用程序都暴露出三个 CLI 层,让代理在没有先前代码库知识的情况下工作:reflect:: 用于理解代码,phloeval 用于执行代码,build:: 用于转译和验证。这三者都需要 build: true,并且绝不能在生产环境中运行。 21哲学本章解释了为什么 Phlo 以这种方式构建:解析器、转译器、运行时和工具背后的深思熟虑的权衡。简而言之:Phlo 是一个集成平台,拥有自己的全栈语言,其强大之处在于所有层的垂直集成,从代码到 fleet,只有一种语言和一种思维模型。 22性能一个遵循本指南中约定的 Phlo 应用程序在 Lighthouse 的评分上起点较高,因为其架构已经完成了审计所测量的大部分内容:服务器渲染的 HTML、一个小的延迟脚本、一个样式表、没有框架负载和没有第三方请求。本章将正确的 Phlo 使用与网络性能的最佳实践相对应,并涵盖了剩下的部分:图像、标记和测量。

我们使用必要的cookie来使该网站正常工作。在您的许可下,我们还使用分析工具来改善网站。