Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/07/2011, 16h33   #1
Membre régulier
 
Avatar de stephanegib2
 
Homme Stéphane
Développeur Web
Inscription : mai 2011
Messages : 78
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2011
Messages : 78
Points : 88
Points : 88
Par défaut Utilisation des helpeurs dans une task

Bonjour,

je doit réaliser une task qui répertorie une liste d'article dans un fichier URL.
Mon problème est que je n'arrive pas à utilisé les helpers, notamlent url_fo() pour me généré les URL.

Par exemple voici ce que j'essai de faire :

Code :
1
2
3
4
5
6
7
8
9
 
require_once(dirname(__FILE__)."/../vendor/symfony/lib/helper/UrlHelper.php");
 
if (function_exists('url_for')) {
    echo url_for('@dossier_accueil');
    } else {
    echo "Les fonctions ne sont pas disponibles.<br />\n";
}
exit;
Quand je l'exécute en ligne de commande je reçois ceci :

The "default" context does not exist.

Est ce que vous avez déjà été confronté à ce problème, ou éventuellement avez vous une piste de solution ?
stephanegib2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h00   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Où est placé ce code dans l'architecture de symfony ?

Un require_once en symfony est plus qu'inadapté et laisse supposer un mauvais placement de code.

url_for() est un helper, conçu pour être utilisé dans le template, ce qui ne semble pas le cas ici.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h03   #3
Membre régulier
 
Avatar de stephanegib2
 
Homme Stéphane
Développeur Web
Inscription : mai 2011
Messages : 78
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2011
Messages : 78
Points : 88
Points : 88
le fichier est placé dans lib/task/.

Effectivement, mon code ne doit pas être trop adapté, je suis en phase de recherche, j'essaie plein de chose, mais j'avoue que je galère beaucoup.

Je dois générer des url, mais je ne vois pas comment instancier le routing à partir d'une task
stephanegib2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 12h24   #4
Membre régulier
 
Avatar de stephanegib2
 
Homme Stéphane
Développeur Web
Inscription : mai 2011
Messages : 78
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2011
Messages : 78
Points : 88
Points : 88
Je pense avoir des pistes, mais je suis pas trop sur.
je cherche à utiliser les routings, je pense que sa donne quelque chose comme sa :

Code :
1
2
$factory = new sfRouting($mon_fichier_routing);
$factory->genUrl()
stephanegib2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 17h18   #5
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Regardes dans le code de du helper, tu as le code effectivement utilisé pour récupérer l'url. J'ai pas de symfony 1 ici.

Je ne suis pas sur que générer une url dans une task soit une bonne idée, sauf si cette task à pour objet d'afficher, récupérer des données depuis cette url.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 17h28   #6
Membre régulier
 
Avatar de stephanegib2
 
Homme Stéphane
Développeur Web
Inscription : mai 2011
Messages : 78
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2011
Messages : 78
Points : 88
Points : 88
Finalement je suis passé par un module pour me faire mon xml.

Mais j'étais arrivé a faire ceci, au cas si sa peut intérésser quelqu'un :

Code :
1
2
3
4
5
6
7
8
 
                $err_reporting = ini_get('error_reporting');
                ini_set('error_reporting', E_ERROR | E_PARSE );
 
                $configuration = ProjectConfiguration::getApplicationConfiguration('site', $_SERVER["APP_ENV"], ($_SERVER["APP_ENV"]=="dev") ? true : false);
                $routing = sfContext::createInstance($configuration)->getRouting();
 
                ini_set('error_reporting',  $err_reporting);
Code pas très propre bien sur, mais bon pas trop le choix.

Donc en gros je fait appel à la configuration du site, pour ensuite créer le routing. Mais comme je suis en ligne de commande et pas dans un navigateur, j'ai une erreur de session, que je cache.
Et ensuite je récupère l'URL qui va bien.
stephanegib2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 17h55   #7
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
gestion d'erreur à la hussarde !

Regarde du côté du "try" qui devrait permettre d'éviter ce système acrobatique...

Si le reste marche tant mieux.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h08.


 
 
 
 
Partenaires

Hébergement Web