語源:アフリカのチチェワ語では、「ゾリンガ」という言葉は「目標」を意味します。
目次
私は単一のプロジェクトに完全にコミットしています。これらのコンポーネント(フレームワーク、クロン、翻訳モジュール、データベースアクセス、データベースレスCMS、および単純な権利管理)は、それに必要な重要なビルディングブロックです。 2か月の激しい努力と20年の経験からの描画の後、私はプロジェクトのクローズドソースの側面を掘り下げる前に、オープンソースコミュニティに還元するのにふさわしいと感じました。
既存のソリューションを選んでみませんか?さて、私が取り組んでいるプロジェクトは、今後10年間実行されると予想されています。コードの90%は、既存のモジュールに類似点がありません。そのため、ミニマルで不変の両方である必要があります。メンテナンスの頭痛が少なく、アップグレードの問題が少ないため、ミニマルな機能が少ないためです。モジュールを維持するコストを大幅に削減するため、不変です。
すべての人気のあるフレームワークの問題は、その人気が非常に人気です。彼らは、競合するニーズ、アイデア、および要件が浸水する傾向があり、互換性を破り、不必要な機能を追加し、バグを修正する絶え間ないサイクルにつながります。私のプロジェクトは、2年ごとにアップグレードまたは書き直されることを意図したものではありません。これは、人気のあるフレームワークでの主要なリリースの平均寿命です。最小限の投資で10年間ストライトを実行する必要があります。ベンダーからの固定バグの広範なリストに追いつくために、アプリに常に取り組んでいます。使用しない機能については、実行可能なソリューションではありません。
だから、それがこのミニマルで最大の不変のプロジェクトになった理由です。
次の基準を満たす必要がありました。
これらすべての基準を満たすPHPフレームワークであるZolingaを紹介します。
Zolingaは、ミニマリストでよく考えられたPHPフレームワークです。データベースは必要ありません(モジュールはそうかもしれませんが)。これは、長年のWebアプリケーションの開発にわたって得られた実践的な経験の蒸留の本質をカプセル化します。堅牢で効率的で安定したアプリケーションを構築するためのシンプルでありながら包括的なAPIを提供します。
これは、PHPフレームワークのランドスケープへの革新的な追加であるため、注意が必要ですが、冒険の感覚でアプローチすることをお勧めします。 Zolingaが提供する合理化された効率と堅牢性を飛び込み、発見してください。
単純な問題に対する複製された広範なソリューションにうんざりしていて、新しいアプローチを探求したいと思っている場合、Zolingaはあなたのためです。どんなレベルのPHP開発者でも、Zolingaはさわやかな代替品を提供しています。
Zolingaを使用すると、不必要なコンポーネントの負担なしに重要な機能をコーディングすることに焦点を当て、プロジェクトを簡単に作成できます。 ZolingaのミニマリストAPIデザインにより、ミニマルな機能を使用することを好む人や、プロジェクトにミニマルなコンポーネントを追加したい人に最適です。ミニマリストのアプローチにもかかわらず、Zolingaは最大のプロジェクトでさえ処理できる強力なプラットフォームであり、無期限の成長の可能性を提供します。
Zolingaのスマートな柔軟性とスケーラビリティのおかげで、小さくて簡単に始めて、プロジェクトを自分のペースで自分のペースで成長させます。
Zolingaをインストールするには、次の手順に従ってください。
git clone https://github.com/webdevelopers-eu/zolinga.git publicディレクトリを提供するようにWebサーバーを構成します(例としてApache Bellowを参照してください)。または、次のスクリプト./bin/zolinga --serverを実行して、組み込みのPHP Webサーバーを使用できます。
サーバーの開始方法に応じて、URLに移動します。 ./bin/zolinga --serverコンソールの指示に従ってください。 publicディレクトリを提供するようにWebサーバーを構成した場合、何をすべきかがわかります。最初に/wiki/ urlにアクセスする必要があります。 WikiページのデフォルトパスワードはZOLINGA (duh!?)です。バンドルされたZolinga Wikiは、Zolingaのフレームワークをより深く掘り始めるのに最適な場所です。
Docker内で新しいプロジェクトをテストすることを好む場合は、PHP画像をプルしてZolingaフレームワークをコンテナ内で実行するための2分間のインストールガイドを紹介します。 ?
$ 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ファイルを含むディレクトリです。このファイルは、スクリプトAutoloadルールとモジュールが耳を傾けるイベントを指定します。リスナーマニフェストセクションでは、さまざまなシステムイベントに応答するイベントハンドラーを定義し、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をディスパッチすると、 ExampleHelloWorldネームスペースのServerクラスのoutputPageメソッドが呼び出されます。
use Zolinga System Events Event ;
( new Event ( ' system:content ' , Event:: ORIGIN_REMOTE ))-> dispatch ();これがすべてです。モジュールのマニフェストを書きや読みやすくするためのいくつかのオプションの構文糖を除いて、この例にあるもの以上のことを知る必要はありません。あなたは実質的にゾリンガの専門家です!
新しいモジュールをインストールするには、次のコマンドを実行します。
./bin/zolinga install --module={ID}例:
./bin/zolinga install --module=zolinga-cms利用可能なすべてのモジュールをリストするには、次のコマンドを実行します。
./bin/zolinga install --listZolingaは、さまざまなモジュールを備えた非常に拡張可能なシステムであり、その一部はドキュメントとともに独自のものである可能性があります。これは、利用可能な単一の包括的なオンラインドキュメントがないことを意味します。ただし、他のシステムとは異なり、Zolinga自体は、広範な自己文書化の特徴と組み込みのWikiを誇っています。このWikiは、すべてのモジュールを含む特定のインストールに必要なすべてのドキュメントを表示します。
利点は明確です。各モジュールには独自のドキュメントが搭載されており、インストール時にオールシステムWikiと自動的にマージされます。あなたの仕事、モジュール、および進捗状況は、あなたのソフトウェアがインストールされているあなたと他の人にのみ目に見えるものです。インストールしていない機能のドキュメントが表示されることはありません。インストールに一致する適切なドキュメントバージョンが常にあることを確認できます。
実装するのは困難でしたが、結果はそれ自体を物語っています。
デフォルトでは、Wikiは初期インストール時にURL / 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-commonsが含まれていますzolinga-intlモジュールをインストールすると、 modulesディレクトリに自動的に追加され、そのドキュメントは、Zolingaのインストールのすぐに組み込まれたZolinga Wikiドキュメントに統合されます。