Introduction à Silex, un mini-framework basé sur Symfony
Par MaitrePylos
Le 2012-11-24 17:21:00, par MaitrePylos, Modérateur
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.
En voici la première partie
http://g-ernaelsten.developpez.com/cours/Silex/
Bonne lecture.
-
zevinceMembre avertiMerci 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àle 05/12/2012 à 17:15 -
primsMembre régulierTrès bon tuto, mais quand une suite ?
Avec Doctrine, un système d'admin peut être aussi ?
Merci en tout casle 18/12/2012 à 12:55 -
grunkModérateurJe 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 :'(le 26/11/2012 à 9:30 -
MaitrePylosModérateurle 26/11/2012 à 9:47
-
KzrDataMembre habitué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?le 26/11/2012 à 17:29 -
__fabriceMembre habitué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 : 1
2
3
4public function index() { echo 'Bonjour'; }
-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 lireCode : Dans App/Views, créez un fichier layout.twig qui sera la vue de base
Code : Dans App/Views, créez un fichier layout.php qui sera la vue de base
Fabricele 29/11/2012 à 18:37 -
MaitrePylosModérateurReste au taquet, je met à jour fin décembre
Vous êtes plusieurs à m'avoir fait la remarque, j'ai modifié, mais moi je n'ai pas cette erreur.
Je met à jour ce soir.
Merci pour ton retour.le 03/12/2012 à 16:19 -
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 : 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 { } }
le 06/12/2012 à 14:08 -
camus3Membre éprouvé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 : 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 : $index->match("/", 'App\Controller\IndexController::index');
Code : $index->match("/", array($this,"index"));
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 ?le 07/12/2012 à 1:10 -
MaitrePylosModérateurJe 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.
Entièrement d'accord, je met à jour dès que possible.
MaitrePylos.le 07/12/2012 à 9:26