詞源:在非洲的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文檔中。