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

Zend Framework PHP Discussion :

fonctionnement des routes


Sujet :

Zend Framework PHP

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut fonctionnement des routes
    Bonjour,

    Je debute avec Zend et je tente en veins de créer une route. J'aurais besoin de créer un chemin qui pointe vers le controller "GatewayController". J'ai suivi un tutorial et voici ce a quoi ressemble mon fichier bootstrap :

    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
     
    <?php
     
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
    	public function run(){
    		parent::run();
    	}
     
    	// Surcharge de _initAutoLoad
    	protected function _initAutoload()
    	{
    		$moduleLoader = new Zend_Application_Module_Autoloader(array('namespace'=>'', 'basePath'=>APPLICATION_PATH));
     
    		$frontController = Zend_Controller_Front::getInstance();
    		$router = $frontController->getRouter();
     
    		$router->addRoute('gateway', new Zend_Controller_Router_Route_Static('gateway', array(
    			'module' => 'frontend',
    			'controller' => 'Gateway',
    			'action' =>'index'))
    		);
     
    		$router->addRoute('index', new Zend_Controller_Router_Route_Static('index', array(
    			'module' => 'frontend',
    			'controller' => 'index',
    			'action' =>'index'))
    		);
     
    		return $moduleLoader;
    	}
     
    }
    voici également mon fichier /public/.htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ /public/index.php [NC,L]

    et également mon fichier de conf d'apache

    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
     
    <VirtualHost *:80>
    	ServerAdmin webmaster@localhost
     
    	DocumentRoot /home/dougui/workspace/Zend/AgendaWeb/
    	<Directory />
    		Options FollowSymLinks
    		AllowOverride None
    	</Directory>
     
     
    	<Directory /var/www/>
    		Options Indexes FollowSymLinks MultiViews
    		AllowOverride None
    		Order allow,deny
    		allow from all
    	</Directory>
     
    	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    	<Directory "/usr/lib/cgi-bin">
    		AllowOverride None
    		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    		Order allow,deny
    		Allow from all
    	</Directory>
     
    	ErrorLog /var/log/apache2/error.log
     
    	# Possible values include: debug, info, notice, warn, error, crit,
    	# alert, emerg.
    	LogLevel warn
     
    	CustomLog /var/log/apache2/access.log combined
     
        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride None
            Order deny,allow
            Deny from all
            Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>
     
    </VirtualHost>
    J'ai essayé plusieurs choses. Tout d'abord j'ai essayé plusieurs combinaisons pour les paramettres de la création de mon objet route (avec ou sans majuscules etc.). Initialement, l'url de l'application etait http://localhost/Zend/AgendaWeb/, j'ai essayé de taper l'url http://localhost/Zend/AgendaWeb/gateway ou http://localhost/Zend/AgendaWeb/public/gateway/.

    Par la suite j'ai essayé de modifier le fichier de config de apache pour qu'il pointe vers la racine du projet ou le dossier public pour avoir l'url http://localhost/gateway/ ou http://localhost/public/gateway/. J'ai aussi tenter de mettre un fichier .htaccess à la racine.

    J'ai également ajouté ce code dans le fichier de conf d'apache
    <Directory /home/dougui/workspace/Zend/AgendaWeb/>
    AllowOverride all
    </Directory>
    pour activer l'urlrewriting mais j'obtiens une erreur 503.

    Bref j'ai essayé quelques trucs mais rien ne marche.

    Comment puis-je faire? J'utilise ubuntu 10.04, apache 2 et toute les dernières versions. Je précise que j'ai déjà réeussi à faire fonctionner le système avec Ruby On Rails.

    Merci.

  2. #2
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Salut! Alors déjà pour activer l'url rewriting tape cette commande :

    a2enmod rewrite

    puis redemarre apache.

    Ensuite, ça c'est un avis personnel, tu te prendra moins la tete à faire un vhost, en voici un exemple avec phpmyadmin, tu crée le fichier /etc/apache2/sites-available/phpmyadmin

    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
     
    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName phpmyadmin.dom
        ServerAlias *.phpmyadmin.dom
     
        DocumentRoot /var/www/phpmyadmin
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
        <Directory /var/www/phpmyadmin>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
     
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
        </Directory>
     
        ErrorLog /var/log/apache2/phpmyadmin-error.log
     
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
     
        CustomLog /var/log/apache2/phpmyadmin-access.log combined
     
        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride None
            Order deny,allow
            Deny from all
            Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>
     
    </VirtualHost>
    Ensuite tu tape la commande a2ensite phpmyadmin
    Et tu redemarre apache
    Ensuite dans /etc/hosts tu ajoute :
    127.0.0.1 phpmyadmin.dom
    Tu teste phpmyadmin.dom dans le navigateur

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    Merci, j'essaierai ça se soir.

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    C'etait bien ça mais il fallait mettre AllowOverride All a la place de AllowOverride None. Merci beaucoup en tout cas, ça fera une bonne reponse de plus bien référencé.

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

Discussions similaires

  1. Fonctionnement des comparateurs de prix ?
    Par masseur dans le forum Services
    Réponses: 3
    Dernier message: 22/01/2006, 21h11
  2. Fonctionnement des attributions de droits sur table et bdd ?
    Par shako95 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2005, 13h39
  3. Fonctionnement des WeakHashMap
    Par seiryujay dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 03/10/2005, 14h12
  4. Fonctionnement des fichiers.
    Par phoenix440 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 29/05/2005, 15h36
  5. [langage] fonctionnement des Processus
    Par GMI3 dans le forum Langage
    Réponses: 3
    Dernier message: 19/09/2003, 11h12

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