词源:在非洲的Chichewa语言中,“ Zolinga”一词的意思是“目标”。
目录
我完全致力于一个单个项目,这些组件(框架,cron,翻译模块,数据库访问,无数据库CMS和简单的权利管理)是其所需的重要构建块。经过两个月的激烈努力和二十年的经验,我觉得在深入研究该项目的封闭环境之前,回馈开源社区是很合适的。
您可能想知道为什么不选择现有解决方案?好吧,预计我正在进行的项目将在未来10年内运行。 90%的代码在现有模块中没有平行。因此,它必须是简约且不可变的。极简主义,因为更少的功能等于减少维护头痛和更少的升级问题。不变,因为它大大降低了维护模块的成本。
所有流行框架的问题是它们的纯粹流行。他们倾向于被竞争需求,想法和要求所淹没,导致了破坏兼容性的永久周期,增加了不必要的功能和修复错误。我的项目不打算每两年升级或重写一次,这是任何流行框架中主要版本的平均寿命。它需要以最少的投资运行10年。不断地处理该应用程序,以跟上供应商的广泛固定错误列表,因为您甚至不使用的功能都不是可行的解决方案。
因此,这就是这个简约和最大不变的项目的方式。
它必须符合以下标准:
让我向您介绍Zolinga,这是一个符合所有这些标准的PHP框架。
Zolinga是一个极简且经过深思熟虑的PHP框架。它不需要数据库(尽管模块可能)。它封装了多年来开发Web应用程序的实用经验的蒸馏精髓。它提供了一种简单而全面的API,用于构建强大,高效且稳定的应用程序。
这是对PHP框架景观的创新性补充,因此,我鼓励您以冒险感来探索它,尽管谨慎。潜入并发现Zolinga提供的简化效率和鲁棒性。
如果您厌倦了解决简单问题的过于复杂且广泛的解决方案,并且渴望探索新方法,那么Zolinga适合您。无论您是任何级别的PHP开发人员,Zolinga都提供令人耳目一新的选择。
借助Zolinga,您可以轻松制作项目,专注于编码基本功能,而不会承受不必要的组件的负担。 Zolinga的极简主义API设计非常适合那些喜欢使用简约功能或渴望在其项目中添加简约组件的人。尽管具有极简主义的方法,但Zolinga还是一个强大的平台,能够处理甚至最大的项目,具有无限期的增长潜力。
由于Zolinga的智能灵活性和可扩展性,从任何方向开始,从您自己的步伐开始小型而轻松地以自己的步调发展。
要安装Zolinga,请按照以下步骤:
git clone https://github.com/webdevelopers-eu/zolinga.git配置您的Web服务器以服务public目录(请参见Apache Bellow部分)。另外,您可以通过运行以下脚本来使用内置的PHP Web ./bin/zolinga --server 。
根据您启动服务器的启动方式导航到URL。如果您跑了./bin/zolinga --server请按照控制台中的说明进行操作。如果您配置了Web服务器为public目录服务,则知道该怎么做。您应该首先访问/wiki/ url。 Wiki页面默认密码是ZOLINGA (DUH!?)。捆绑的Zolinga Wiki是开始深入挖掘Zolinga框架的正确地方。
如果您希望在Docker中测试一个新项目,则这里是一个快速的2分钟安装指南,用于拉动PHP图像并在容器内运行Zolinga框架。 ?
$ docker pull php
$ docker run -p 8888:8888 -it --name my_php_container php /bin/bash
dock:$ apt update && apt install -y git
dock:$ git clone https://github.com/webdevelopers-eu/zolinga.git /tmp/zolinga
dock:$ /tmp/zolinga/bin/zolinga --server然后在浏览器中访问http:// localhost:8888。
这是一个示例,如何将Debian上的Apache配置为服务Zolinga。
# Checkout the repository into /var/www folder
$ git clone https://github.com/webdevelopers-eu/zolinga.git /var/www/zolinga.localhost
# Set the correct permission - www-data user is the common user for Apache
$ chown -R www-data.www-data /var/www/zolinga.localhost
# Generate example Apache configuration file and put it into /etc/apache2/sites-available
$ /var/www/zolinga.localhost/bin/zolinga skeleton:apache --serverName=zolinga.local --ip=127.0.0.1 > /etc/apache2/sites-available/010-zolinga.conf
# Enable the newly created configuration file
$ a2ensite 010-zolinga.conf
# Restart Apache
$ systemctl restart apache2然后访问浏览器中的http://zolinga.localhost。
当然,它假定PHP已经安装在您的系统上。如果不是,则可以通过运行以下命令来安装它:
apt install libapache2-mod-php8.2
a2enmod php8.2模块是包含zolinga.json文件的目录,该文件描述了模块对系统的功能。该文件指定脚本自动加载规则和模块倾听的事件。侦听器清单部分允许您定义事件处理程序,这些事件处理程序响应各种系统事件,从而处理各种类型的请求,例如HTTP,AJAX和命令行。特殊事件还可以将您的事件处理程序实例化为系统服务,以通过$api->{serviceName}语法直接访问其他代码,以获得最大的速度和多功能性。
每个模块都包含一个描述模块的zolinga.json文件。
模块清单文件示例:
{
"name" : " Hello World " ,
"description" : " A simple Hello World module. " ,
"version" : " 1.0.0 " ,
"authors" : [ " John Doe <[email protected]> " ],
"listen" : [
{
"event" : " system:content " ,
"class" : " \ Example \ HelloWorld \ Server " ,
"method" : " outputPage " ,
"priority" : 0.8 ,
"origin" : [ " remote " ]
}
],
"autoload" : {
"Example \ HelloWorld \ " : " src/ "
},
"config" : {
"helloWorld" : {
"myGreeting" : " Hello World! ?? "
}
}
}是的,正如您猜测的那样,如果您派遣事件system:content ,则将调用示例中Server类的outputPage方法ExampleHelloWorld namespace。
use Zolinga System Events Event ;
( new Event ( ' system:content ' , Event:: ORIGIN_REMOTE ))-> dispatch ();这就是一切。除了一些可选的语法糖以使模块表现更易于编写和读取外,您不需要比本示例中了解更多的知识。您现在实际上是Zolinga专家!
要安装新模块运行以下命令:
./bin/zolinga install --module={ID}例子:
./bin/zolinga install --module=zolinga-cms列出所有可用模块运行以下命令:
./bin/zolinga install --listZolinga是一个具有各种模块的高度可扩展系统,其中一些模块及其文档可能是专有的。这意味着没有单一的,全面的在线文档可用。但是,与其他系统不同,Zolinga本身具有广泛的自我文献特征和内置的Wiki。此Wiki为您的特定安装(包括所有模块)显示了所有必要的文档。
优势是明确的:每个模块都带有自己的文档,该文档在安装后自动与全系统Wiki合并。您的工作,模块和进度仅在安装软件的情况下对您和其他人都可以看到。您将永远不会看到未安装的功能的文档,以确保您始终拥有与安装相匹配的正确文档版本。
实施是具有挑战性的,但是结果可以说明自己 - 效果很好!
默认情况下,初始安装后的url / wiki / Wiki可用。您可以在配置文件中同时更改URL路径和密码。
享受! ?
您可能还需要检查其他模块。只需运行将它们添加到Zolinga
./bin/zolinga install --module=ID[,ID,...]例如
./bin/zolinga install --list
./bin/zolinga install --module=zolinga-cron,zolinga-db,zolinga-rms,zolinga-intl,zolinga-cmszolinga-cmszolinga-cronzolinga-dbzolinga-rmszolinga-commonszolinga-intl安装模块时,它将自动添加到modules目录中,并将其文档合并到Zolinga安装中的内置Zolinga Wiki文档中。