wrey75 / johannes
Johannes CMS。基于Mustache模板,确保快速且易于编程。
Requires
- php: >=5.5.0
- mustache/mustache: ^2.5
- wrey75/concerto: ^0.60
This package is not auto-updated.
Last update: 2022-02-01 13:07:38 UTC
README
该软件包现已废弃。替代品已成功创建但尚未打包。新系统允许生成JSON和一些其他功能,如小工具和插件。目前,这个尚未命名的软件包正在我的网站上生产环境中运行,但我还没有时间创建一个合适的软件包。
johannes 是一个基于Wordpress提供的一些想法的新CMS。但相当不同。用PHP编写,但设计为无特定语言和以Mustache为中心。这意味着系统由Mustache编写的模板驱动。
正在开发的产品。该项目不适用于生产。如果您想帮助,请随意。如果您需要帮助,请打开一个问题。
为什么是johannes?
这个名字基于现代印刷术发明者 Gutenberg 的名字。通常我不会在为我的项目寻找名字上浪费时间。
为什么PHP?为什么Mustache?为什么不使用Wordpress?
因为我的主要项目都是在PHP上。这就是为什么我决定使用这种语言。但是,基本上,我承认nodeJS或其他语言非常适合开发此类系统。PHP非常适合在各种服务器上安装,包括非常小的服务器。
使用 Mustache 的目的是为了防止XSS注入。基本上,当您使用PHP Mustache 引擎时,所有内容都被转换为HTML。这对PHP程序员来说是一个非常好的安全措施。从一开始,PHP就输出纯HTML。如果您数据库中有不良数据,您可以直接在页面上注入脚本。这可能会非常危险。另一方面,使用三重括号可以轻松打印HTML。这是一个非常大的技术优势。
Mustache相对于其他所有系统都有一个很大的优势:它是无特定语言的,但提供了渲染页面所需的所有功能。这很好。事实是,模板存在于许多其他语言中,如JavaScript、Java、Ruby等,这是将PHP迁移到其他语言时,在渲染器中进行有限更改的良好保障。
Wordpress非常适合创建博客和其他内容。您可以使用良好的设施做任何事情,但插件和主题过于依赖编程。我的意思是,我们每次使用PHP调用都有很高的风险会遭到盗版。如果您使用主题和已经完成的模板(包括插件),您可能会在某些时候被阻止。您冒着使用旧东西的风险。即使在付费模板上,您也可能找到缺少的翻译(我主要工作在法语上)。
使用模板和相当快速的简单渲染器来启动网站是一个好方法。将管理用户的功能委托给另一个项目(不是开源项目,抱歉)。然后,Johannes的主要用途是快速且以最小编码渲染页面。将我的页面代码减少到最小。
WordPress依赖于MySQL(或MariaDB),而我喜欢在MongoDB中编程。这就是为什么WordPress不是我首选的原因。但我对这款产品表示尊重,因为它展示了这个CMS的强大功能。
它是如何工作的?
至于WordPress,该项目依赖于主题(存储在名为“themes”的专用存储库中),以及插件(您可以在“plugins”目录中找到它们)。然后,您可以轻松添加或更改主题。
使用主题,您依赖模板来渲染页面。然后,与WordPress一样,您可以有不同的模板。WordPress主要依赖于有限数量的页面(博客、普通页面、存档...)。Johannes也是如此。我们使用带有一些规则的模板。
Mustache是渲染页面的驱动程序。这是WordPress与Johannes的主要区别。WordPress依赖于纯PHP渲染。这是一个非常好的想法,但编写主题更加复杂。为Johannes编写主题应该保持非常简单。
请注意,运行Johannes的代码非常轻量。您只需要创建一个PHP页面并添加以下内容
// // In a dedicated init.php file // $cms = new Johannes\CMSEngine(); // Create the engine $cms->init(); // init the engine $cms->setTheme("brave"); // select the theme $cms->useTemplate( "basic" ); // The basic page $cms->setTitle( _("Welcome") ); // Set title... $cms->push("app", $app ); // Add data (can be instances of classes, anonymous functions or arrays) $cms->run(); // render the page
数据库
这是另一个问题:WordPress仅使用MySQL存储其信息。Johannes不依赖于数据库。一切都是文件相关的。但当然,如果需要,您可以使用任何数据库,因为代码不在CMS端(至少在第一版中)。
由于Mustache,一切都是真正基于JSON的。这意味着MongoDB数据库确实是最佳选择。但Redis或简单地编写JSON文件也是可能的选择。
数据库不是CMS的一部分的事实是基于这样一个事实:这个CMS是为了渲染office240.com网站的页面而编写的。该网站依赖于API调用和面向业务类的请求(而不是传统的数据库请求)。因此,所有内容都与数据相关,我们可以直接注入代码。
依赖项
我们试图限制与其他项目的依赖关系。但我们大量依赖于Concerto项目,该项目已经为另一个网站(每天约有1000次访问)投入生产。当然,还包括Mustache PHP项目。
常见问题
当我尝试新产品时,我会问很多问题。以下是我的答案。
它是否运行正常?
是的。该项目已经在office240.com上投入生产,因此您可以使用它。我们认为会继续开发它。
配置是否复杂?
并不复杂。您只需要指定Johannes的专用ROOT
目录(用于存储主题、模板、插件)。默认情况下,它基于$DOCUMENT_ROOT/cms
,其中$DOCUMENT_ROOT
是您页面的根目录。
注意:您必须在网站的可见部分存储文件,以确保正确访问资源(CSS、javascript和图像文件)。