p
u
b
l
i
c
i
t
é
publicité
+ Répondre à la discussion Actualité déjà publiée

Discussion: Introduction à Silex

  1. #1
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 059
    Points : 9 155
    Points
    9 155

    Par défaut Introduction à Silex

    Bonjour, j'ai commencé une série d'article sur Silex.

    En voici la première partie

    http://g-ernaelsten.developpez.com/cours/Silex/

    Bonne lecture.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Dév. Web / Android
    Inscrit en
    août 2003
    Messages
    3 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Dév. Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 3 496
    Points : 8 388
    Points
    8 388

    Par défaut

    Je n'avais jamais eu le courage d'essayer Silex après avoir été refroidi par SF2. Mais au survol de ton article ça vaut peut être le coup que je m'y attarde un peu plus !

    Par contre composer et git quand on à au mieux une connexion 1Mb voir pas de connexion du tout quand la politique de l'entreprise le permet pas , c'est juste super frustrant :'(
    Pry Framework php5

  3. #3
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 059
    Points : 9 155
    Points
    9 155

    Par défaut

    Citation Envoyé par grunk Voir le message
    Par contre composer et git quand on à au mieux une connexion 1Mb voir pas de connexion du tout quand la politique de l'entreprise le permet pas , c'est juste super frustrant :'(
    Effectivement, je te plaint mon ami.

  4. #4
    Membre habitué
    Profil pro
    Développeur Web
    Inscrit en
    avril 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : avril 2010
    Messages : 141
    Points : 126
    Points
    126

    Par défaut

    Merci pour l'article.
    La remarque sur Benoit Hamon était peut-être pas nécessaire si?

    Sinon question concernant Silex vu que ça fait un moment que j'en ai l'intention depuis un moment sans avoir mis les mains dedans, quelle est la réelle différence avec Symfony? Beaucoup de lib en moins?

    Du coup est-il possible d'installer des bundles de SF2 sur Silex où dès que les besoins augmentent, comme tu le dis, il vaut mieux passer directement sous SF2?

  5. #5
    Membre actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    août 2004
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : août 2004
    Messages : 394
    Points : 153
    Points
    153

    Par défaut

    Bonjour,

    Effectivement, article interessant pour la prise en main de Silex, qui m'avait paru un brin rebutant.
    Voilà qui simplifie les choses.

    Par contre, je reste un peu sur ma faim. Un petite explication pour gérer une bdd, en faisant un petite appli genre blog, aurait été super

    Par contre, j'ai eu des messages d'erreurs :
    -1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public function index()
    { 
        echo 'Bonjour';
    }
    Il faut un "return" et non "echo".

    -2-
    Après avoir installé twig.so en tant qu'extension dans le php.ini, j'ai eu un message d'erreur sur une variable d'env "twig_environment" qui manquait. Je n'ai pas cherché très longtemps. En l'installant avec composer, çà a marché.

    -3-
    il fallait lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dans App/Views, créez un fichier layout.twig qui sera la vue de base
    et non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dans App/Views, créez un fichier layout.php qui sera la vue de base
    Merci
    Fabrice

  6. #6
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 059
    Points : 9 155
    Points
    9 155

    Par défaut

    Citation Envoyé par __fabrice Voir le message
    Par contre, je reste un peu sur ma faim. Un petite explication pour gérer une bdd, en faisant un petite appli genre blog, aurait été super
    Reste au taquet, je met à jour fin décembre

    Citation Envoyé par __fabrice Voir le message
    Par contre, j'ai eu des messages d'erreurs :
    -1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public function index()
    { 
        echo 'Bonjour';
    }
    Il faut un "return" et non "echo".
    Vous êtes plusieurs à m'avoir fait la remarque, j'ai modifié, mais moi je n'ai pas cette erreur.

    Citation Envoyé par __fabrice Voir le message


    il fallait lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dans App/Views, créez un fichier layout.twig qui sera la vue de base
    et non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dans App/Views, créez un fichier layout.php qui sera la vue de base
    Je met à jour ce soir.

    Merci pour ton retour.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    janvier 2004
    Messages
    468
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : janvier 2004
    Messages : 468
    Points : 358
    Points
    358

    Par défaut

    Merci pour cet article.. Et j'attends la suite avec impatience !
    Pour ma part, j'ai du mal avec Symfony.. Je me sens plus à l'aise sur Silex !

    J'ai beaucoup appris en lisant les sources de ces projets :
    https://github.com/maxailloud/PayMeBack
    https://github.com/willdurand/Propilex

    ainsi que Silex Kitchen, dont cet article parle déjà

  8. #8
    Membre du Club Avatar de Pinga
    Homme Profil pro
    Réferent informatique, helpdesk, relations fournisseurs, Administration locale serveurs
    Inscrit en
    mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Réferent informatique, helpdesk, relations fournisseurs, Administration locale serveurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mars 2007
    Messages : 28
    Points : 57
    Points
    57

    Par défaut

    Bonjour,

    Comme beacoup, j'ai du mal à prendre en main SF2. Après une première lecture, rapide, de l'article, c'est effectivement une belle entrée en matière.

    Je tiens aussi à signaler une petite erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    namespace App\Controller {
     
        use Silex\Application;
        use Silex\ControllerProviderInterface;
     
     
        class IndexController implements ControllerProviderInterfacepublic
        {
        }
    }
    Il y a le mot "public" en trop.

  9. #9
    Membre Expert
    Inscrit en
    juillet 2010
    Messages
    657
    Détails du profil
    Informations forums :
    Inscription : juillet 2010
    Messages : 657
    Points : 1 137
    Points
    1 137

    Par défaut

    Je développe une app open source avec Silex et MongoDB :

    https://github.com/Mparaiso/Silex-Blog-App

    Je pense que le tuto aurait pu être simplifié et utiliser de simples fonctions à la place de controlleur providers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // loading ...
    $app  = new Silex\Application();
    $app->get("/route/{variable}",
      function($variable,Silex\Application $app){
       // code
      }
    );


    c'est l’intérêt principal des frameworks Sinatra like ( flask , express, slim )même si j'utilise les controlleurs providers , Silex permet développer rapidement une api ou un service web, tout en évitant le code spaghetti et en séparant la couche présentation de la couche applicative , à charge du développeur de découpler l'application des services , mais c'est facile grâce à pimple. Un service est une lib totalement indépendant du reste de l'app pouvant être incorporée à une app grace à un simple ServiceProvider.


    A savoir qu'on peut aussi faire un mount de routes définies dans un autre fichier avec un simple return d'une instance de silex app à la fin du fichier ( ce qui permet de modulariser l'architecture d'une app , sans avoir recours à des classes , qui sont utiles uniquement si on se sert du constructeur ( init , injection de dépendance ,etc ... ). Si il n'y pas d'états partagés entre les méthodes , et puisque php supporte pleinement les "modules" , utiliser des fonctions a du sens.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $index->match("/", 'App\Controller\IndexController::index');
    si on se sert du constructeur dans le controlleur , il me semble qu'on se heurte à de sérieux problèmes dans php quand les méthodes ne sont pas statiques. il vaut mieux écrire un callback de cette forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $index->match("/", array($this,"index"));
    puisque la classe est instanciée.


    L'avantage de Silex par rapport à d'autres frameworks Sinatra like c'est qu'il n'utilise pas de singleton , de classes statiques et autre variables globales. Et pimple permet le lazy-loading de services , et l'imbrication d'applications Silex.

    Une petite remarque , même si la lib de base est légère par rapport ZF ou SF je n'aime pas trop l'appelation micro ou mini framework. cela donne un sentiment d'une librairie jouet , alors que Silex est totalement compatible avec le reste des librairies de Symfony 2 . La différence est dans la façon dont on bootstrap une application. Ma lib utilise la validation de symfony , les formulaires de symfony et le module de sécurité de symfony. Mon app a plus de code venant directement de symfony 2 que du kernell de Silex, est-ce donc une app symfony ou Silex ?

  10. #10
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 059
    Points : 9 155
    Points
    9 155

    Par défaut

    Citation Envoyé par camus3 Voir le message
    Je développe une app open source avec Silex et MongoDB :

    https://github.com/Mparaiso/Silex-Blog-App
    Je rêve ou tu n'as pas lu l'introduction de mon tuto, surtout que je dis bien que je me base sur le lien que tu donnes pour faire cet article

    Et dans cet article de blog, on utilise bien des controllers.

    Maintenant, il est vrai qu'il est possible de travailler de façon différente et c'est un des aspects intéressant de Silex.

    Maintenant concernant le côté mini, tout est dans le titre.

    De plus, clairement je dit aussi que c'est une porte d'entrée pour SF2.

    Maintenant ce que tu apportes comme réflexions est exacte et intéressante et permettras à chacun de choisir sa route en fonction de son travail.

    Citation Envoyé par camus3 Voir le message
    si on se sert du constructeur dans le controlleur , il me semble qu'on se heurte à de sérieux problèmes dans php quand les méthodes ne sont pas statiques. il vaut mieux écrire un callback de cette forme:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $index->match("/", array($this,"index"));
    puisque la classe est instanciée.
    Entièrement d'accord, je met à jour dès que possible.

    MaitrePylos.

  11. #11
    Membre Expert
    Inscrit en
    juillet 2010
    Messages
    657
    Détails du profil
    Informations forums :
    Inscription : juillet 2010
    Messages : 657
    Points : 1 137
    Points
    1 137

    Par défaut

    Je rêve ou tu n'as pas lu l'introduction de mon tuto, surtout que je dis bien que je me base sur le lien que tu donnes pour faire cet article

    Et dans cet article de blog, on utilise bien des controllers.
    Pas la peine de s'exciter, C'est moi qui est développé cette app.

    Mes remarques sont des conseils rien de plus, c'est ton tuto.


    Il est préferable d'utiliser les Controller Providers dans un deuxième temps pour modulariser l'application. Il est plus simple de faire comprendre comment Silex fonctionne en utilisant des fonctions comme controlleurs dans un premier temps. Si j'avais eut à utiliser des classes pour les controlleurs avec Silex , j'aurai laissé tomber ce framework tout de suite..

    Je pense qu'il est important de parler de tout l'aspect "service" car c'est une erreur récurente dans le design d'une web app. et Silex simplifie la création de services. un topo sur Pimple est donc bien venu.

  12. #12
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 059
    Points : 9 155
    Points
    9 155

    Par défaut

    Citation Envoyé par camus3 Voir le message
    Pas la peine de s'exciter, C'est moi qui est développé cette app.

    Mes remarques sont des conseils rien de plus, c'est ton tuto.
    Je m'excite pas, j'explique

    Citation Envoyé par camus3 Voir le message
    Si j'avais eut à utiliser des classes pour les controlleurs avec Silex , j'aurai laissé tomber ce framework tout de suite.
    Tu as fait une remarque judicieuse sur le fait que Silex, n'est pas vrailment un mini framewok, hors sur la toile on ne trouve que des exemples minime, j'ai voulu montrer qu'on pouvais développer de vrais gros projet avec Silex.

    Citation Envoyé par camus3 Voir le message
    un topo sur Pimple est donc bien venu.
    On cherche des rédacteurs.....tenté ? Voila un bon sujet....non?

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    février 2011
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : février 2011
    Messages : 85
    Points : 59
    Points
    59

    Par défaut

    Très bon tuto, mais quand une suite ?
    Avec Doctrine, un système d'admin peut être aussi ?

    Merci en tout cas

  14. #14
    Membre régulier
    Administrateur systèmes et réseaux
    Inscrit en
    décembre 2008
    Messages
    241
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : décembre 2008
    Messages : 241
    Points : 88
    Points
    88

    Par défaut

    Bonjour,

    Pour l'envoi à la vue on est obliger d'utiliser twig?

  15. #15
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 059
    Points : 9 155
    Points
    9 155

    Par défaut

    Non , a toi de mettre en place ton système de vue, en pur PHP par exemple.

Discussions similaires

  1. [CV] Introduction dans mes lettres de motivations
    Par mister3957 dans le forum CV
    Réponses: 2
    Dernier message: 27/09/2005, 09h56
  2. Introduction de Makefile dans le visual C++ 6.0.
    Par chico_di_brazil dans le forum MFC
    Réponses: 2
    Dernier message: 05/04/2005, 09h09
  3. Une introduction à l'assembleur 80x86, 32 bits, GNU GCC
    Par pierre.jourlin dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 04/04/2005, 17h34
  4. [LG]Introduction aux pointeurs
    Par John_win dans le forum Langage
    Réponses: 7
    Dernier message: 22/11/2003, 11h11

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