Edit : Je suis en train de retravaillé le framework en ajoutant un système de documentation grâce à phpDoc et des tests unitaires grâce à phpunit. Le framework sera donc plus simple à prendre un main pour quelqu'un d'extérieur. (je vais essayer de rajouter des petites fonctionnalités au passage)

Bonjour à tout le monde !

J'ai posté exactement le même message sur le forum d'openclassrooms mais je souhaite aussi partager mon projet avec vous.

Je suis Alexis, étudiant en 3ème de license de maths et d'informatiques à Angers à partir de septembre. Je développe en amateur et je me forme sur les langages web depuis plus de 7 ans grâce à plusieurs sites communautaires dont le SdZ devenu openclassrooms et grafikart. Je ne suis pas là pour vous raconter ma vie mais pour vous présenter un projet sur lequel j'ai travaillé depuis le début de l'année et qui me tient à coeur.

Je suis heureux de vous présenter la v1.0 d'Avelow.

Avelow est un framework 100% français permettant le développement rapide d'application web. Pour le back-end, il est développé en PHP et utilise Slim comme base pour le routing. Pour le front-end, AngularJs est utilisé pour simplifier la communication avec le back-end.

En savoir plus sur le projet

Après avoir découvert AngularJs, j'ai voulu l'essayer. Le problème est la gestion des données et de leur stockage.

Comment les stocker, les modifier, les récupérer, les supprimer ?

Après quelques recheches, une API rest semble idéale.

Mais où trouver une API rest simple à mettre en place et rapide à configurer ?

Nul part. Symfony avec un bundle externe, trop compliqué pour l'amateur que je suis. Les autres framework, pareil et en plus, il faut créer toutes les requêtes pour accèder à la base de données pour chaque entité.

J'ai donc commencé à développer mon petit framework maison. Et en 5 mois, je suis passé du petit framework maison à un framework rapide, simple et complet.

Généralités et avancement

Aujourd'hui, Avelow possède différentes fonctionnalités :

  • Génération des fichiers de base pour la déclaration et la configuration d'une nouvelle entité via le terminal.
  • Génération de la base de données via le terminal.
  • Un gestion des entités entièrement automatisée une fois la configuration terminée.
  • Un module AngularJs permettant de communiqué avec aisance entre le front-end et le back-end.
  • Un site officiel avec une documentation complète.
Objectif

Le framework est open source et gratuit. L'objectif principal est de proposer le framework à d'autres développeurs pour qu'ils l'essayent, le testent, l'adoptent et l'améliorent !

Le projet et son originalité

Un framework 100% made in France avec un documentation écrite entièrement en français et le tout gratuitement et pour tout le monde !

Le petit plus

Avelow.fr | Github


11 réponses


Salut,

Je n'ai pas encore testé. Je vais le faire (faut que je regarde Angular avant...).

Premier truc : l'installation, tu pourrais faire beaucoup plus simple : mettre le fw sur packagist pour permettre de faire un simple composer create-project avelow/avelow. Plus simple que Dézippez un fichier et tapez une unique commande dans le terminal..

Bonsoir.
J'ai jeté un œil vite fait et il y a une chose que je ne comprends pas.
Pour l'installation, il faut télécharger le zip, le dézipper, puis faire un composer install.
Vu qu'il y a l'utilisation de Composer pour l'installation du Framework, pourquoi ne pas faire en sorte de l'installer en faisant juste par exemple un composer create-project avelow/avelow ProjectName, puis faire si nécessaire un composer installdans le dossier du projet ?
Ce qui permettrait de télécharger directement le projet sans avoir nécessairement besoin d'aller sur GitHub pour télécharger l'archive, puis de la dézipper.
À utiliser Composer pour le Framework, autant utiliser les avantages de Composer à son maximum, non ?

Forever aura été plus rapide que moi. :)

Avelow
Auteur

Merci pour le conseil, je ne savais pas spécialement comment fonctionnait packagist (je l'avais même oublié ^^')

Je viens de me renseigner et au final, c'est simple à utiliser ! Je viens donc de mettre à jour le site et l'utilisation de create-project est maintenant disponible.

Une chose, aussi, pour utiliser ton framework un doc dev serais pas, tu devrais revoir tes commentaire pour générer la PHPDoc ca seras plus simple pour les explication, tu peut générer des templates sympa en plus avec phpdocumentor et du coup ben t'as une vrai doc developpeur cool

Avelow
Auteur

J'ai prévu retravailler la documentation prochainement. Je voulais présenter le projet avec une documentation (que j'ai fait un peu vite mais c'est mieux que rien). Après le framework n'est pas très compliqué du côté AngularJs et la doc déjà fait rend le php accessible et utilisable, c'est un peu un solution de secours !

Une chose, aussi, pour utiliser ton framework un doc dev serais pas, tu devrais revoir tes commentaire pour générer la PHPDoc ca seras plus simple pour les explication, tu peut générer des templates sympa en plus avec phpdocumentor et du coup ben t'as une vrai doc developpeur cool

Je ne pense pas qu'une simple doc généré soit suffisant. Il faut aussi, au minimum, un doc pour installer, bien débuter, etc.

Oui, mais la je parle uniquement du code, le commentaire du code en lui meme est tout moche ^^ ( c'est pas mechant hein avelow ) un petit coup de

/**
 * description: c'est une desscrition
 *
 *
 * @param sting id 
 */

plutos que

// c'est une description 
// et une string en parametre

c'est deja beaucoup mieux

D'ailleurs, la doc est ici. Je te conseille de tout lire.

Un exemple :

/**
 * Description courte ici
 * 
 * Description longue ici.
 * Elle peut faire plusieurs lignes.
 * Elle peut inclure du **Markdown**.
 *
 * @param string $id Description du paramètre ici
 * @return string Description de la valeur de retour
 */

Tout est optionel, mais le plus souvent, il y a la description courte, les paramètres, et la valeur de retout. La doc précise aussi que tu peux utiliser du Markdown dans les différentes descriptions (inline pour la description courte, inline+multiline pour la description longue et inline pour le description de variable).

Normalement, on utilise l'anglais dans les docblocks pour pouvoir être compris par le plus grand nombre, mais comme ton projet est 100% français...

Un bon éditeur peux te générer le machin tout seul (pas les descriptions, mais les params, le return et les @throws).

Avelow
Auteur

Je n'ai absolument pas travaillé les commentaires du projet. Je les avais écris pour comprendre ce que je faisais ! Je visais seulement un objectif fonctionnel : je voulais que tout fonctionne.
Dans la prochaine version, les dossiers seront réorganisé pour laisser seulement accessible les fichiers qui doivent l'être, les commenter proprement et mettre les autres dans un dossier vendor.

En tout cas merci pour les conseils qui me permettrons d'améliorer Avelow !

Avelow
Auteur

Je suis en train de travailler avec mon framework pour un projet, et je rencontre encore des petites erreurs que je corrige au fur et à mesure, pour l'instant il s'agit plus d'une beta d'une framework, d'ici un ou deux mois, il devrait être beaucoup plus fonctionnel !

j'ai commencé a lire la doc, cela m'a l'air prometteur. je pense y jeter un oeuil dans les jours a venir.