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 :

API angular sur site Symfony


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Par défaut API angular sur site Symfony
    Bonjour à vous,

    Je travail sur un site en symfony. Je dois ajouter sur ce site une nouvelle fonctionnalité de gestion qui sera en Angular.
    Mais je n'arrive pas a "lier" symfony et angular.
    Ex :
    url du site: localhost/
    il y a d'autre pages en symfony comme localhost/contact localhost/book/{bookid}
    l'api sera utilisé sur localhost/book/{bookid}, ou il y aura des onglets puor gérer différents menus avec différentes actions
    localhost/book/{bookid}#menu1, localhost/book/{bookid}#menu2

    J'ai ce code ci :

    Angular:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    var app = angular.module("app", ['ngRoute']);
     
    app.config(function($routeProvider, $interpolateProvider) {
     
      $interpolateProvider.startSymbol('||');
      $interpolateProvider.endSymbol('||');
     
      $routeProvider.
      when('/menu1', {
        templateUrl: '/api/menu1',
        controller: 'Menu1Controller'
      }).
      when('/menu2', {
        templateUrl: 'api/menu1',
        controller: 'Menu2Controller'
      }).
      otherwise({
        redirectTo: '/menu1'
      });
    });
    Controller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        /**
         * @Route("/api/menu1")
         */
        public function menuAction()
        {
            // DES TRAITEMENTS
     
            var_dump('COUCOU');
            return $this->render('BookBundle:Default:content1.html.twig');
        }
    Page avec le menu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a href="#/menu1">menu1</a>
    <a href="#/menu2">menu2</a>
    Mais ca ne marche pas, je n'a pas mon var_dump.
    L'objectif du code est de gérer la navigation/l'affichage par angular et que les requettes/verifications coté controller symfony

    Merci de votre aide.

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    http://afsy.fr/avent/2013/16-symfony-et-angularjs-tips

    apparemment faut adapter les routes etc...
    des bundles permet de te rendre la vie plus facile par exemple pour adapter les routes : FOSJsRoutingBundle

    voir aussi : https://github.com/matteosister/Cypr...gRoutingBundle


    un exemple :
    https://github.com/ivanproskuryakov/Aisel

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Par défaut
    Merci pour ton retour, mais je ne peut pas utiliser cette solution ( mon proxy bloque composer et donc l'installation des bundles)

    J'ai suivis ce tutoriel:
    http://creersonsiteweb.net/page-symf...work-apprendre
    Et dans cette exemple Le bundle de FOS n'est pas utilisé.

  4. #4
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    mouééé mais bon normalement on dois avoir un environnement propice pour le développement.
    c'est comme si un cuisinier n'avais pas de poêle ....

    mais bon il existe une solution, tu récupère les packages en zip que tu décompresses dans le vendor en prenant soins de le déclarer là oui il faut (composer.json, appkenel....)

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Par défaut
    Je suis daccord avec toi mais parfois on doit faire avec ce que on nous donne...

    J'ai essayé de faire ça, mais sans succès et je n'ai pas trouvé de tuto sur le net...

    J'ai ajouté le bundle dans le kernel et dans composer.json mais j'ai un message d'erreur comme quoi il n'arrive pas a me trouver la classe du bundle.
    D'après ce que j'ai lu il faut modifier un autoload mais j'ai pas eu plus d'infos.

  6. #6
    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
    Si tu n'utilises pas composer il faut que tu édites le fichier qui se charge de faire l'autoload de tes vendors.

    Sachant que j'utilises pour ma part composer je vais avoir du mal à t'en dire plus car tout se trouve dans le dossier composer : mais il faut que tes classes soient chargées avant de pouvoir les utiliser
    Les framework c'est bien, mais parfois on en oublie les bases : du genre faire un require des classes que l'on veut utiliser.

    N'as-tu pas un fichier autoload.php à la racine de ton dossier vendor ?

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Par défaut
    A vrai dire il y en a un peut partout, mais aucun ne me parlent...

    A la racine de vendor:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    // autoload.php @generated by Composer
     
    require_once __DIR__ . '/composer' . '/autoload_real.php';
     
    return ComposerAutoloaderInit423d329ea0d3772d4b7813e1aa4239be::getLoader();
    Il y a aussi un autoload dans le dossier app/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    <?php
     
    use Doctrine\Common\Annotations\AnnotationRegistry;
    use Composer\Autoload\ClassLoader;
     
    error_reporting(error_reporting() & ~E_USER_DEPRECATED);
     
    /**
     * @var ClassLoader $loader
     */
    $loader = require __DIR__.'/../vendor/autoload.php';
     
    AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
     
    return $loader;

Discussions similaires

  1. [1.x] Transférer un site Symfony sur un autre hébergement
    Par Eric3005 dans le forum Symfony
    Réponses: 2
    Dernier message: 22/01/2013, 09h53
  2. Réponses: 0
    Dernier message: 31/10/2011, 19h26
  3. besoin d'aide API IGN (sur Google sites)
    Par zebulon57 dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 11/05/2011, 17h41
  4. API Facebook sur un site ASP.NET
    Par Juju54350 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 19/08/2010, 12h32
  5. API paypal sur mon site www.imvintage.fr
    Par melro dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 20/04/2010, 10h18

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