Précédent   Forum du club des développeurs et IT Pro > PHP > Bibliothèques et frameworks > Symfony2
Symfony2 Forum d'entraide sur le framework PHP Symfony2.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 24/11/2012, 17h21   #1
MaitrePylos
Responsable Livres

 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 614
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 40
Localisation : Belgique

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

Informations forums :
Inscription : juin 2005
Messages : 3 614
Points : 8 905
Points : 8 905
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.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2012, 09h30   #2
grunk
Modérateur
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 2 520
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 28
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 2 520
Points : 5 262
Points : 5 262
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 | Recherche CDI dev. Web sur Dijon et alentours.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2012, 09h47   #3
MaitrePylos
Responsable Livres

 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 614
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 40
Localisation : Belgique

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

Informations forums :
Inscription : juin 2005
Messages : 3 614
Points : 8 905
Points : 8 905
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.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2012, 17h29   #4
KzrData
Membre habitué
 
Développeur Web
Inscription : avril 2010
Messages : 140
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2010
Messages : 140
Points : 126
Points : 126
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?
KzrData est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 18h37   #5
__fabrice
Membre habitué
 
Avatar de __fabrice
 
Fabrice
Inscription : août 2004
Messages : 372
Détails du profil
Informations personnelles :
Nom : Fabrice
Âge : 41

Informations forums :
Inscription : août 2004
Messages : 372
Points : 131
Points : 131
Envoyer un message via ICQ à __fabrice Envoyer un message via MSN à __fabrice
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
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 :
Dans App/Views, créez un fichier layout.twig qui sera la vue de base
et non :
Code :
 Dans App/Views, créez un fichier layout.php qui sera la vue de base
Merci
Fabrice
__fabrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 16h19   #6
MaitrePylos
Responsable Livres

 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 614
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 40
Localisation : Belgique

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

Informations forums :
Inscription : juin 2005
Messages : 3 614
Points : 8 905
Points : 8 905
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 :
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 :
Dans App/Views, créez un fichier layout.twig qui sera la vue de base
et non :
Code :
 Dans App/Views, créez un fichier layout.php qui sera la vue de base
Je met à jour ce soir.

Merci pour ton retour.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 17h15   #7
zevince
Membre éclairé
 
Inscription : janvier 2004
Messages : 461
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 461
Points : 349
Points : 349
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à
zevince est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2012, 14h08   #8
Pinga
Nouveau Membre du Club
 
Avatar de Pinga
 
Homme Anthony Jorion
Réferent informatique, helpdesk, relations fournisseurs, Administration locale serveurs
Inscription : mars 2007
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Anthony Jorion
Âge : 27
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 : 16
Points : 36
Points : 36
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
    {
    }
}
Il y a le mot "public" en trop.
Pinga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 01h10   #9
camus3
Membre émérite
 
Inscription : juillet 2010
Messages : 612
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 612
Points : 922
Points : 922
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');
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 :
$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 ?
camus3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 09h26   #10
MaitrePylos
Responsable Livres

 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 614
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 40
Localisation : Belgique

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

Informations forums :
Inscription : juin 2005
Messages : 3 614
Points : 8 905
Points : 8 905
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 :
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.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 12h20   #11
camus3
Membre émérite
 
Inscription : juillet 2010
Messages : 612
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 612
Points : 922
Points : 922
Citation:
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.
camus3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 13h24   #12
MaitrePylos
Responsable Livres

 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 614
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 40
Localisation : Belgique

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

Informations forums :
Inscription : juin 2005
Messages : 3 614
Points : 8 905
Points : 8 905
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?
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 12h55   #13
prims
Nouveau Membre du Club
 
Homme
Inscription : février 2011
Messages : 58
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : février 2011
Messages : 58
Points : 28
Points : 28
Très bon tuto, mais quand une suite ?
Avec Doctrine, un système d'admin peut être aussi ?

Merci en tout cas
prims est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h21.


 
 
 
 
Partenaires

Hébergement Web