Avancement

Depuis 2 jours, le code du bootstrap est profondément remanié pour intégrer la résolution d’un graphe de relations de mise à jour des objets et surtout l’auto déploiement répliqué d’un code. Il intègre une version allégée de la librairie nebule indispensable à son fonctionnement.

L’interpréteur php ne permet pas (d’après mes essais) d’appeler du code php via la fonction include() si le fichier demandé n’a pas l’extension .php . Il n’est donc pas possible en l’état de charger un objet comme code php puisqu’un objet n’a pas d’extension. Ça n’a pas de sens pour un objet de l’affubler d’une extension. La méthode la plus fiable de typer un objet est le type mime correspondant à son contenu réel et non une simple extension. Maintenant, nebule attribue un type mime à un objet par un lien, mais cette attribution est signée et peut être multiple.
Cependant, si il n’est pas possible d’inclure un code php depuis un objet, il est possible de faire appel à du code php toujours via la fonction include() depuis un emplacement web (http). Cela fonctionne si on modifie les options qui l’autorise dans php, à savoir allow_url_fopen et allow_url_include. Cela fonctionne aussi, mais à vérifier, parce que le contenu de l’objet est transmit avec son type mime par le serveur web. Le type mime transmit avec l’objet est justement déduit d’un lien de cet objet.
Pour éviter l’inclusion d’un code non local et donc potentiellement dangereux, le lien web fait systématiquement référence à http://localhost/o/objet avec ‘objet‘ un objet nebule forcément présent et avec des liens validés par l’entité bachue ou l’entité locale, exclusivement.

Le code du bootstrap inclut maintenant la résolution du graphe des mises à jours de la librairie nebule, et charge cette librairie. Elle est donc chargée par défaut même si l’application (sylabe par défaut) ne l’utilise pas. Elle ne remplace pas le minimum nécessaire de fonctions nebule directement intégrées dans le bootstrap, en version allégées, et nécessaire au fonctionnement du bootstrap. Mais cette inclusion de la librairie complète à postériori ouvre des possibilités plus élaborées.

Le code du bootstrap ne sait pas encore aller chercher tout seul auprès de l’entité bachue les dernières version des codes de nebule et sylabe. Mais les fonctions allégées de nebule qu’il embarque si normalement capable de le faire. C’est juste une question de code à ajouter en cas d’absence d’objet comme lors d’une nouvelle installation.

Le bootstrap étant capable de trouver la dernière version de la librairie nebule et de la charger, et de trouver la dernière version du code sylabe et de le charger, leur présence sous forme de fichier n’est plus nécessaire. Les derniers essais ont été réalisés avec succès avec uniquement le bootstrap présent sous forme de fichier et donc en ayant volontairement supprimé les fichiers lib_nebule.php et sylabe.php. Ces essais ont montré aussi que bien qu’il soit possible de suivre les liens de mises à jours des anciennes versions de sylabe, leur exécution n’est souvent plus possible par ce biais puisqu’ils essaient de charger directement la librairie nebule par le nom de fichier…

Ces derniers développements ne sont pas encore en ligne parce que cela implique des modifications au niveau du serveur Apache pour chaque instance de sylabe. A venir très prochainement donc, et avec une nouvelle doc d’installation…