Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/11/2011, 16h41   #21
Invité de passage
 
Homme
Développeur Web
Inscription : juillet 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2011
Messages : 14
Points : 0
Points : 0
Yes, ç'est plus simple comme ça mais du coup j'ai beaucoup de code à adapter pour garder une cohérence
erraprod_ufm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 20h08   #22
Invité de passage
 
Homme
Développeur Web
Inscription : juillet 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2011
Messages : 14
Points : 0
Points : 0
Salut ! Je viens vous proposer une version plus aboutie du CMF que j'avais présenté juillet dernier. Pour repositionner le développement, le but de ce CMF est de construire des sites internet, des web applications ou des sites mobiles le plus rapidement que possible à partir de templates html préconçus via psd2html, themeforest ou d'autres sources. Ce n'est pas un framework PHP pur type zend ou symfony, ce n'est pas non plus un CMS type drupal ou joomla. C'est entre les 2.

Les changements depuis Juillet dernier :

- La librairie utilise désormais le PHP 5.3 (fonctions anonymes, etc...)
- La convention de nommage est en camelCase pour les les méthodes, CamelCase pour les classes.
- Toute la configuration d'un projet se fait à travers un unique fichier "application.ini"
- Toute la structure de la librairie à été refaite pour s'adapter au modèle de Zend "application / library / public".
- Le système s'adapte tout seul aux différentes configurations d'installation (dans un répertoire absolu ou relatif)

- Un autoload mieux geré : la classe "Erra_System_XmlHttpRequest" se trouve dans library/Erra/System/XmlHttpRequest.php
- L'affichage des champs est unifié et les balises non valides xHtml ont disparu (pour la plupart en tout cas ^^)

- L'administration a été complétement réécrite

- Un moteur de templating a été écrit avec une syntaxe similaire à XSLT (support de <if>, <choose>, <when>, <otherwise>,<foreach>) plus quelques balises supplémentaires <include src="mavue.phtml"/> et <zone name="footer"/>
- Le code des vues peut être protegé simplement par une balise <access_control grant="admin, dev" ondeny="droits_insuffisants.phtml">
code visible seulement par les admin et les developpeurs
</access_control>
- Le système de template se base sur un cache (les fichiers sont compilés en .php classique et ne sont réinterprétés seulement si le développeur les change)

- Les bases de données sont passés en PDO
- Le système des objets à été changé, il n'y a plus qu'un seul type d'objet, qui peut s'éditer indifféremment sous forme de liste ou sous la forme d'un objet unique
- Les objets se créent à partir d'une syntaxe de type magique : eg $text_field = Erra_Fields_Text::create('my_text_field')->setDescription('Some text field')->setSize(70); (Pour des raisons de performances, la méthode de création n'est pas basée sur __get()).

- Les objets peuvent être des composites. Par exemple un objet User peut contenir des sous objets $user_name = Erra_Fields_Text.... $picture = Erra_Fields_Image... etc.. et le système permet, pour créer le formulaire d'édition de l'utilisateur d'employer la syntaxe :
$userEditFormHtml = User::getObject('currentUser', 'SQL', 'WHERE uid='.$fromSession['uid'])->_form('AppController/saveSql'); où $fromSession = Erra_Persistance_Session::get('userData'); par exemple. Il n'y pas de modèle fixe de gestion de données mais le système permet au développeur de créér le sien facilement.

Dans le même ordre d'idée le formulaire d'inscription pourrait être créé simplement avec
$newUserFormHtml = User::getObject('idDoesntMatters', 'CREATE')->_form('AppController/createUser');

