Etymologie: Dans la langue Chichewa de l'Afrique, le mot «zolinga» signifie «objectifs».
Table des matières
Je suis pleinement attaché à un seul projet, et ces composants - Fragework, Cron, le module de traduction, l'accès à la base de données, un CMS sans base de données et une gestion des droits simples - sont les blocs de construction vitaux nécessaires. Après deux mois d'efforts intenses et de dessin de vingt ans d'expérience, je pensais qu'il était approprié de redonner à la communauté open-source avant de plonger dans l'aspect source fermé du projet.
Vous vous demandez peut-être pourquoi ne pas opter pour une solution existante? Eh bien, le projet sur lequel je travaille devrait fonctionner pendant les 10 prochaines années. 90% du code n'a pas de parallèle dans les modules existants. Pour cette raison, il doit être à la fois minimaliste et immuable. Minimaliste car moins de fonctionnalités équivaut à moins de tête de maintenance et à moins de problèmes de mise à niveau. Immutable car il réduit considérablement le coût du maintien des modules.
Le problème avec tous les cadres populaires est leur pure popularité. Ils ont tendance à être inondés de besoins concurrents, d'idées et d'exigences, conduisant à un cycle perpétuel de rupture de compatibilité, d'ajout de fonctionnalités inutiles et de correction des bogues. Mon projet n'est pas destiné à être mis à niveau ou réécrit tous les deux ans, ce qui est la durée de vie moyenne d'une version majeure dans n'importe quel cadre populaire. Il doit fonctionner pendant 10 ans avec un investissement minimal. Travailler constamment sur l'application pour suivre la vaste liste de bugs fixes des fournisseurs, pour les fonctionnalités que vous n'utilisez même pas, n'est pas une solution réalisable.
C'est donc ainsi que ce projet minimaliste et au maximum immuable est devenu.
Il devait répondre aux critères suivants:
Permettez-moi de vous présenter Zolinga, un cadre PHP qui répond à tous ces critères.
Zolinga est un cadre PHP minimaliste et bien pensé. Il ne nécessite pas de base de données (bien que les modules puissent le faire). Il résume l'essence distillée de l'expérience pratique acquise au fil des années de développement d'applications Web. Il offre une API simple mais complète pour construire des applications robustes, efficaces et stables.
Il s'agit d'un ajout innovant au paysage du cadre PHP, donc je vous encourage à l'aborder avec un sens de l'aventure, bien qu'avec la prudence. Plongez et découvrez l'efficacité et la robustesse rationalisées que Zolinga offre.
Si vous en avez assez de solutions trop compliquées et étendues pour des problèmes simples et que vous êtes impatient d'explorer de nouvelles approches, Zolinga est pour vous. Que vous soyez un développeur PHP à n'importe quel niveau, Zolinga propose une alternative rafraîchissante.
Avec Zolinga, vous pouvez créer votre projet avec facilité, en vous concentrant sur le codage des fonctionnalités essentielles sans la charge des composants inutiles. La conception API minimaliste de Zolinga le rend parfait pour ceux qui préfèrent utiliser des fonctionnalités minimales ou sont impatients d'ajouter des composants minimalistes à leurs projets. Malgré son approche minimaliste, Zolinga est une plate-forme puissante capable de gérer même les projets les plus importants, offrant un potentiel de croissance indéfini.
Commencez petit et facile et grandissez avec votre projet à votre rythme dans n'importe quelle direction, grâce à la flexibilité et à l'évolutivité intelligentes de Zolinga.
Pour installer Zolinga, suivez ces étapes:
git clone https://github.com/webdevelopers-eu/zolinga.git Configurez votre serveur Web pour servir le répertoire public (voir la section Apache Bellow comme exemple). Alternativement, vous pouvez utiliser le serveur Web PHP intégré en exécutant le script suivant ./bin/zolinga --server à l'intérieur du répertoire Zolinga.
Accédez à l'URL en fonction de la façon dont vous avez commencé le serveur. Si vous avez couru ./bin/zolinga --server , suivez les instructions de la console. Si vous avez configuré votre serveur Web pour servir le répertoire public , vous savez quoi faire. Vous devez d'abord visiter le /wiki/ url. Le mot de passe par défaut de la page Wiki est ZOLINGA (duh!?). Le wiki Zolinga groupé est le bon endroit pour commencer à creuser plus profondément dans le cadre de Zolinga.
Si vous préférez tester un nouveau projet à l'intérieur de Docker, voici un guide d'installation rapide de 2 minutes pour extraire l'image PHP et exécuter le cadre Zolinga à l'intérieur d'un conteneur. ?
$ 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 --serverVisitez ensuite http: // localhost: 8888 dans votre navigateur.
Ceci est un exemple comment Apache sur Debian peut être configuré pour servir 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 apache2Visitez ensuite http: //zolinga.localhost dans votre navigateur.
Bien sûr, cela suppose que PHP est déjà installé sur votre système. Sinon, vous pouvez l'installer en exécutant les commandes suivantes:
apt install libapache2-mod-php8.2
a2enmod php8.2 Un module est un répertoire qui contient un fichier zolinga.json , qui décrit la fonctionnalité du module au système. Ce fichier spécifie les règles de script Autoload et les événements auxquels le module écoute. La section manifeste de l'auditeur vous permet de définir des gestionnaires d'événements qui répondent à divers événements système qui résultent de divers types de demandes, tels que HTTP, AJAX et la ligne de commande. Les événements spéciaux peuvent également instancier votre gestionnaire d'événements en tant que service système pour être directement accessible par un autre code via $api->{serviceName} Syntaxe pour une vitesse et une polyvalence maximales.
Chaque module contient un fichier zolinga.json qui décrit le module.
Exemple de fichier manifeste du module:
{
"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! ?? "
}
}
} Oui, comme vous le supposez, si vous envoyez un system:content à partir d'une origine distante, la méthode outputPage de la classe Server dans l' ExampleHelloWorld sera appelé.
use Zolinga System Events Event ;
( new Event ( ' system:content ' , Event:: ORIGIN_REMOTE ))-> dispatch ();C'est tout ce qu'il y a. À l'exception de quelques sucres de syntaxe facultatifs pour rendre le module manifeste plus facile à écrire et à lire, vous n'avez pas besoin de savoir rien de plus que ce qui est dans cet exemple. Vous êtes pratiquement l'expert de Zolinga maintenant!
Pour installer un nouveau module, exécutez la commande suivante:
./bin/zolinga install --module={ID}Exemple:
./bin/zolinga install --module=zolinga-cmsPour répertorier tous les modules disponibles, exécutez la commande suivante:
./bin/zolinga install --listZolinga est un système très extensible avec divers modules, dont certains peuvent être propriétaires avec leur documentation. Cela signifie qu'il n'y a pas de documentation en ligne complète et complète disponible. Cependant, contrairement à d'autres systèmes, Zolinga elle-même possède de vastes caractéristiques d'auto-documentation et un wiki intégré. Ce wiki affiche toute la documentation nécessaire pour votre installation spécifique, y compris tous les modules.
L'avantage est clair: chaque module transporte sa propre documentation, qui fusionne automatiquement avec le wiki tout-système lors de l'installation. Votre travail, vos modules et vos progrès ne restent visibles que pour vous et d'autres personnes avec votre logiciel installé. Vous ne verrez jamais de documentation pour les fonctionnalités que vous n'avez pas installées, en vous garantissant que vous avez toujours la bonne version de documentation correspondant à votre installation.
C'était difficile à mettre en œuvre, mais les résultats parlent d'eux-mêmes - cela fonctionne très bien!
Par défaut, le wiki est disponible sur l'URL / Wiki / lors de l'installation initiale. Vous pouvez modifier à la fois le chemin d'accès à l'URL et le mot de passe dans le fichier de configuration.
Apprécier! ?
Vous voudrez peut-être vérifier également d'autres modules. Ajoutez-les simplement à Zolinga en courant
./bin/zolinga install --module=ID[,ID,...]Par exemple
./bin/zolinga install --list
./bin/zolinga install --module=zolinga-cron,zolinga-db,zolinga-rms,zolinga-intl,zolinga-cmszolinga-cmszolinga-cronzolinga-dbzolinga-rmszolinga-commonszolinga-intl Lorsque vous installez un module, il sera automatiquement ajouté au répertoire modules et sa documentation sera fusionnée dans la documentation Wiki Zolinga intégrée dans votre installation Zolinga.