Cody

ody

Burger menu

Qu'est-ce que c'est ?

Cody est un framework destiné à la création du site web en PHP, Javascript, HTML et Less compatible Windows, Linux et Mac. Il permet de créer simplement et rapidement un site design et complet grâce à sa structure MVC. Et tout ça sans aucune installation, pratique pour développer sur une machine où l'on n'a pas accès au compte administrateur !

L'architecture Model View Controler apporte un cadre de travail propre travail propre alliant traitement, gestion de la base de données et affichage dynamique.

Il inclut quelques librairies comme la gestion des bases de données, l'autoloader, un système de routage et bien d'autres.

Liste des commandes

Pour la version 7.21.67.0.


help

Affiche la liste des commandes disponible.


api [-s|-a|-l] [*nom]

Ajoute, liste, ou supprime un module d'API avec le nom spécifié.


build

Construit le projet, minifie et compile les fichiers. Nécessite npm.


cd [*chemin]

Change le dossier courant ou affiche la liste des fichiers et des dossiers du dossier courant.


cls

Nettoie la console.


com [-s|-a|-l] [*nom]

Ajoute, liste, ou supprime un composant (controleur, vue, style, script) avec le nom spécifié.


dev

Active ou désactive le mode développeur (bêta-testeur).


bye

Quitte Cody en fermant le serveur PHP si il y en a un.


dl [url] [fichier]

Télécharge un fichier avec l'URL spécifiée.


exp

Ouvre le projet dans l'explorateur de fichiers.


lib [-s|-a|-l] [*nom]

Ajoute, liste, ou supprime une librairie (PHP, LESS et JavaScript).


ls

Affiche la liste des projets.


maj

Vérifie les mises à jour disponibles.


new [nom]

Créer un nouveau projet avec le nom spécifié puis défini le dossier courant.


obj [-s|-a|-l] [*nom]

Ajoute, liste, ou supprime un objet (classe DTO, classe DAO) avec le nom spécifié.


pkg [-t|-l|-s] [*nom]

Télécharge, liste ou supprime un package depuis le dépôt de Cody.


rep

Ouvre la dépôt GitHub de Cody.


run [-f]

Lance un serveur PHP et ouvre le projet dans le navigateur. Si l'option '-f' est ajouté, tous les processus PHP seront arrêté, sinon seul le processus démarrer par Cody sera arrêté.


stop [-f]

Arrête le serveur PHP. L'option '-f' arrête tous les processus PHP.


tes [-s|-a|-l] [*nom]

Ajoute, liste, ou supprime une classe de test unitaire.


tra [-s|-a|-l] [*nom]

Ajoute, liste, ou supprime un trait.


unit

Lance les tests unitaires.


vs

Ouvre le projet dans Visual Studio Code.

Diagramme projet

Lors de la création d'un nouveau projet un projet vierge sera créer, il contiendra toutes les librairies nécessaires ainsi que quelques composants et objets de base.

Exemple d'un diagramme d'un projet affichant une page d'accueil traitant des utilisateurs :

index.php
index....
global_before.js
global...
global_after.js
global...
base de données
base d...
utilisateur.php
(dao)
utilis...
utilisateur.php
(dto)
utilis...
vue.accueil.php
vue.ac...
script.accueil.js
script...
cont.accueil.php
cont.a...
router.php
routeu...
style.accueil.less
style....
theme.less
theme....
global.less
global...
Viewer does not support full SVG 1.1

Quelques précisions :

Système de routage

Pour les versions de PHP antérieures à la version 8 veuillez vous référer à la section package.

Inclus dans un projet vierge, le fichier de routage (route.php) permet d'appeler le\les bon(s) controleur(s). Pour ce faire il faut lui donner une adresse de route, puis une fonction anonyme comme ceci :

# Route vers la page d'accueil
r::add('/accueil', c\Accueil::class);

# Route vers la page introuvable
r::add('/404', c\Introuvable::class);

Vous pouvez également définir une route en cas de route introuvale :

# Route vers Introuvable
r::notfound('/404');

Et aussi définir une route par défaut si aucune route n'est demandée ou si aucune route pour un cas de route introuvable n'est définie :

# Route vers Accueil
r::default('/accueil');

Si aucune de ces deux routes n'est définie, le routeur utilisera la première route existante.

Configurer VSCode

Vous pouvez configurer Visual Studio Code afin d'y ajouter des raccourcis pour générer les balises de data binding.

Pour ce faire, ouvrez VSCode, cliquez sur l'engrenage, puis cliquez sur 'User Snippets' :

Engrenage

Puis recherchez le fichier JSON pour le balisage HTML :

Balisage

Pour terminer, ajouter y ceci :

"php": {
	"prefix": "php",
	"body": [
		"<?php $0 ?>"
	],
	"description": "php"
},

"pv": {
	"prefix": "pv",
	"body": [
		"<?= $0 ?>"
	],
	"description": "pv"
}

Ainsi, dès que vous entrez php ou pv puis que vous appuyez sur Entrer, la balise sera automatiquement créée et votre curseur sera placé au milieu.



Sur Mac OS.

Pour utiliser la commande vs, appuyez sur Cmd+Shift+P, puis tapez shell, ensuite choisissez la première option :

PATH

Packages

Via la commande pkg, vous pouvez télécharger des packages officiels. Pour télécharger le routeur supportant les versions de PHP antérieures a la version 8, vous devez :


Télécharger le nouveau routeur :

pkg -t Routeur-PHP-7.2


Sinon, via la commande dl, vous pouvez installer des packages développés par un tiers comme ceci :

dl https://raw.githubusercontent.com/TheRake66/Cody/main/documents/router.php __kernel/php/router.php

Autoloader de classe

Également inclus dans tout projet créer avec Cody, l'autoloader permet de charger au fur et à mesure les classes demandées. Pour la classe :

namespace Controller;
use Kernel\IO\Render;


class Accueil extends Render {

}

Il chargera les fichiers :

debug/app/accueil/cont.accueil.php

debug/app/accueil/vue.accueil.php

debug/app/accueil/style.accueil.less

debug/app/accueil/script.accueil.js

Licence

Licence MIT

Copyright © 2024 - Thibault BUSTOS (TheRake66)

Permission est accordée, sans frais, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le "Logiciel"), pour traiter dans le Logiciel sans restriction, y compris, sans limitation, les droits utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre copies du Logiciel et de permettre aux personnes auxquelles le Logiciel est fourni à cet effet, sous réserve des conditions suivantes :

L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans tous les des copies ou des parties substantielles du Logiciel.

LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS NON LIMITÉ AUX GARANTIES DE QUALITÉ MARCHANDE, APTITUDE A UN USAGE PARTICULIER ET NON CONTREFAÇON. EN AUCUN CAS, LE LES AUTEURS OU TITULAIRES DE DROITS D'AUTEUR SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, HORS OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES OPÉRATIONS DANS LE LOGICIEL.