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

ORM PHP Discussion :

Routage Symfony/Doctrine


Sujet :

ORM PHP

  1. #1
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut Routage Symfony/Doctrine
    Bonjour,

    Alors voila d'abord mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h4><?php echo link_to($site->getNom(), 'site_show_user', $site) ?></h4>
    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
    homepage:
      url:   /
      param: { module: site, action: index }
     
    site:
      class: sfDoctrineRouteCollection
      options: { model: site }
     
    # pour personnaliser le barre URL
    site_show_user:
      url: /site/:id
      class: sfDoctrineRoute
      options: { model: site, type: object }
      param: {module: site, action: show }
      requirements:
        id: \d+
        sf_method: [get]
    Quand je tape localhost:8080, j'arrive bien sur le module site à l'action index. Problème, quand je clique sur le lien, bah j'ai une erreur 404, page not found...
    Pourtant dans ma barre d'adresse je récupère ceci:

    http://localhost:8080/site/1

    Pour que cela fonctionne, il faut uniquement que je travaille avec cette url:

    localhost:8080/frondend_dev

    Comment je dois faire pour que tout fonctionne pareil en travaillant sur localhost:8080 ?
    En gros, j'aimerais que le site fonctionne aussi dans l'environnement de production...

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Le problème est que tu as très peu de sites qui ont, comme nom de domaine : localhost.

    Quel est ton environnement de dev ?

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    Sous linux avec LAMP, si c'est bien ça dont tu parles ^^'

    EDIT : Pour le nom de site "localhost" c'est temporaire, c'est uniquement parce que je suis en local sur mon PC

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Ma première réponse était, peut-être, un peu rapide.

    Tu peux, sous Linux, configurer ton DNS pour l'utiliser en local (et faire un suivi pour le reste de la DNS). Tu peux, ensuite, configurer ton apache avec des serveurs virtuels, et tu as donc ton appli de test qui est vue, et traitée, comme un serveur.

    Mais je ne pense pas (plus) que le problème viennent de là.

    Donc :
    http://localhost:8080/site/1 ne marche pas, alors que
    http://localhost:8080/frontend_dev.php/site/1 marche.

    N'aurais-tu pas un problème au niveau du htaccess ?

    As-tu testé d'autres route avec des paramètres (pas des sfDoctrineRoute) ?

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    Oui, c'est ça.

    C'est bizarre car il ne parle pas de fichier .htaccess sur le tuto Jobeet... :/

    Pour ce qui est du chemin, non, je n'ai pas essayé d'autre moyen, tu me conseilles d'essayer quoi à la place de sfDoctrineRoute?

    EDIT :

    Si ca peut t'aider dans le diagnostique, si j'utilise ca...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sfConfig::get('app_max_jobs_on_homepage')
    ... dans mon fichier actions.class.php, j'ai une erreur 500, symfony me dit que quelque chose est cassé alors que si je rajoute http:localhost:8080/frontend_dev.php alors là pas de soucis, tout fonctionne comme ca devrait fonctionner.

    Je comprend pas =/ Mais d'un coté, je me dit que c'est pas le code qui est pas bon mais certainement un soucis de configuration, mais quoi configurer? ^^'

    PS: évidemment, j'ai bien déclarer "max_jobs_on_homepage" dans le fichier app.yml et j'ai bien la possibilité de passé un argument dans ma fonction de mon .class... ca va de soi

    EDIT 2:

    Ne serait-ce pas le même problème que sur ce topic? ===> http://www.developpez.net/forums/d86...ent-dev-local/

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Non, je ne pense pas que cela soit la même erreur, je ne te le souhaite pas. On a passé une soirée sur msn à chercher sans succès, dans mes souvenirs, cela à fini par finir par une réinstallation du wamp et ça a marché. Mais pourquoi ??? Enfin, je crois, c'est un peu loin pour mon vieux cerveau.

    Je serais très surpris que app_max_jobs_on_homepage aient à voir avec cela.

    Essaye d'envoyer avec un lien :
    http://localhost:8080/index.php/site/1

    Si là cela marche, ça doit alors venir du .htaccess qui est mal défini ou pas actif.
    Si non, il faudra vider le cache (cc) ou mieux, supprimer tous à la main (sauf le dossier racine du cache).

  7. #7
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    Ca fonctionne avec le lien que tu m'as envoyé!! Mais comment je fais pour définir ou activer mon .htaccess? Je pensais qu'il n'y en avait pas en Symfony

  8. #8
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Il y en a un, fourni par défaut, qui devrait contenir ceci :
    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
    22
    Options +FollowSymLinks +ExecCGI
     
    <IfModule mod_rewrite.c>
      RewriteEngine On
     
      # uncomment the following line, if you are having trouble
      # getting no_script_name to work
      #RewriteBase /
     
      # we skip all files with .something
      #RewriteCond %{REQUEST_URI} \..+$
      #RewriteCond %{REQUEST_URI} !\.html$
      #RewriteRule .* - [L]
     
      # we check if the .html version is here (caching)
      RewriteRule ^$ index.html [QSA]
      RewriteRule ^([^.]+)$ $1.html [QSA]
      RewriteCond %{REQUEST_FILENAME} !-f
     
      # no, so we redirect to our front web controller
      RewriteRule ^(.*)$ index.php [QSA,L]
    </IfModule>
    Essaye en décommentant l'instruction RewriteBase et en relançant Apache.

    Tu devrais aussi regarder dans la configuration d'Apache pour cette application, est-ce que DirectoryIndex est correctement défini ?

  9. #9
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    J'ai essayé de décommenté la ligne "REWRITE BASE /", j'ai relancé Apache mais le problème est toujours là. Du coup je l'ai recommenter.

    Voila ma conf dans httpd.conf d'apache2 :

    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
    # Soyez sûr d'avoir seulement cette ligne une fois dans votre configuration
    NameVirtualHost 127.0.0.1:8080
     
    # C'est la configuration pour votre projet
    Listen 127.0.0.1:8080
     
    <VirtualHost 127.0.0.1:8080>
      DocumentRoot "/var/www/googleWow/web"
      DirectoryIndex index.php
      <Directory "/var/www/googleWow/web">
        AllowOverride All
        Allow from All
      </Directory>
     
      Alias /sf /var/www/googleWow/lib/vendor/symfony/data/web/sf
      <Directory "/var/www/googleWow/lib/vendor/symfony/data/web/sf">
        AllowOverride All
        Allow from All
      </Directory>
    </VirtualHost>

  10. #10
    Membre éprouvé Avatar de Vicrabb
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut
    Je ne mettrais pas le framework dans le répertoire web pour ma part:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Alias /sf /var/www/googleWow/lib/vendor/symfony/data/web/sf
      <Directory "/var/www/googleWow/lib/vendor/symfony/data/web/sf">
        AllowOverride All
        Allow from All
      </Directory>
    </VirtualHost>
    Comme je ne connais pas LAMP, je ne saurais pas te corriger mais voici mes vhosts pour jobeet et pour mon projet test sur Wamp pour que tu aies une idée de ce qui serait déjà mieux:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
        # Be sure to only have this line once in your configuration
        NameVirtualHost 127.0.0.1:9090
     
        # This is the configuration for MiApp
        Listen 127.0.0.1:9090
     
        <VirtualHost 127.0.0.1:9090>
          ServerName project.localhost
          DocumentRoot "C:\wamp\www\project\web"
          DirectoryIndex index.php
          <Directory "C:\wamp\www\project\web">
            AllowOverride All
            Allow from All
          </Directory>
     
          Alias /sf "C:\dev\sfproject\testing\lib\vendor\symfony\data\web\sf"
          <Directory "C:\dev\sfproject\testing\lib\vendor\symfony\data\web\sf">
            AllowOverride All
            Allow from All
          </Directory>
        </VirtualHost>
     
        # Be sure to only have this line once in your configuration
        NameVirtualHost 127.0.0.1:9092
     
        # This is the configuration for MiApp
        Listen 127.0.0.1:9092
     
        <VirtualHost 127.0.0.1:9092>
          ServerName project.localhost
          DocumentRoot "C:\wamp\www\jeux\web"
          DirectoryIndex index.php
          <Directory "C:\wamp\www\jeux\web">
            AllowOverride All
            Allow from All
          </Directory>
     
          Alias /sf "C:\wamp\symfony\data\web\sf"
          <Directory "C:\wamp\symfony\data\web\sf">
            AllowOverride All
            Allow from All
          </Directory>
        </VirtualHost>
    Comme tu vois, sur localhost:9090, mon framework est en dehors de Wamp et du répertoire www. Sur localhost:9092, j'ai mis symfony dans wamp ( à la base un test pour voir si cela marchait) mais pas dans le répertoire www.

    Je ne sais pas si cela va aider mais il est déconseillé dans les tutos de mettre symfony dans le répertoire www.

  11. #11
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    J'ai pourtant suivi le tuto de Symfony...

  12. #12
    Membre éprouvé Avatar de Vicrabb
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut
    Citation Envoyé par shark59 Voir le message
    J'ai pourtant suivi le tuto de Symfony...
    Le tuto symfony ne se fait pas dans un wamp/lamp, c'est pour cela qu'il faut un peu l'adapter. Regarde mon premier virtual host, c'est le tuto jobeet . Pourtant mon alias n'est pas dans wamp/www ^^.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <VirtualHost 127.0.0.1:8080>
      DocumentRoot "/home/sfprojects/jobeet/web"
      DirectoryIndex index.php
      <Directory "/home/sfprojects/jobeet/web">
        AllowOverride All
        Allow from All
      </Directory>
    Ceci est le répertoire accessible par le navigateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      Alias /sf /home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
      <Directory "/home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf">
        AllowOverride All
        Allow from All
      </Directory>
    </VirtualHost>
    Ceci est le framework qui n'est pas dans le répertoire accessible par navigateur.

    Si effectivement, www est le répertoire accessible par navigateur dans LAMP, alors, tu dois prendre l'habitude ne pas mettre le framework dans ce dernier.

  13. #13
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    Donc c'est quel dossier que je dois déplacer hors du dossier /www ?
    lib? vendor? symfony?

  14. #14
    Membre éprouvé Avatar de Vicrabb
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut
    dossier symfony => lib/vendor qui vient avant, tu peux les supprimer. N'oublie pas d'éventuellement mettre la nouvelle adresse dans ProjectConfigurationClass au besoin.

  15. #15
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    ProjectConfigurationClass se trouve dans quel fichier?

    Désolé de passer pour un gros noob mais je débute, je n'ai jamais utilisé de Framework auparavant , ceci dit, plus les jours passent, plus je tombe amoureux de Symfony

  16. #16
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Cool

    Pour l'instant, et en développement, l'emplacement du framework n'a pas une importance primordial. Et dans tous les cas, elle ne résoudra pas le problème posé.

    Je me permet de recentrer sur la question d'origine.

    Le test effectué à permis de ce rendre compte que les redirections ne sont pas actives. Tu es sous Linux, le fichier .htaccess doit être à la racine du dossier web exposé, soit /var/www/googleWow/web avec un . au début et les droits qui permettent au système d'y accéder.

    Le problème vient de la non lecture de ce fichier. Du moins, ceci me semble la cause là plus probable.

  17. #17
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    J'ai regardé les droits est les voici pour le fichier .htaccess:

    user: read/write
    group: read
    all: read

    C'est pas bon? =x

    PS : Pour l'emplacement, du framework, je m'en chargerais après avoir résolu ce problème

  18. #18
    Membre éprouvé Avatar de Vicrabb
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    Cool

    Pour l'instant, et en développement, l'emplacement du framework n'a pas une importance primordial. Et dans tous les cas, elle ne résoudra pas le problème posé.
    Bah au moins, j'aurais essayé ^^ (sinon, ce que je racontais, c'était juste ou pas?)

  19. #19
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    Vicrabb, tes post m'ont appris pas mal de choses! Tu n'as pas dit ca pour rien, au contraire, je t'en remercie, en espérant que tu me dit pas de bêtises car à mon niveau je peu tout gober

  20. #20
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Citation Envoyé par Vicrabb Voir le message
    Bah au moins, j'aurais essayé ^^ (sinon, ce que je racontais, c'était juste ou pas?)
    Tous dépend de la configuration des autres virtuel du serveur.

    S'il est bien configuré et qu'aucun virtuels ne pointes sur www et, donc, ne permettent de remonter l'arborescence, la config qui est indiquée est viable. En effet, le répertoire présenté est le répertoire web, soit en dehors de celle du framework.

    Personnellement, je préconise de créer une racine propres aux sites internet sur le serveur et d'y mettre un dossier par site. Ainsi, on peut être sur qu'il n'y aura pas de virtual qui pointe vers cette racine et on laisse en place le virtual qui pointe vers le www, vide (ou presque).

    Donc tu as peut-être raison, mais tous dépends des autres virtual définis, dont nous n'avons pas la définition.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Partenaire] Projet site commercial sérieux Symfony/doctrine
    Par bricecol dans le forum Autres
    Réponses: 0
    Dernier message: 28/03/2010, 23h25
  2. routage symfony doctrine
    Par superpilou dans le forum ORM
    Réponses: 0
    Dernier message: 26/02/2010, 12h36
  3. Tables fantomes sur Symfony/Doctrine
    Par goshiz dans le forum ORM
    Réponses: 2
    Dernier message: 29/01/2010, 17h14

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