IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

Un nouveau framework PHP français


Sujet :

Bibliothèques et frameworks PHP

  1. #21
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    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 : 1
    Points
    1
    Par défaut
    Yes, ç'est plus simple comme ça mais du coup j'ai beaucoup de code à adapter pour garder une cohérence

  2. #22
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    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 : 1
    Points
    1
    Par défaut
    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

  3. #23
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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

  4. #24
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    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 : 1
    Points
    1
    Par défaut
    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 ?

  5. #25
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    class Erra_Core_Browser {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #26
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    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 : 1
    Points
    1
    Par défaut
    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

  7. #27
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    si ton autoloader est bien fait, t'as pas grand chose a changer pour les namespace

Discussions similaires

  1. Quel framework PHP utilisez-vous et pourquoi ?
    Par Lana.Bauer dans le forum Bibliothèques et frameworks
    Réponses: 194
    Dernier message: 04/02/2014, 15h33
  2. [Framework] [PHP.MVC] Probleme de forward sur .tpl
    Par the_edge dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/03/2006, 16h23
  3. Un nouveau lecteur RSS français en ligne !
    Par nemesix dans le forum Applications
    Réponses: 9
    Dernier message: 06/03/2006, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo