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

Symfony PHP Discussion :

Creer un bundle distribuable


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Par défaut Creer un bundle distribuable
    Bonjour,

    Je dois créé des champs de formulaire personnalisé travaillant avec ajax (des champs de formulaire pour choisir un dossier de destination sur le serveur, selectionner un fichier sur le serveur etc...).

    Plutôt que de créé mes champs uniquement pour mon appli, je pensais créé un bundle distribuable.

    J'ai déjà utilisé github et packagist pour un projet non symfony (https://packagist.org/packages/cyber...cast-generator).
    Je devrais donc pouvoir m'en sortir de ce coté là.

    Par contre avant de me lancer, j'ai regardé quelques bundles bien connu (FosuserBundle, Genemu, ...) et j'ai quelques questions:

    1. Je vois que dans dans composer.json, ils notent comme requis uniquement les parties de symfony utilisés. Je pense que j'aurai besoin de symfony/framework et symfony/form
      Je comprend pas pourquoi ne pas installé symfony de base, y-a-t-il vraiment des personnes qui utilise des partie hors un projet symfony ?
    2. Quelle est la différence entre require et require-dev dans le composer.json ?
    3. Je ne vois pas où spécifié à composer qu'il doit faire un lien symbolique dans /web/bundle vers mon dossier public (j'aurai du JS, images, ...)
      J'en déduit qu'il le fait automatiquement en voyant un dossier Resources/public ? Si oui, est-ce du au fait qu'il est assez 'intelligent' pour savoir qu'il est dans un projet symfony et donc doit parcourir les vendors voir si il y a pas un dossier Resources/public ?
    4. Pour tester mon bundle dans un système complet, je doit avoir un projet symfony de test ?
      J'ai remarqué que composer prenait la version git local si elle est plus récente que sur github lors d'un update, celà me permettrait de pas pusher à chaques modifications

    Et plus généralement, y-a-t-il un tuto qui explique comment faire un bundle distribuable car ce n'ai pas exactement la même chose quie faire un bundle au seins d'un projet de site complet ?

    Merci d'avance pour vos éclaircissements,

  2. #2
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Hello

    Je vois que dans dans composer.json, ils notent comme requis uniquement les parties de symfony utilisés. Je pense que j'aurai besoin de symfony/framework et symfony/form
    Je comprend pas pourquoi ne pas installé symfony de base, y-a-t-il vraiment des personnes qui utilise des partie hors un projet symfony ?
    Oui, en t'intéressant un petit peu à d'autres Frameworks comme Laravel ou Silex, tu t'apercevras que Symfony ne fournit pas uniquement un mastodonte de Framework utilisable uniquement tel quel, mais bel et bien des composants réutilisables dans d'autres projets.

    Tu peux même utiliser des composants de Symfony dans un projet from scratch si ça te chante.
    Personnellement je me suis un peu intéressé à Silex, et au fur et à mesure que mon projet grossit, mon fichier composer.json contient de plus en plus de composants Symfony. (forms, translations, validators etc.)

    Si tu veux pousser le vice un peu plus loin, le blog de Fabien Potencier contient une excellente série d'articles à ce sujet sur la manière de "créer son propre framework" en utilisant des briques de Symfony.

    Quelle est la différence entre require et require-dev dans le composer.json ?
    Je cite ce qui se trouve sur la doc officielle de composer.
    require#

    Lists packages required by this package. The package will not be installed unless those requirements can be met.

    require-dev (root-only)#

    Lists packages required for developing this package, or running tests, etc. The dev requirements of the root package are installed by default. Both install or update support the --no-dev option that prevents dev dependencies from being installed.
    N'ayant jamais développé de bundle distribuable je ne saurais pas répondre à tes deux autres questions mais je t'invite à jeter un œil à cette partie de la doc de Symfony qui peut te mettre sur la piste

    A+

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    3- le composer.json de symfony invoque déjà la commande assets:install (à travers la méthode Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets) près chaque composer install et update. Cette commande parcourt effectivement les répertoires Resources/public/ des Bundles et crée les liens (ou fait la copie).

    4- J'ai pas compris la question!

    Je n'ai pas de lien pour un tutorial, mais j'ai une recommandation: puisque ton code n'est pas intimement liée à Symfony en tant que framework, essaie de le séparer en deux composants.
    - D'un côté le code principal lui-même en tant que librairie indépendante, avec son propre composer.json incluant les éventuelles librairies Symfony (symfony/form). Ce code doit pouvoir être utilisé dans n'importe quelle application, et pas forcément dans Symfony.
    - Et le bundle lui-même, qui contient le code qui intègre la librairie précedente et la "greffe" avec Symfony (avec un require symfony/framework dans le composer.json)

    Le but c'est d'isoler la partie Symfony framework du code afin qu'un jour si quelqu'un puisse utiliser ta librairie avec Zend, Laravel ou n'importe quelle autre application s'il en a envie. Tout ce qu'il aura à faire c'est écrire l'équivalent du bundle pour adapter ta librairie à son application. Ça facilite le partage des librairies entre différentes applications PHP et permet à tout le monde de profiter des meilleurs librairies sans s'enfermer dans une chapelle.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/10/2013, 15h52
  2. creer .exe distribuable GTK / Windows
    Par ninours23 dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 01/03/2008, 12h50
  3. Réponses: 19
    Dernier message: 24/05/2002, 16h36
  4. [langage] comment créer des fichiers ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2002, 16h33
  5. Réponses: 2
    Dernier message: 15/04/2002, 12h56

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