alexsawallich / node
一个用于使所有前端内容(来自不同模块)通过同一接口可用的Zend-Framework-Module。
Requires
- php: >=5.4.0
- zf-commons/zfc-admin: =v0.2.1
This package is auto-updated.
Last update: 2024-08-29 04:09:08 UTC
README
此模块做什么?
Node 是一个模块,随着时间的推移,其功能已经超过了最初的计划。它为您的 Zend-Framework 应用程序引入了一层,用于为每个内容创建 URL 重写(路由)。
该模块提供了 3 种类型的节点:MVC-节点、内容-节点和重定向-节点。
MVC-节点 可以从模块的后端(需要 ZfcAdmin)创建。配置表单允许您指定此节点应可用的 URL 路径。在下拉列表中,您可以选择控制器(应用程序中的所有控制器都从服务管理器中检索)和控制器内的操作。您可以提供进一步参数,这些参数将按 1:1 传递到路由器。您还可以提供原始 URL 路径,如果指定的控制器、操作和参数已经分配给某个路由。每当输出此路由时,例如在模板中,它将被替换为您刚刚创建的新节点基础 URL。
因此 MVC-节点允许您实现以下功能:将 URL http://yourdomain.com/news/ 路由到潜在的新闻控制器,到 Index-操作,参数为 Sort=ASC。
重定向-节点 是一个最初并未计划但非常有用的额外功能。就像 MVC-节点一样,您可以在后端通过表单配置创建这类节点。您指定此节点的 URL 路径以及节点应重定向到的目标 URL(可以是外部 URL)。您还可以指定用于重定向的 HTTP 状态码。
因此重定向-节点允许您实现以下功能:从 http://yourdomain.com/facebook/ 重定向到 https://facebook.de/your-name/。
内容-节点 是模块的最初想法。它们是节点,不能从后端手动创建,因为它们始终应与内容相关(例如,博客文章)。每当您创建特定内容时,都应该创建一个节点 - 当您删除此内容时,节点也应该被删除。由于此节点模块不知道提供内容的其他模块的内部结构,您需要创建一个第三方模块,将允许管理特定内容的模块与节点模块关联起来。
因此内容-节点基本上与 MVC-节点相同。但是您不能手动创建或删除它们,因为这项任务必须在代码中实现。可以使用内容-节点实现以下任务:当调用 http://yourdomain.com/blog/why-i-am-great/ 时,在 BlogController 中内部执行 View-操作,参数为 id=5。
附加功能
有一些其他功能可以在配置文件中启用或禁用。
- 启用元字段。如果启用,节点后端的添加/编辑表单允许您指定元描述、元关键字和机器人设置,以满足您的 SEO 需求。
- 启用访问计数器。如果启用,每当调用节点路由时,此节点的计数器就会增加。同时,保存此节点最后访问的时间戳。这些信息在节点概览中呈现。
- 缓存。节点存储在数据库中。第一次调用页面时,会获取所有节点,进行处理,并放入您应用程序的路由器中。在这个过程中,路由器配置被缓存,因此在下一次请求时,没有必要再次获取所有节点。
- 可翻译。模块内的所有字符串都通过翻译实例的
translate()
方法进行包装。 - 丰富的事件使用。此模块在特定点触发事件,这给了您扩展节点以附加字段的机会,例如。将节点视为存储与所有您的内容相关的信息的中心位置。也许您希望为每个节点有不同的标题图片 - 没有问题。通过触发的事件,您可以轻松修改后端表单或挂钩到将节点保存到数据库的过程。
未来计划
- 此模块目前是为 ZF2 编写的,但我希望使其与 ZF3 兼容。因此,我可能将创建另一个分支。
- 此模块的 composer.json 没有列出正确的要求。如果您安装了整个 ZF2,一切都应该正常。然而实际上,您只需要某些组件。
- 也许我会花一些时间将此模块翻译成德语。现在它是英文的,但是如果您有可用的翻译,可以轻松调用您自己的翻译。