- Le moteur des formulaire a été réécrit pour accepter désormais 3 modes : "native" (possibilité de créer sa skin à partir de quelques parametres), jqueryui (basé sur jqueryui, et donc possibilité d'utiliser le themeroller) et custom (basé sur des css que vous écrivez vous même)

- Beaucoup d'automagic et de choses que j'oublie !



http://lexastudio.com/dev/erra_ufm_framework_v0.90.rar

J'invite les plus téméraires d'entre vous à l'installer et à jouer avec les données d'exemple du répertoire "application". Pour le configurer vous devez juste changer le fichier application/application.ini et accéder via le navigateur au répertoire public.

Ce que j'aimerai ça serait un feedback global sur les good ou bad practises de ce CMF pour faire évoluer le code comme stealth35 a pris la peine de le faire. Je ne peux pas écrire de documentation pour l'instant dans le sens ou je l'ai déjà fait une fois et tant que le code n'est pas fixe, au moins sur la manière d'appeler les objets c'est du temps de perdu

Il reste encore beaucoup de choses à unifier, surtout au niveau du moteur de rendu des formulaires
erraprod_ufm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 10h49   #23
Modérateur
 
Inscription : septembre 2010
Messages : 7 104
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 104
Points : 8 452
Points : 8 452
Alors, je fais toujours ma technique de simplet, je télécharge et je lance.

- erreur 1, puisque mon application.ini n'est pas configuré, peu être qu'un message aurai été mieux (un simple md5 pour vérifier si le fichier est changé ou pas)
- erreur2, ducoup on me demande un path pour les images, je comprend pas trop ce qu'il faut faire, je suis obligé de regarder dans le code

- point positif 1, les classes sont beaucoup mieux rangées qu'avant
- point negatif 1, pourquoi ne pas avoir utilié les namespaces ducoup ?

je pense qu'un petit installeur serai le bienvenu

- ps : je te déconseille d'utiliser ini_set, surtout si c'est pour faire de la compression
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 11h54   #24
Invité de passage
 
Homme
Développeur Web
Inscription : juillet 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2011
Messages : 14
Points : 0
Points : 0
Lorsque l'application.ini est mal configuré, un message disant où est l'erreur s'affiche (normalement).
Une erreur sur les images, 'est bizzare à priori il n'y a que les paramètres de la base de données à changer pour que ça fonctionne, que te dit le message ?

Pour les namespace j'ai du mal à voir l’intérêt dans ce cas, c'est pour ça que je ne les ait pas utilisé, mais peut-être qu'il y a quelque chose que je zappe ?

Pourquoi éviter d'utiliser ini_set ?
erraprod_ufm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 13h16   #25
Modérateur
 
Inscription : septembre 2010
Messages : 7 104
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 104
Points : 8 452
Points : 8 452
Citation:
Envoyé par erraprod_ufm Voir le message
Lorsque l'application.ini est mal configuré, un message disant où est l'erreur s'affiche (normalement).
Une erreur sur les images, 'est bizzare à priori il n'y a que les paramètres de la base de données à changer pour que ça fonctionne, que te dit le message ?
Code :
The parameter `path.public_images` with value `/images` in application.ini is not a valid directory
Citation:
Envoyé par erraprod_ufm Voir le message
Pour les namespace j'ai du mal à voir l’intérêt dans ce cas, c'est pour ça que je ne les ait pas utilisé, mais peut-être qu'il y a quelque chose que je zappe ?
t'utilises deja les namespace mais avec l'ancienne méthode

Code :
class Erra_Core_Browser {
Code :
1
2
3
namespace Erra\Core
 
class Browser {
https://github.com/php-fig/fig-stand...epted/PSR-0.md


Citation:
Envoyé par erraprod_ufm Voir le message
Pourquoi éviter d'utiliser ini_set ?
parce que c'est a l'utilisateur de choisir ça config
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 15h40   #26
Invité de passage
 
Homme
Développeur Web
Inscription : juillet 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2011
Messages : 14
Points : 0
Points : 0
ok pour l'ini_set et les namespace, du refactoring s'impose.

J'ai changé le fichier application.ini avec deux paramètres supplémentaires pour le chemin `http_host` et `webroot`, ça devrait fonctionner sur ta machine désormais.

Tu peux me donner un rapide descriptif de ton environnement ? J'ai que 2 machines sur lesquelles je peux faire des test
erraprod_ufm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 16h49   #27
Modérateur
 
Inscription : septembre 2010
Messages : 7 104
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 104
Points : 8 452
Points : 8 452
si ton autoloader est bien fait, t'as pas grand chose a changer pour les namespace
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h47.


 
 
 
 
Partenaires

Hébergement Web