MeliFramework
-
<p>Bonjour, je rédige ce sujet suite à<iframe data-embed-src="<base_url>/topic/937-projet-commun-cr%C3%A9ation-dun-framework/?do=embed" data-embedcontent="" frameborder="0" src="//melinyel.net/applications/core/interface/js/spacer.png"></iframe> lancée par Soulalex.</p><p> </p><p>L'idée serait de faire un framework PHP réalisé par les membres de Melinyel.</p><p>Ce sujet a pour but de définir clairement nos objectifs et les participants. Si vous voulez participer au développement de ce framework, même un petit peu, précisez-le à la suite de ce message :</p><p> </p><p><strong>Caractéristiques (à débattre) :</strong></p><ul><li><strong>Langage</strong><br/>- PHP5 / MySQL (pour les fonctionnalités).<br/>- HTML5 / CSS3 (pour le web design).<br/> </li><li>Repo GitHub : <a data-ipb="nomediaparse" href="https://github.com/Melinyel-dev/MeliFramework" rel="external nofollow">https://github.com/Melinyel-dev/MeliFramework</a> (vide pour l'instant).</li><li>Site web : <a href="http://meliframework.melinyel.net/" rel="external nofollow">http://meliframework.melinyel.net/</a></li></ul><p> </p><p><strong>Fonctionnalités recherchées (n'hésitez surtout pas à en proposer) : </strong></p><ul><li>Interaction très simplifiée mais sécurisées avec MySQL.</li><li>Gestion des fichiers (upload / download / rename / déplacements)</li><li>Un ORM</li><li>Une gestion dynamique des URLs</li><li>Gérer les appels RESTful</li><li>Évidement adopter une construction MVC</li><li>Pouvoir configurer et gérer différents environnements (test, dev, beta, prod, ....)</li><li>Gérer et capturer les erreurs et exceptions côté serveur (librairie de type Whoops)</li><li>Adopter une construction permettant l'exécution de routines évènementielles</li><li>Un système de profiling et de benchmarking</li><li>Système avancé de gestion de mailing (?)</li></ul>
-
<p>Ce que je suggère pour ma part, comme fonctions :</p>
<ul><li>Interaction très simplifiée mais sécurisées avec MySQL.</li>
<li>Gestion des fichiers (upload / download / rename / déplacements)</li>
</ul><p>
Donnez votre avis sur le projet, les fonctionnalités, ce que vous voulez voir et si vous n'êtes pas d'accord avec une fonction proposée faites-le savoir.
</p> -
<p>Alors moi je vais proposer pas mal de fonctionnalités de fond :</p>
<ul><li>Un ORM</li>
<li>Une gestion dynamique des URLs</li>
<li>Gérer les appels RESTful</li>
<li>Évidement adopter une construction MVC</li>
<li>Pouvoir configurer et gérer différents environnements (test, dev, beta, prod, ....)</li>
<li>Gérer et capturer les erreurs et exceptions côté serveur (librairie de type Whoops)</li>
<li>Adopter une construction permettant l'exécution de routines évènementielles</li>
<li>Un système de profiling et de benchmarking</li>
</ul><p>Et si je vous dit que tout ça, j'ai déjà en stock ?</p> -
<p>Ah, là ça peut être clairement intéressant si tu as déjà tout ça !
<br/>
Tu vas encore nous faire culpabiliser, avec ta participation, héhé.<br/>
J'ai ajouté une fonctionnalité mailing, l'idée serait de voir si on peut interagir facilement avec un serveur mail pour récuper/lister/envoyer des mails (c'est une suggestion).</p> -
<p>Avant de commencer, il faut qu'on parte sur de bonnes bases. Pour cela il nous faut organiser correctement nos dossiers pour qu'on puisse s'y retrouver facilement. Je propose quelque chose comme ça (à compléter) :</p>
<ul><li>System : Contient tous les scripts et bibliothèques pour que le framework fonctionne correctement. L'utilisateur n'a pas besoin de toucher à ce dossier.</li>
<li>Sources : Contient tous les scripts créés par l'utilisateur : ses modules, ses entitiés, ....</li>
<li>Web : Contient les ressources du site web (css, police d'écriture, images, ...).</li>
<li>Config : Contient les configurations du framework, l'utilisateur peut les modifier.</li>
</ul><p> </p>
<p>Voila ma proposition n'hésitez pas à votre tour d'en émettre une.</p> -
<blockquote class="ipsQuote" data-cite="Abraham" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="9797" data-ipsquote-contentid="951" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1406542207" data-ipsquote-username="Abraham"><div>
<div>
<p>Utilisation d'une librairie externe pour la partie CSS / HTML ? Du genre Bootstrap ou Foundation. </p>
</div>
</div></blockquote>
<p> </p>
<p>Il me semble que Soulalex voulait justement faire tout en partant de 0. Après c'est à débattre afin de savoir si la majorité préfère avec ou sans Bootstrap.
</p>
<p></p><blockquote class="ipsQuote" data-cite="Soulalex" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="9798" data-ipsquote-contentid="951" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1406543725" data-ipsquote-username="Soulalex"><div>
<div>
<p>Avant de commencer, il faut qu'on parte sur de bonnes bases. Pour cela il nous faut organiser correctement nos dossiers pour qu'on puisse s'y retrouver facilement. Je propose quelque chose comme ça (à compléter) :</p>
<ul><li>System : Contient tous les scripts et bibliothèques pour que le framework fonctionne correctement. L'utilisateur n'a pas besoin de toucher à ce dossier.</li>
<li>Sources : Contient tous les scripts créés par l'utilisateur : ses modules, ses entitiés, ....</li>
<li>Web : Contient les ressources du site web (css, police d'écriture, images, ...).</li>
<li>Config : Contient les configurations du framework, l'utilisateur peut les modifier.</li>
</ul><p> </p>
<p>Voila ma proposition n'hésitez pas à votre tour d'en émettre une.</p>
</div>
</div></blockquote>
<p> </p>
<p>Pour ma part, cette organisation me convient, à voir si d'autres y trouvent quelque chose à redire.
</p> -
<blockquote class="ipsQuote" data-cite="Soulalex" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="9798" data-ipsquote-contentid="951" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1406543725" data-ipsquote-username="Soulalex"><div>
<div>
<p>Avant de commencer, il faut qu'on parte sur de bonnes bases. Pour cela il nous faut organiser correctement nos dossiers pour qu'on puisse s'y retrouver facilement. Je propose quelque chose comme ça (à compléter) :</p>
<ul><li>System : Contient tous les scripts et bibliothèques pour que le framework fonctionne correctement. L'utilisateur n'a pas besoin de toucher à ce dossier.</li>
<li>Sources : Contient tous les scripts créés par l'utilisateur : ses modules, ses entitiés, ....</li>
<li>Web : Contient les ressources du site web (css, police d'écriture, images, ...).</li>
<li>Config : Contient les configurations du framework, l'utilisateur peut les modifier.</li>
</ul><p> </p>
<p>Voila ma proposition n'hésitez pas à votre tour d'en émettre une.</p>
</div>
</div></blockquote>
<p> </p>
<p>Ca me convient et même ca ressemble beaucoup à mon organisation personnelle :</p>
<ul><li>app : tout le code applicatif (modèles, controllers, vues, helpers, ...)</li>
<li>config : les fichiers de configurations</li>
<li>system : le code du framework (Router, ORM, ...)</li>
<li>webroot : la racine du virtual host avec toutes les ressources (css, js, images, ...)</li>
</ul> -
<p>La gestion des formulaires avancés serait la bienvenue, non ?
</p> -
<p>Ce qu'on peut faire c'est un système d'application (pour mieux organiser notre site. Par exemple, on va avoir le frontend et le backend). Ce qui donne quelque chose comme ça si on reprend arborescence :</p>
<ul><li>Sources
<ul><li>Applications : Une application sera une partie du site
<ul><li>Modules : Contient les contrôleurs et les vues.</li>
<li>Ressources : Contient les configurations de l'application et d'autres ressources comme un layout particulier.</li>
</ul></li><li>Models : Entités de la base de données et managers.</li>
</ul></li>
<li>Config</li>
<li>System
<ul><li>Core</li>
<li>Libraries</li>
</ul></li><li>Web</li>
</ul><p> </p>
<p>Bon voilà je trouve que c'est un peu bancal donc n'hésitez pas à reproposer des idées.</p>
<p></p><blockquote class="ipsQuote" data-cite="Eloha" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="9809" data-ipsquote-contentid="951" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1406552569" data-ipsquote-username="Eloha"><div>
<div>
<p>La gestion des formulaires avancés serait la bienvenue, non ?
</p>
</div>
</div></blockquote>
<p>La gestion des formulaires viendra plus tard
</p> -
<p>Je propose aussi une arborescence complète, a commenter :</p>
<ul><li>app : dossier des applications
<ul><li>controllers : Ensemble des controllers
<ul><li>Un dossier par namespace contenant chacun les controllers</li>
</ul></li><li>helpers : Ensemble des fichiers avec des fonctions d'aides</li>
<li>hooks : Ensemble des fonctions à appel évènementiel (par ex: un truc à faire avant chaque appel de page)</li>
<li>libraries : Toutes les ressources et librairies externes</li>
<li>models : Tous les modèles utilisateurs + ceux pré-intégré
<ul><li>mapping : les fichiers de mapping BDD des modèles (gestion de l'ORM)</li>
</ul></li><li>views : Contient toutes les vues
<ul><li>Plus un dossier par controller qui contient les vues du controller</li>
<li>errors : Contient tous les affichages d'erreurs (la page pour un 404, une erreur 500, ...)</li>
<li>layouts : Contient tous les layouts</li>
</ul></li></ul></li>
<li>config : Tous les fichiers de configuration (BDD, site, environnement)</li>
<li>system : la base du framework
<ul><li>core : le noyau et toute la gestion de base</li>
<li>helpers : toutes les fonctionnalités annexes de bas niveau (gestion du cache, des sessions, des inputs, des cookies, ...)</li>
<li>librairies : Toutes les librairies internes (mais facultatives) au noyau (par ex: gestion des erreurs, benchmarking)</li>
<li>orm : ben... l'ORM</li>
</ul></li><li>webroot : la racine du site
<ul><li>Les sous dossiers en fonctions des besoins (css, js, images, ...)</li>
</ul></li></ul><p> </p>
<p>Dites-moi ce que vous en pensez !</p> -
<p>Sinon...est-il nécessaire de faire connaître le projet sur divers site dés maintenant, si certains ne connaissant pas Melinyel ( Eh ben...il serait temps de se bouger !
) veulent quand même participé à ce projet ?
</p> -
<blockquote class="ipsQuote" data-cite="Soulalex" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="9858" data-ipsquote-contentid="951" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1406638176" data-ipsquote-username="Soulalex"><div>
<div>
<p>S'ils veulent participer au projet, il faudra qu'ils s'inscrivent sur le forum pour suivre l'actualité du développement du framework. Après on empêche personne de proposer des scripts.</p>
</div>
</div></blockquote>
<p> </p>
<p>Absolument
</p>
<p>C'est encore une ébauche, il faut attendre de voir qui est vraiment disposé à faire ce framework. Tu connais des personnes qui ne sont pas sur Melinyel mais qui sont intéressées par ce projet, Eloha ?</p> -
<p>Voici un diagramme UML du framework dans les grandes lignes.</p>
<ul><li>La classe Kernel gère tout dans le framework.</li>
<li>La classe Application gère l'application.</li>
<li>La classe Controller gère les contrôleurs.</li>
<li>La classe Page gère la page (génération, ...).</li>
<li>La classe Router gère les routes.</li>
</ul><p><a class="attach-link" href="/assets/uploads/ips/monthly_07_2014/post-5-0-43130000-1406651778.png"><img alt="post-5-0-43130000-1406651778_thumb.png" src="/assets/uploads/ips/monthly_07_2014/post-5-0-43130000-1406651778_thumb.png" width="100"/></a></p>
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login
</p>