Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-06-2009 15:02:07

pbpg
Nouveau membre
Date d'inscription: 10-06-2009
Messages: 4

[résolu] dire à Zend où sont mes éléments.

Bonjour,

Dur de se mettre à Zend au moment où les bouquins et les tutos sont en 1.7 et la doc en 1.8...

J'ai un souci avec la 1.8, car mon application n'est pas à la racine de mon nom de domaine, et je ne sais pas comment lui dire qu'il ne doit pas prendre en compte le premier répertoire.

Ma racine est http://humanworldvideo.net/dev/

a l'intérieur, j'ai plusieurs modules (default et admin, assez classiquement).

En 1.7, j'arrive à lui dire dans le bootstrap comment gérer mes modules, par contre pour le répertoire par défaut, je ne vois pas. J'ai essayé de caser un RewriteBase dans mon htaccess, mais ca n'a pas vraiment les résultats escomptés.

Pour le reste, j'arrive à faire tourner mes contrôleurs, j'ai les trucs de base qui fonctionnent, par contre sur la configurations des routes, j'y comprends rien...

J'aimerais également passer en 1.8 tant qu'à faire, pour pas être à la ramasse à la prochaine évolution... smile

Merci de votre aide,

FX

Dernière modification par pbpg (12-06-2009 10:17:33)

Hors ligne

 

#2 10-06-2009 17:58:49

tamildark
Membre
Date d'inscription: 09-04-2009
Messages: 26

Re: [résolu] dire à Zend où sont mes éléments.

Salut mets dans ton .htaccess et ca devrais fonctionné

Code:

RewriteRule ^.*$ /dev/index.php [NC,L]

Dernière modification par tamildark (10-06-2009 17:59:05)

Hors ligne

 

#3 10-06-2009 19:58:47

pbpg
Nouveau membre
Date d'inscription: 10-06-2009
Messages: 4

Re: [résolu] dire à Zend où sont mes éléments.

c'est pire en fait. le problème de base, c'est qu'il prend le premier répertoire comme contrôleur. ca n'est pas vraiment lié au htaccess, pour cette partie, amha.

mon htaccess actuel :

Code:

RewriteEngine on
# RewriteBase    /dev/
# RewriteBase    /dev_hwv/

# RewriteRule     ^/?$        public/index.php/index/
RewriteCond    %{REQUEST_FILENAME}    !-f
# RewriteRule    ^(.*)$            public/index.php/$1
RewriteRule ^.*$ /dev/public/index.php [NC,L]

Hors ligne

 

#4 11-06-2009 14:19:22

tamildark
Membre
Date d'inscription: 09-04-2009
Messages: 26

Re: [résolu] dire à Zend où sont mes éléments.

Je ne suis pas un expert en htaccess, mais le htaccess que m'a généré zend ressemble a ceci

Code:

SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /tonDossier/index.php [NC,L]

si tu nous fournis le contenu de ton répertoire dev je pourrais peut être t'aidai.

Hors ligne

 

#5 11-06-2009 18:16:09

pbpg
Nouveau membre
Date d'inscription: 10-06-2009
Messages: 4

Re: [résolu] dire à Zend où sont mes éléments.

là c'est plié :

Code:

You don't have permission to access /dev/ on this server.

J'ai remis mon htaccess initial, et j'ai bien accès à ma page index, mais avec le message d'erreur du départ :

Code:

Message: Invalid controller specified (dev)

ce qui veut bien dire que c'est juste le rooteur qui est à configurer, le htaccess en lui même trouve bien ma page index.

Le contenu de mon répertoire ? je ne suis pas sur de voir ce que tu veux

Code:

.htaccess
- application
-- admin_hwv
-- default

- public
-- index.php
-- css
-- media

Je n'ai pas mis index.php à la racine, parce que dans les tutoriaux 1.7 il était là.

voilà le contenu de mon bootstrap :

Code:

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 'on');

// initiation du chemin

ini_set('include_path', ini_get('include_path'). PATH_SEPARATOR. '../library/');
// ini_set('include_path', '../../library/');

