Framework World Net Gear ( WNG )

wng
Eléphanteau du PHP | 25 Messages

09 mai 2014, 23:55

Bonjour à tous, cela fait un moment que je met en place mon framework "personel" et depuis peut, ma plateforme web est fonctionnel et est disponible avec mon framework en téléchargement ( gratuit ) sous la license CreativeCommons BY-NC-ND 4.0.

Ma plateforme ( http://www.world-net-gear.fr ) dispose d'une documentation complète ainsi que d'un système de commentaire pour le partage d'information.

Je vous invite à donner votre avis ainsi que vos suggestion pour m'aider à le compléter et à l'améliorer.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 mai 2014, 00:55

salut,

Doctype fixe dommage
Pas de doc

Pourquoi ne pas utiliser PDO ? (ouverture vers d'autre sgbd plus que simple).

qui a utiliser des objets autants utiliser la version poo de mysqli (bon mysqli) et gèrer correctement les erreurs (pas de die et du try / catch).
Pas de fermeture des jeux de résultat (mysqli_query).
Il faut que tu te renseigne sur le motif de conception (pattern) DAO afin de mieux appréhender la chose (la base c'est que retourne un tableau de tableau (ou d'objet) image du retour de la requête mais pas le résultat (cela permet aussi de fermer correctement le jeu de résultat).

proposer des requêtes préparée ça ça peux être sympa.

Architecturer ton projet correctement :
- une classe par fichier (le nom du fichier c'est le nom de la classe voir suffixer de class. exemple WNGHtml.class.php
- utiliser les espaces de noms et éviter de nommer les classes WNGxxx WNG n'est pas forcément une info utile dans le nom de la classe).
- aérer / indenter correctement le code
enclair
<?php
public function setAuthor($string) {
    $this->headerAddClosed("meta", array("name" => "author", "content" => $string));
}
plutôt que
public function setAuthor($string) { $this->headerAddClosed("meta", array("name" => "author", "content" => $string)); }
<?php
foreach($this->htmlHeader as $k => $v) {
    print $v;
}
plutôt que
foreach($this->htmlHeader as $k => $v)
			print $v;
etc

un fichier qui est inclus peux retourner quelque chose ce serait mieux qu'un buffer je pense.

utiliser des noms de méthodes qui veulent dire quelque chose httpp / httpg etc.

Upload :
public function upload($file, $dest, $newname) {
		rename($file["tmp_name"], $dest . $newname . "." . pathinfo($file["name"])["extension"]);
	}
Non ce n'est pas ainsi que l'on fait proprement (move_uploded_file).

@+
Il en faut peu pour être heureux ......

wng
Eléphanteau du PHP | 25 Messages

10 mai 2014, 01:17

Le doctype n'est pas fix et est modifiable via WNGHtml->setDoctype(), mais n'est pas générer dynamiquement mais via une string complète ( choix du à l'html 5 ).
La gestion du <html> est exactement la même via WNGHtml->setHtml().

Pour mylsqi c'est par pur choix que j'utilise le style procédural et je conçoit que ce n'est sans doute pas la meilleur des manières ...
En ce qui concerne le pattern DAO je ne m'y suis jamais pencher, je regarderais ça !

L'architecture, oui c'est pas vraiment du jolie, pas de commentaire, le code est légèrement tasser ... je suis d'accord, je rajouterais également de la php doc dans la prochaine version.

Par conte en ce qui concerne le buffer je ne suis pas vraiment d'accord, pour la simple et bonne raison que le choix est très réfléchi, je m'explique :
Mon framework est conçue pour mettre en place une architecture complète de manière rapide et le plus efficace possible, hors lors de l'inclusion de fichier de manière dynamique, forcer l'utilisateur à effectuer des return sur la totalité de sont contenu, à savoir que certaine page peuvent être relativement volumineuse, le buffer était et reste la meilleur solution ...

Et sincèrement j'ai chercher pendant un bon moment et tester de multiple manière d'inclusion avant de finaliser sur ça.

En ce qui concerne ces fameux httpX() :D oui je comptais les renommés je te rassure lol !

Par contre pour move_uploaded_file, je n'est aucune excuse :priere:

Merci pour ces indications et ton aide !

PS : Le choix du buffer est égallement du à la porter des variables qui ne sont plus transmise ou provoque des erreurs en utilisant d'autre méthode.

wng
Eléphanteau du PHP | 25 Messages

11 mai 2014, 22:09

Mise à jour 3.09 disponible, la majeur partie des modifications ont été faite selon tes recommandations @moogli et je te remercie pour tes suggestions !

A savoir qu'il y aura forcement de futur mise à jour ainsi que l'amélioration probable de la php doc ...
Je n'ai pas encore regarde la gestion du pattern DAO donc il ne faut pas y compter sur cette version.
Pour mysqli, j'utilise toujours le style procédurale et je ne sais pas si je changerais à moins qu'il y ai une réel différence de sécurité.

Pour le moment ma class Sql ne gère que les action mysql, mais dans les prochaines version, la gestion de postgresql sera ajouté, si la demande est conséquente pour d'autre version je les ajouterais également.

A savoir que, les différentes class peuvent être utiliser sans mon framework ou encore être instancier via Manager().

Vos avis et suggestions sont toujours de mise !
Encore merci de ton aide @moogli.

Détails de la mise à jour : http://www.world-net-gear.fr/news-6-Mis ... _3_09.html

wng
Eléphanteau du PHP | 25 Messages

29 mai 2014, 16:53