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 :

Fichiers générés après commandes [1.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Fichiers générés après commandes
    Bonjour à tous,

    je suis développeur mobile, je n'ai donc que très peu de connaissances en Symony, mais mon client souhaite une évol' qui m'oblige à mettre les mains "dans le cambouis".

    J'ai ajouté 5 tables dans la BDD, j'ai généré le fichier schema.yml grâce à la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./symfony doctrine:build-schema
    puis j'ai généré les classes associées aux tables via la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./symfony doctrine:build --env="prod" --all-classes
    Tout s'est bien déroulé et sur le serveur de test je n'ai aucun problème pour faire un appel à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oma_table = Doctrine::getTable('MaTable')->findOneByIdmobile($idMobile);
    Le soucis est que mon client ne souhaite pas passer les 2 lignes de commandes en production car n'étant pas un expert symfony lui non plus, et comme j'ai eu des problèmes sur le serveur de test, il a peur que son site soit indisponible (on a eu des erreurs 500 un peu délicates à gérer ...)

    Bref, j'ai donc copier le schema.yml dans le répertoire de production.

    Et j'ai également recopier l'ensemble des classes générées dans le répertoire "lib" (filter, form et model) et malgré ça impossible d'accéder à mon web service j'ai une erreur 500 sur ce Web service à chaque fois et le problème vient de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oma_table = Doctrine::getTable('MaTable')->findOneByIdmobile($idMobile);

    Est-ce que quelqu'un sait pourquoi le copier coller des fichiers générés n'a pas suffit ? Est-ce que j'oublie d'autres fichiers générés ailleurs ?

    Merci beaucoup pour votre aide par avance.
    Rémi

  2. #2
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Points : 178
    Points
    178
    Par défaut
    tu as rajouté table et champs à ta database ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    merci pour ton aide mais je ne comprends pas la question. Dans le fichier database.yml il n'y a que les configs de connexion il me semble ?

    Ce que j'ai fait en résumé :
    Création manuelle des tables et des champs dans la base de données par requêtes SQL. Puis j'ai passé les 2 lignes de commande ci-dessus en enfin j'ai copier coller les fichiers générés (schema.yml et les classes qui sont dans /lib/ forms/, filter/ et model/ ) de test vers la prod.

  4. #4
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Tu as vider ton cache ?
    Tu changes des classes symfony. Symfony par défaut cache certaine parti de ton code pour gagner du temps.
    Ensuite en Prod je pense que tu dois avoir un opcode du type APC donc si c'est le cas alors il faut faire la commande suivante pour apache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /etc/init.d/apache2 graceful
    Si ça ne fonctionne pas alors fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /etc/init.d/apache2 restart
    (A personnaliser en fonction de la distribution)

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    J'ai fait le redémarrage apache et rien de mieux : (


    Pour information si ça parle à quelqu'un voici l'erreur générée sur la ligne de l'appel à l'objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     Couldn't find class MaTable [string:Exception:private] => [code:protected] => 0 [file:protected] => /home/user/public_html/lib/vendor/symfony-1.4.0/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Table.php [line:protected] => 299 [trace:Exception:private] => Array ( [0] => Array ( [file] => /home/user/public_html/lib/vendor/symfony-1.4.0/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Table.php [line] => 249 [function] => initDefinition [class] => Doctrine_Table [type] => -> [args] => Array ( ) ) [1] => Array ( [file] => /home/user/public_html/lib/vendor/symfony-1.4.0/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php [line] => 1126 [function] => __construct [class] => Doctrine_Table [type] => -> [args] => Array ( [0] => MaTable [1] => Doctrine_Connection_Mysql Object ( [driverName:protected] => Mysql [dbh:protected] => [tables:protected] =>
     
    etc ...

    Merci pour votre aide !

  6. #6
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    je ne sais pas sur quel environnement tu as testé la première fois. Il se peu que tu es testé sur un environnement windows et que tout fonctionne mais quand tu es passé sous linux chez le client ça ne fonctionne plus... Linux est sensible à la casse.

    Regarde comment sont déclarer les noms des tables dans MySQL.
    Ensuite regarde si la casse est respecter dans le schema.yml.
    Si c'est pas le cas alors ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableName: NomDeLaTable
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    MailQueueEntry:
      connection: doctrine
      tableName: mail_queue
      columns:
        message:
          type: blob
      actAs:
        Timestampable:
          created:
            name: created_at
            type: timestamp
            format: Y-m-d H:i:s
    Normalement ton problème sera résolu

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    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
     
     
    MaTable:
      connection: doctrine
      tableName: ma_table
      columns:
        commerce:
          type: string(100)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        latitude:
          type: float()
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        longitude:
          type: float()
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false


    C'est exactement ce que j'ai. Ma partie de dev est sur le même serveur que ma partie de production (on a une seule BDD en plus), il n'y a donc aucun risques d'environnements différents ce sont exactement les mêmes.

    Dans MySQL ma table est bien nommée ma_table donc à priori il n'y a pas de problème. Ce qui est fou c'est qu'on a d'un côté les fichiers qui marchent et de l'autre, je pense avoir copié tous les fichiers générés dont le plus important doit être le schema.yml, mais on n'a pas le même résultat. Est-ce que le fait de passer les lignes de commande ont un autre effet que générer ces fichiers ?

    Merci.

  8. #8
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    c'est pas la génération des fichiers.

    Par contre la, tu n'as pas dit que tu tests sur le meme poste les 2 environnements.
    Tu as regarder si tu tape bien sur la meme base dans le fichier database.yml ?

    Si les environnements sont utilisé tu as donc 2 connexions différentes.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    En fait pour résumer on a créer 2 users sur le même serveur dans le public_html du user_test on a exactement la même chose que le user_prod, c'est un simple copier-coller. La seule différence est la jonction avec l'URL (on appelle la prod avec www. et le dev avec wwwdev.

    Les fichiers database.yml sont donc strictement identiques, il y a bien 2 connexions différentes mais sur la même BDD.


    Donc en gros j'ai 2 répertoires, strictement identiques, sur le répertoire de dev j'ai passé les lignes de commande qui m'ont généré le schema.yml et les classes (form, fitler et model) que j'ai copier coller en production.

  10. #10
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Tu les bons droits d'écriture sur les fichiers et les dossiers cache et log ?

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    A priori oui, tout est au minimum en 664. Je pense que si les droits étaient insuffisant tous les autres web service ne fonctionneraient pas non ?

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je viens de faire un
    chmod 775 -R sur les fichiers générés par le -all-classes
    suivi d'un clear cache et ô miracle ça fonctionne !


    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/08/2011, 18h42
  2. Réponses: 2
    Dernier message: 03/09/2010, 11h11
  3. fichier vide après command cp (unix)
    Par leo77 dans le forum C
    Réponses: 6
    Dernier message: 17/04/2009, 15h57
  4. Réponses: 3
    Dernier message: 16/08/2006, 18h32
  5. fichier modifier apres instruction de lecture???
    Par cyberwaves dans le forum C++
    Réponses: 4
    Dernier message: 09/09/2004, 23h02

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