$app_path = '../application/';
$module_path = 'default';

// includes
require_once "Zend/Loader.php";

Zend_Loader::loadClass('Zend_Controller_Front');

// get the front controller instance
$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory($app_path.$module_path.'/controllers');
$front->throwExceptions(false);

// langues
Zend_Loader::loadClass('Zend_Translate');
Zend_Loader::loadClass('Zend_Validate');
Zend_Loader::loadClass('Zend_Form');

$translate = new Zend_Translate('csv', $app_path.$module_path.'/languages', null, array('scan' => Zend_Translate::LOCALE_FILENAME));

$langLocale = isset($session->lang) ? $session->lang : 'fr';
$translate->setLocale($langLocale);
// $translate->setCache($cacheInstance);

Zend_Registry::set('Zend_Translate', $translate);

// Zend_Validate_Abstract::setDefaultTranslator($translate);
Zend_Form::setDefaultTranslator($translate);

// lancement de l'application
$front->dispatch();

Je ne vois pas quoi vous dire d'autre, si ce n'est que ca me paraît bizarre d'être le seul à vouloir avoir une appli qui ne fonctionne pas forcément à la racine du nom de domaine. J'ai regardé le principe des routes sous ZF, mais je n'ai pas pas envie de passer par Regexp car le fonctionnement automatique me convient, je veux juste lui dire que la racine de mon site c'est pas / mais /dev/.

Dernière modification par pbpg (11-06-2009 22:17:49)

Hors ligne

 

#6 12-06-2009 09:51:03

patstey
Membre
Date d'inscription: 21-01-2009
Messages: 15

Re: [résolu] dire à Zend où sont mes éléments.

Bonjour,

Dans ton cas, je pense qu'il faut que tu précises au contrôleur frontal la 'base' de tes URL.

Comme dans ton cas, la racine ne pointe pas vers ton dossier /public mais vers ton dossier /dev ton ficher htaccess doit être dans ton répertoire /dev et renvoyer les requêtes vers /public/index.php.

Code:

# .htaccess dans dossier /dev

SetEnv APPLICATION_ENV development

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]

Puis tu précises au contrôleur frontal que la base de tes url est '/dev'

Code:

$front = Zend_Controller_Front::getInstance();
$front->setBaseUrl('/dev'); // affecte la base d'url

Je pense que celà devrait répondre à ton problème.
(pour info l'exemple est dans la doc en ligne et elle est traduite)

Par contre pour indiquer l'adresse d'un css (par exemple) il te faudra écrire: dev/public/css/monCss.css

Bonne continuation

PatStey (débutant ZF)

Hors ligne

 

#7 12-06-2009 10:00:28

pbpg
Nouveau membre
Date d'inscription: 10-06-2009
Messages: 4

Re: [résolu] dire à Zend où sont mes éléments.

patstey a écrit:

Dans ton cas, je pense qu'il faut que tu précises au contrôleur frontal la 'base' de tes URL.

C'est ce que je cherche à faire depuis des jours !! merci beaucoup pour ce coup de main !!!! smile

patstey a écrit:

(pour info l'exemple est dans la doc en ligne et elle est traduite)

oh j'imaginais bien que l'info était qqpart, le souci c'est de la trouver. Je ne m'y retrouve pas vraiment dans la doc officielle.

Par contre pour indiquer l'adresse d'un css (par exemple) il te faudra écrire: dev/public/css/monCss.css

même si j'utilise un helper pour générer mon url ?

Merci !

Hors ligne

 

#8 12-06-2009 10:14:32

patstey
Membre
Date d'inscription: 21-01-2009
Messages: 15

Re: [résolu] dire à Zend où sont mes éléments.

pbpg a écrit:

même si j'utilise un helper pour générer mon url ?

Il faut que ton helper permette de générer l'url de tes fichiers statiques.

wink

PS: pour la doc voir la partie sur le controleur fontal de Zend_Controller

Dernière modification par patstey (12-06-2009 10:15:50)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages