Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Prise en main du Kult Engine

Par Théo SORRIAUX Publié le 10/01/2018 à 15:50:53 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

*Cet article fait suite à mon précédent article présentation du kult engine*

Bonjour à tous. Dans cet article je vais vous présenter la prise en main de mon framework PHP, le Kult Engine, disponible sur github. Il s'agit de la version 1.33.1 qui requière PHP 7

Téléchargement

Le téléchargement se fait sur github

Installation.

Deziper dans un dossier (ou cloner via git)

Configurer votre serveur web pour que html devienne la racine d'un nouveau site.

Ouvrir config.php et le modifier en conséquence A partir de ce point le Kult Engine est pret à tourner mais observons un peu son architecture.

Il se divise en 3 dossier et 1 fichier, config.php.

Ces trois dossiers sont Controller qui contient les controllers et le core du kult engine Model qui sert à héberger les classes qui seront automatiquement chargée. et www qui sert à la vue. Le Kult Engine respecte donc le model MVC, regardons plus en détail, le contenu de Controller.

  • controller/core qui contient les éléments du core. Ces elements sont eux même divisés, entre le dossier

    • controller/core/abst (abtrait) qui contient les classe abstraites

    • controller/core/imp2 (pour impt 2) qui est un clone de backup du dossier controller/impt/ dont je parlerais par la suite

    • controller/core/itfc (interface) qui contient les interfaces.

Dans cet article nous utiliseront les classes controller/core/text.class.php et controller/core/invoker.class.php.

  • controller/impt/ (implémentation) qui contient des controllers qui seront implementé et sont conçu pour etre réimplémentables. les fichiers dont le nom termine par .load.php sont include automatiquement Lui même contient

    • controller/impt/ctrl (controller) dont chaque fichier sera include par le kult engine

    • controller/impt/tplt (template) qui sert pour les templates dont je parlerais plus tard.

  • controller/kult/ qui contient des elements meta comme le nom de version ou le moteur de commande

  • controller/mods/ (modules) qui sert à contenir des controllers lourds qui peuvent etre invoquer facilement mais ne le sont pas automatiquement.

    • Il contient shop qui est le plugin de e commerce du kult engine

  • controller/optn qui contient des helpers

  • controller/vendor qui sert pour les ressources externes, chaque fichier de ce dossier est include, ce mechanisme ne fonctionne pas recursivement.

C'est tout pour notre petit tour de l'architecture du kult engine.

Index.php

Nous allons pouvoir passer à la création de notre première page avec le Kult Engine. Pour se faire nous n'allons pas commencer de zéro mais éditer www/index.php

<php 
include '../config.php'; // Alors en premier nous allons include config.php qui est dans le Kult Engine le seul fichier à include
// config.php est censé se  trouver au niveau de www/, index.php dans www ainsi le chemin relatif est ../config.php 
use kult_engine as k; // Il s'agit de l'espace de nom du Kult Engine, il n'en comporte qu'un seul kult_engine et peut s'abreger k par soucis de lisibilité, cette ligne est parfaitement optionnelle
k\invoker::require_basics(); // invoker est la classe statique qui permet  d'initialiser le kult engine. // Il s'agit d'une implementation de invokerFactory qui se trouve dans /controller/core/abst/controller.factory.php 
// require_basics peut aussi  accepter un array de string, qui sont les noms de dossier de modules présents dans controller/mods/ 
k\page::standardpage_head();
k\page::standardpage_header();
k\page::standardpage_body_begin(); // ici j'utilise controller/impt/page.load.php 
// il s'agit d'un controller basique  qui sert à afficher le html. 
echo k\text::get_text('hello'); //text est la classe statique qui permet l'affichage du texte et  l'i18n(internationalisation)
//Je le présenterais un peu plus lorsque nous  rajouterons du texte dans la page 
?>
<script>
var req = new ReqAjax("test");
req.send("/api/demo.ajax.php", function(call){ console.debug(call); })
//Ces lignes servent à faire la démonstration du fonctionnement de l'objet javascript ReqAjax et l'objet php Service
</script>
<?php
k\page::standardpage_body_end();
k\page::standardpage_footer();// ces lignes  servent à terminer la page html 

Modification

Comme promis nous allons enfin éditer cette page, nous allons rajouter du texte.

Pour ça il faut le rajouter dans controller/impt/lang.php il contient la fonction texts qui se présente sous cette forme :

function texts(){ 
	$array['fr']['hello'] =  'Salut'; 
	$array['en']['hello'] = 'Hello'; 
	$array['fr']['main_title'] = 'KULT  ENGINE'; 
	$array['en']['main_title'] = 'KULT ENGINE';
	return $array;
}

Les clés "fr" et "en" sont à spécifier dans config.php, n'oubliez pas non plus de spécifier une langue par défaut. Concernant les déclinaisons de type "fr_fr", "fr_be", si vous ne spécifiez pas précisément fr_be comme langue, si c'est la langue par défaut d'un utilisateur, elle sera interprétée comme "fr"

Nous allons ici pouvoir rajouter tous nos textes.

Ils vont être appelé par la classe statique text avec get_text k\text::get_text('hello', 'en'); Vous pouvez aussi forcer la langue en la spécifiant en second paramètre. text comporte aussi les fonctions get_lang qui retourne la langue la plus appropriée pour l'utilisateur ou sinon la langue par défaut de votre site.

Ainsi que get_true_lang() qui retourne la langue principale de l'utilisateur.

Templating

Intéressons nous aux solutions de templating offerte par le kult engine Alors nous allons creer le fichier /controller/impt/tplt/index.load.html

kt:!hello:! kod:!option:!

.load. est là pour que l'objet template charge le fichier. Je vais vous présenter toutes les balises offertes par l'outil de templating du kult engine.

  • kt:!texte:! kt sert pour faire un get_text

  • kc:!imptpath:! kc pour les constantes

  • ko:!optionnel:! Pour le texte dynamique, si le texte n'est pas fourni, le mot entre les balises reste

  • kod:!optionnel:! Pour le texte dynamique optionnel voué à disparaitre si pas fourni

  • Et finalement ktp, qui peut contenir un nom d'autre template.

Nous allons maintenant modifier /www/index.php

<?php
include '../config.php';
use kult_engine as k;
k\invoker::require_basics();
$d = new k\template(); #Nous allons creer un  objet template.
$d->load(); #Le faire charger automatiquement les  templates qui portent .load. dans leur nom echo
$d->write_to_template($d->_templates["index"],["option"=>"ceci est  optionel"]);
#write_to_template retourne la template chargée, et prend un array à index littéraire en paramètre optionnel.

Conclusion.

C'est tout pour la prise en main du Kult Engine, j'espère vous avoir convaincu de le manipuler.

Dans cet article nous avons vu l'installation et la configuration, les bases de son fonctionnement, la création de page, les outils de templating et d'i18n Dans de futur articles nous parlerons d'autres fonctionnalités (router,orm, webservice, hook, db local ...)

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels