MeliFramework
-
Je propose aussi une arborescence complète, a commenter :
- app : dossier des applications
- controllers : Ensemble des controllers
- Un dossier par namespace contenant chacun les controllers
- helpers : Ensemble des fichiers avec des fonctions d'aides
- hooks : Ensemble des fonctions à appel évènementiel (par ex: un truc à faire avant chaque appel de page)
- libraries : Toutes les ressources et librairies externes
- models : Tous les modèles utilisateurs + ceux pré-intégré
- mapping : les fichiers de mapping BDD des modèles (gestion de l'ORM)
- views : Contient toutes les vues
- Plus un dossier par controller qui contient les vues du controller
- errors : Contient tous les affichages d'erreurs (la page pour un 404, une erreur 500, ...)
- layouts : Contient tous les layouts
- controllers : Ensemble des controllers
- config : Tous les fichiers de configuration (BDD, site, environnement)
- system : la base du framework
- core : le noyau et toute la gestion de base
- helpers : toutes les fonctionnalités annexes de bas niveau (gestion du cache, des sessions, des inputs, des cookies, ...)
- librairies : Toutes les librairies internes (mais facultatives) au noyau (par ex: gestion des erreurs, benchmarking)
- orm : ben... l'ORM
- webroot : la racine du site
- Les sous dossiers en fonctions des besoins (css, js, images, ...)
Dites-moi ce que vous en pensez !
- app : dossier des applications
-
J'aime bien cette arborescence là mais au niveau des applications ça va être vite le bordel.
-
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 ? 
-
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.
-
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.
Absolument

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 ?
-
-
lors du téléchargement je suis pour la génération d'une clé unique qui sera mise dans certains fichier pour gérer différentes choses et faire un contrôle contre les failles CSRF si je me trompes pas encore de nom x')
-
Voici un diagramme UML du framework dans les grandes lignes.
- La classe Kernel gère tout dans le framework.
- La classe Application gère l'application.
- La classe Controller gère les contrôleurs.
- La classe Page gère la page (génération, ...).
- La classe Router gère les routes.
[diag_uml_meliframework_rev1.PNG](<base_url>/index.php?app=core&module=attach§ion=attach&attach_rel_module=post&attach_id=170)
C'est pas un peu tôt pour commencer à faire de l'UML, alors qu'on ne sait même pas ce qu'il va devoir faire ce framework ni comment ?
-
Justement non, autant faire étape par étape pour que chacune soit bien réalisée. Donc la première étape sera de réaliser toute la base du site (les fonctions vraiment de base) ainsi que la gestion des applications, des contrôleurs, de la page, ...
Si on commence à intégrer beaucoup de choses à la fois on ne va pas s'en sortir. On va essayer de faire quelque chose d'assez modulable pour qu'on puisse intégrer justement par la suite tous les composants dont on aura besoin (session, gestion des DB, ...).
Et l'avantage de faire un diagramme c'est justement de définir comment va procéder le site pour générer demandée (mais j'avoue qu'il est très mal fait ^^). Après je ne vois pas trop ce que tu veux dire par "ce qu'il devra faire", comme tous les framework il devra offrir à l'utilisateur de nombreux outils pour concevoir son site web et ce le plus simplement possible.
-
C'est très bien de faire un diagramme, et il faudra en faire certainement plus d'un... mais je vais expliquer un peu plus.
On est entrain de concevoir quelque chose de complexe dont on ne sait pas du tout comment il devra fonctionner. Et cela, au point que l'architecture de base puisse être différente.
Quelques exemple, le framework est construit de manière unifié, donc tous les modules de base (Router, ORM, Parser, Controllers) peuvent être directement intégré. Ou alors, il sera construit de manière entièrement modulaire, dans ce cas l'architecture devra pouvoir se séparer de certains éléments.
Donc pour ce qui est de formaliser des concepts, je pense que c'est très prématuré, vu que ces concepts non pas été définis.
Si on veux faire un framework qui sert a quelque chose et soit facilement utilisable pas un maximum de développeurs, il ne suffit pas de se dire qu'on va concevoir un truc qui va générer des pages et pour le reste on rajoutera des modules plus ou moins autour. C'est un tout à concevoir.
Pour cela, en principe, on part d'un ou plusieurs besoins et on va vers un ou plusieurs objectifs clairement définis.
Je vais illustrer tout ça par quelques propositions d'objectifs, de questionnements :
- Offrir une architecture permettant d'intégrer facilement des modules externes (cela IMPOSE de prévoir que des modules inconnus seront intégré)
- Ou offrir un ensemble de fonctionnalités de base de création et de gestion de site (dans ce cas, les modules peuvent être directement rattaché et intégré)
- On peut également imaginer un mix des deux
- Est-ce que la gestion du frontend est prévu à la base (intégration directe d'un système de layout, de vues, templates, de cache, ...) ou est-il considéré comme un module extérieur ?
- L'ORM est-il intégré de base ? ou le dev pourra choisir celui qui lui convient le mieux ? On développement le notre ? Selon quelles bases ? ...
- Dans quelle mesure le framework sera configurable ? (cela impose de prévoir ou non des modules de gestions de confiugration plus ou moins avancés)
- Du côté sécurité, comment le framework devra réagir aux multiples attaques (appel de code direct, URL mal formaté, flood, bruteforce, injection, ...) ?
D’expérience, sur un projet de cet envergure, plus on planifie de chose AVANT de concevoir la moindre chose de technique, mieux en s'en sortira après. Le principal ennemi d'un projet de dev de grande taille, avec de multiple participant, c'est les rajouts en court de route qui sont fait "comme on peut". On gagnera beaucoup de temps de développement en se cassant la tête maintenant à prévoir un maximum de possibilités.
Pour résumé ce que je pense du diagramme, c'est que oui, il est logique, oui il fonctionne, mais est-ce que c'est de ca qu'on a besoin ? Si oui, c'est pour répondre à quel besoin, sinon il est inutile voire pire... faux.
-
C'est la première fois que je lance un projet de cette envergure donc je ne sais pas trop comment m'y prendre. Je vais m'organiser pour faire au mieux

-
Pour ma part, je n'aurais pas le temps de m'impliquer dans ce projet.
Est-ce que vous arriverez à prendre en main ce projet de manière autonome (Soulalex / Anaeria) ?
S'il vous faut quoique ce soit, n'hésitez pas. -
Pour ma part, je n'aurais pas le temps de m'impliquer dans ce projet.
Est-ce que vous arriverez à prendre en main ce projet de manière autonome (Soulalex / Anaeria) ?

S'il vous faut quoique ce soit, n'hésitez pas.
Pour moi, y a ps de soucis, si tu le monde est ok. J'ai l'habitude de gérer les projets de grande tailles en parallèle, je fait ça tout les jours

En ce sens, je vais proposer une petite présentation exhaustive de ce qu'on souhaite faire, de ce à quoi on veux arriver et des fonctionnalités que l'on pourra prendre en compte, etc...
J'essaye de faire ca cette après-midi.
-
Et bien c'est parfait !
Personne ne dira jamais qu'Anaeria ne mérite pas son grade, au moins.
-
Comme promis, une présentation des besoins, objectifs et fonctionnalités de notre projet.
Si quelqu'un veux apporter des gros changements à cette liste, c'est maintenant.
Pour ce qui est fonctionnalités précises (notamment du frontend), elles pourront être intégré sous forme de modules comme prévu dans la structure.
Besoins
- Développer un framework backend / frontend pour démontrer les talents et capacités de la communauté Mélinyel
- Offrir un framework PHP/MySql simple d’utilisation, souple et gratuit
Objectifs
-
Le framework devra être OpenSouce
-
Il sera en PHP5 / MySQL pour le backend et HTML5 / CSS3 / jQuery pour le frontend
-
Il devra permettre de déployer un site rapidement en utilisant un système de modules (les modules seront soit préexistants, intégrés, ou libres)
-
Spécifique au backend
- Il sera construit sur le principe MVC (Modèle – Vue – Controller)
- Il devra garantir la sécurité des sources et des données sensibles au sein du site (fichiers privé, BDD, …)
- Il devra gérer dynamiquement les URL tout en gérant les appels erronés
- Il devra être suffisamment performant pour pouvoir générer et envoyer une page standard selon les standards Google (moins de 0.5 secondes en moyenne pour toute page qui ne contient pas d’autres traitement que de l’affichage de contenu)
-
Spécifique au frontend
- Le frontend devra respecter les standards actuels de constructions de pages responsive
- Ne seront PAS pris en charge tous les navigateurs et appareils ne supportant pas intégralement HTML5 et/ou CSS3 et/ou jQuery 2.x.
Fonctionnalités du backend
- Router d’URL RESTful + traitement des requêtes AJAX
- ORM
- Caching de données
- Caching de pages
- Un système d'applications (avec ressources séparées)
- Gestion des inputs et ressources clients (cookies, sessions, …)
- Interface MySQLi / PDO (entre l’ORM et la BDD)
- Assistance au débogage
- Captation et inscription des erreurs et exceptions PHP / MySql
- Gestion des erreurs et logs personnalisé
- Profiling et benchmarching
- Gestion de l’environnement d’exécution (test, dev, open-beta, prod, …)
- Système de layout et de view imbriquées (un layout qui contient des vues et qui contiennent des vues, etc…)
- Système de hook : pouvoir déclencher une action à un moment précis du système (pre system, pre controller, post controller constructor, before rendering, post controller, post system)
- Système de helpers : une bibliothèque de fonctions accessible dans des endroits précis (uniquement pour les controllers, uniquement pour les vues, …)
- Gestion des erreurs de protocole (http, FTP, WS,…)
- Un système de librairies externes
- La gestion d’envoi de mails
- Gestion de l'upload / download
- Génération assistée des ressources externes de type sitemap et fluxRSS
- Gestion de l’authentification avec niveaux de droits et des sessions
Fonctionnalités du frontend
- Gestion de l’AJAX (plus approfondie que jQuery)
- Gestion de l'upload / download
- Gestion de d’une interface graphique
- Aide à la mise en page
- Gestion des formulaires
- Design responsive
- Intégration des ressources JavaScript externes (Google API, Facebook, Twitter, …)
- EasyChat (y a pas de raison !)
- Autres fonctionnalités sous forme de modules dédiée à un secteur de site bien précis (spécifique pour blog, forum, ….)
-
- Développement d'un système d'applications (pratique quand on veut faire plusieurs sites différents ou pour d'autres choses).
- Gestion des fichiers (download / upload).
-
- Développement d'un système d'applications (pratique quand on veut faire plusieurs sites différents ou pour d'autres choses).
- Gestion des fichiers (download / upload).
Très juste, j'ai rajouté

-
Gestion des formulaires aussi ^^
-
Gestion des formulaires aussi ^^
C'est à dire ?
Un truc pour aider à les créer et les mettre en page côté frontend ?
Parce-que côté backend c'est simplement des données entrante d'un POST, y a rien de sorcier...
Ou alors on peu prévoir quelque chose de pus costaud avec la vérification automatique des champs en AJAX, le tout intégré avec les messages d'erreurs.
-
Ou alors on peu prévoir quelque chose de pus costaud avec la vérification automatique des champs en AJAX, le tout intégré avec les messages d'erreurs.
Oui ça c'est bien.
Ce que je veux dire par gestion des formulaires c'est les créer et les générer dans les pages en les sécurisant contre les attaques.
Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.
Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.
Grâce à votre participation, ce message peut devenir encore meilleur 💗
S'inscrire Se connecter

