Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour, je viens presque de terminer mon petit site, je l'ai mis dans mon hebergeur , il fonctionne bien, maintenant il faut que je m'occupe un peu du routeur, par contre comment fait t'on pour que le visiteur ne vois pas le dossier public mais directement l'url du controlleur ?
fait t'il passer par .htacess ? ou autre chose,
par contre sur apache je ne sais pas si je peux y accéder, je n'ai qu'un abonnement mutualiser pro.
ou c'est une des class routeurs de zend qui peut s'en occuper
merci d'avance de me guider
Dernière modification par keokaz (22-08-2011 12:43:10)
Hors ligne
Bonjour,
Quand tu dis mutualisé pro ? Chez OVH ?
Si oui tu dois avoir un dossier www dans lequel tu es censé mettre les fichiers du site. Dans ce dossier, tu mets de contenu du dossier public du site. Tu copies le reste des dossiers à la racine de ton hébergement, et tout marchera bien !
Hors ligne
merci de ta réponse, mais je doit déplacer mes dossier public ?
www./projetzend/public/
mon arbre sur ovh es la suivante
--cgibin --request --www
faut t'il que je mettent mes dossiers app/library/test au même niveau que le www
ensute je déplace tous ce qui est dans mon dossier "public" dans www,
ce qui me donnerais comme arbre
--cgibin --request --app --library --test --www // le nom projetzend est remplacé par www ? |--css |-- image |--js
mais en faisant cela cela va pas chabouler toute les chemins ?
Dernière modification par keokaz (22-08-2011 09:42:04)
Hors ligne
Si tu veux mettre le projet Zend sur le nom de domaine principal, il faut en effet la dernière architecture.
Si ton site est bien codé, les seuls endroits où il y aura un problème de chemin c'est dans tes tests unitaires.
Pour comprendre le raisonnement, essaye de t'imaginer à quoi ressemble le Vhost chez OVH... En fait c'est un Vhost dont le document root pointe sur /ton_home/www, hors lorsque tu développais, tu utilisais /ton_home/public.
Hors ligne
merci a toi ca fonctionne nickel
Dernière modification par keokaz (22-08-2011 12:42:46)
Hors ligne
j'ai crier voictoir trop vite
j'ai renomer mon index dans "www" qui est public par "accueil.php"> index/ajouter
lorque je vas sur le chemin du serveur
www/accueil.php
cela fonctionne bien, zend affiche correctement la vue, j'ai mis un bouton "ajouter" qui demande le controller ajouter, dès que je demande d'ajouter avec l'url
www/index/ajouter
il me met un message d'erreur
Fatal error: Uncaught exception 'Zend_View_Exception' with message 'script 'error/error.phtml' not found in path (/homez.335/monsite/application/views/scripts/)' in /homez.335/monsiter/library/Zend/View/Abstract.php:988 Stack trace: #0 /homez.335/stamcar/library/Zend/View/Abstract.php(884): Zend_View_Abstract->_script('error/error.pht...')
si je vide la methode de mon controller ajouter, pas d'erreur, par contre je demande d'instancer
public function ajouterAction() { $form = new Application_Form_voiture();
on dirait que le serveur n'arrive pas à lire le contenu du formulaire form.php ?
sinon les dossiers qui son à la racine du serveur après de "www", quel doivent être leurs droits ?? en 644?
Dernière modification par keokaz (22-08-2011 16:46:01)
Hors ligne
je crois le problème c'est que zend ne trouve de fichier, j'ai utiliser la fonction rename donc j'ai défnis des attribu comme ceci
protected $id_last; //on charge la valeur avec set_idlast() protected $lien_show = "../public/image/show/"; protected $lien_big = "../public//image/big/"; protected $lien_mini = "../public/image/mini/";
du coup il ne va pas trouver le bon chemin, j'ai remplacer tous les public par des "www" c'est la même chose , j'ai même mis des
../../image
ca tout chambouloer
il y a t'il une methode de zend qui test si le chemin existe ?
Dernière modification par keokaz (22-08-2011 17:12:35)
Hors ligne
Je comprends pas tout ce que tu dis...
Pourquoi www/accueil.php ? ça correspond à http://tonsite.com/ ?
Tu as renommé index.php en accueil.php ? pour quoi faire ? Tu as modifié ton .htaccess pour que le rewrite appel accueil.php (qui au passage n'a aucun intérêt comme nom pour ce fichier...) ?
Tu n'as pas de script error.phtml correspondant à ton controller d'erreur, ce qui fait que tu ne pourras pas voir les messages d'erreur.
Pourquoi ton formulaire s'appelle Application_Form_voiture ? Tu devrais suivre les conventions de nommage et mettre une majuscule à voiture (nom de classe et nom de fichier).
Euh c'est quoi ces liens que tu définis là ? Ils ont quel intérêt ? Ton document root est /www/ donc pas besoin de t'embêter avec des liens pareils...
"../public/image/show/" => "/image/show/"
Toutes les requêtes sont de toutes façons prises en charge par index.php (ou n'importe quel fichier contenant les informations de lancement de l'application, défini dans ton .htaccess).
Es-tu sur d'avoir les bases en développement avec ZF ?
Tu devrais vraiment consolider tes connaissances...
Hors ligne
les attributs protecte sont ici pour refinire le lieu de l'enregistrement de l'image
[lang=php] protected $lien_big = "../public//image/big/"; $upl_big0 = new Zend_Form_Element_File('upl_big0'); $upl_big0->setLabel('Telecharger image 1:') ->setDestination($this->lien_big);
pour l'histoire d'avoir renomer l'index c'est par ce que je me retrouve avec 2 index.php
//index.php de redirection <?php <?php header('Location: http://monsite/ancien_site/index.html'); ?> //toute les anciens pas html sont déporter dans le repertoire "ancien_site"
je ne n'utilise pas un header location, je serais obligé de rediriger l'index de ma partie zend
l'un c'est pour faire un redirection de l'ancienne partie (car ce n'est pas moi l'ai fait donc je ne voulais pas m'enbêter, en plus à l'aide de l'assistant le code est vraiment pas popre)
et l'autre le fameux index.php du framwork.
mais je pense que je vais devoir l'intéger dans la partie "www" avec zend(les anciennes pas ne sont que du 100% html +javascript pas de php)
j'ai retitrer toute les lignes qui font appelle a ces attribut, et cela fonctionne bien , j'enregistre et je modfie sans problème.
je vais essayer de voir si c'est pas dans le htacess qu'il faut modifier ou le boostrap
c'est bien que les chemin ne sont pas correcte
Dernière modification par keokaz (22-08-2011 17:53:04)
Hors ligne
Franchement essaye d'améliorer ton expression, et d’éclaircir un peu ta compréhension de tes problèmes...
En gros tu as un ancien projet html, et un nouveau en ZF ?
L'ancien devrait alors se trouver dans /www/ancien_site par exemple, et ton .htaccess (dans /www) devrait rewriter les requêtes finissant par .html dans le dossier /www/ancien_site.
Personnellement ça ne me semble pas plus dur que ça pour avoir quelque chose de propre...
Hors ligne
j'ai recommencer à zero mon projet et petit à petit fait un copier coller, j'ai remarquer que si je change le dossier du projet cela ne fonctionne plus, je pense que comme j'ai refait petit à petie pas à par avec zend tool, on fichier zfproject.xml est correcte.
en plus le nombre de fois que je me fait avoir en downloaddant des fichiers hebergeurs en local et qui ne marche car les doits ou l'execution était bloquant, ca me ralentit dans ma progression.
j'ai bien modifier mes attribut de lien par des ww et ça fonctionne
[lang="php"} protected $id_last; //on charge la valeur avec set_idlast() protected $lien_show = "../www/image/show/"; protected $lien_big = "../www/image/big/"; protected $lien_mini = "../www/image/mini/";
en tout ca meci à tois de m'avoir donner l'atuce de mettre les dossier au même niveau que le www, je n'aurai jamais penser.
pense tu que ces 3 urls qui rest fixe je peux les mettre dans un fichier de constante ? dans symfony il y avais un fichier en yml , on pouvais mettre toute les constantes, c'était pratique car si on devais changer une valeur, on ne se tapait pas a corriger toute les donnée propager.
Dernière modification par keokaz (22-08-2011 22:34:19)
Hors ligne
Le fichier où on défini les constantes est en général index.php (d'ailleurs tu y trouveras APPLICATION_PATH, APPLICATION_ENV).
Sinon, je ne vois toujours pas l'intérêt de tes variables dans ce cas la (qui devraient soit dit en passant être des constantes plutôt que des variables), car logiquement ton execution se fait dans /www/index.php et ton current dir est donc /www/.
Hors ligne
je m'y perd un peu avec ces chemins,
// Définit le chemin du repértoire de l'application defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . './application'));
si par exemple j'ai cette arbre, et que j'utilise APPLICATION_PATH qui est au dessus :
racine |-- application
Zend ira chercher le repertoire application dans:
racine/application
mainenant je par exemple application change de dossier:
racine |--newdossier |--application |--www |--index.php //le fichier qui contien APPLICATION_PATH
il faut que je chande APPLICATION_PATH ?
// Définit le chemin du repértoire de l'application defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '.newdossier/application'));
en faisant ceci,zen ira chercher son dossier application dans
raine/newdossier/application
Dernière modification par keokaz (23-08-2011 08:15:54)
Hors ligne
Je comprends toujours pas ton problème...
[lang=php] || define('APPLICATION_PATH', realpath(dirname(__FILE__) . './newdossier/application'))
Logiquement il te manquait le / devant newdossier. Sinon dans le concept c'est bon.
Hors ligne
mon soucie c'est que je ne sais pas retrouver mes fichiers, car je m'enbrouille avec les "../", il faudrai que j'utilise autre chose
Si je décompose cette ligne que tu m'a donner
dirname(__FILE__) serais "racine";
en ajoutant './newdossier/application' on obtiendrai
//racine + /newdossier/application racine/newdossier/application
Si je veux afficher un image comment je procède ?
racine |--newdossier |--application |--vue |--fleur.phtml |--www |--image |--lesfleurs |--tulipe.jpg
[lang=php] fleur.phtml ../ --> pour monter le dossier vue ../../ -->pour monter le dossier appplication ../../../ -->pour monter le dossier new dossier ../../../ --> /www/image/lesfleus/tulipe.jpg <img src="../../../www/image/lesfleus/tulipe.jpg> il me faudrai un system qui affiche seulement le debut de l'adresse image
lorsque j'execute fleur.phtml pour accéder aux dossier image je doit faire descendre 4 fois de dossier, j'ai voulu utliser url de base, mais apparement dans la vue il ne le voit pas.
pour vérfier le repertoire current j'ai essayer de faire dans ma vue, mais rien ne s'affiche
<?php echo $this->baseUrl() ?>
Dernière modification par keokaz (23-08-2011 10:36:33)
Hors ligne
J'aurais envie de dire dans fleur.phtml, le code suivant suffit :
[lang=phtml] <img src="<?php echo $this->baseUrl() ?>/image/lesfleus/tulipe.jpg">
Comme tu le disais, le baseUrl n'affiche rien (normal, le base url de ton projet est le base url de ton host). Ensuite, le chemin de l'image est donné en fonction de ce chemin, donc dans tout ce qui est sous www.
Hors ligne
en effet ca fonctionne bien, je pensais que ça allait afficher un erreur
j'aimerai avec cette image tulipe la miniaturiser, j'affiche déjà l'image a traiter par ce script
//je suis dans fleurs.phtml <?php $image = "/tulipe.jpg"; $prefix= "/image/big"; $mini="/image/mini"; ?> <h1>image a miniaturiser</h1> <img src="<?php echo $this->baseUrl().$prefix.$image;?>" >
jusqu'a la pas de sourci, j'ai bien mon image qui est afficher
maintenant je souhaite utiliser phpThump
j'ai donc rajouter un ligne supplémentaire
<?php $image = "/tulipe.jpg"; $prefix= "/image/big"; $mini="/image/mini"; ?> <h1>image a miniaturiser</h1> <img src="<?php echo $this->baseUrl().$prefix.$image;?>" > <?php echo $this->thumb( $this->baseUrl().$prefix.$image, 100, 100, $this->baseUrl().$mini, $this->baseUrl().$mini); ?>
jai un erreur il ne trouve pas l'image
An error occurred Application error Exception information: Message: Image file not found: /image/big/tulipe.jpg #0 /homez.335/monsite/library/PhpThumb/ThumbBase.inc.php(172): ThumbBase->triggerError('Image file not ...') #1 /homez.335/monsite/library/PhpThumb/ThumbBase.inc.php(110): ThumbBase->fileExistsAndReadable() #2 /homez.335/monsite/library/PhpThumb/GdThumb.inc.php(96): ThumbBase->__construct('/image/big/tuli...', false) #3 /homez.335/monsite/library/PhpThumb/ThumbLib.inc.php(127): GdThumb->__construct('/image/big/tuli...', Array, false) #4 /homez.335/monsite/application/views/helpers/Thumb.php(14): PhpThumbFactory::create('/image/big/tuli...') #5 [internal function]: Zend_View_Helper_Thumb->thumb('/image/big/tuli...', 100, 100, '/image/mini', '/image/mini') #6 /homez.335/monsiter/library/Zend/View/Abstract.php(350): call_user_func_array(Array, Array) #7 /homez.335/monsite/application/views/scripts/index/ajouter.phtml(15): Zend_View_Abstract->__call('thumb', Array) #8 /homez.335/monsiteapplication/views/scripts/index/ajouter.phtml(15): Zend_View->thumb('/image/big/tuli...', 100, 100, '/image/mini', '/image/mini') #9 /homez.335/monsite/library/Zend/View.php(108): include('/homez.335/stam...') #10 /homez.335/monsite/library/Zend/View/Abstract.php(888): Zend_View->_run('/homez.335/stam...') #11 /homez.335/monsite/library/Zend/Controller/Action/Helper/ViewRenderer.php(900): Zend_View_Abstract->render('index/ajouter.p...') #12 /homez.335/monsite/library/Zend/Controller/Action/Helper/ViewRenderer.php(921): Zend_Controller_Action_Helper_ViewRenderer->renderScript('index/ajouter.p...', NULL) #13 /homez.335/monsite/library/Zend/Controller/Action/Helper/ViewRenderer.php(960): Zend_Controller_Action_Helper_ViewRenderer->render() #14 /homez.335/monsite/library/Zend/Controller/Action/HelperBroker.php(277): Zend_Controller_Action_Helper_ViewRenderer->postDispatch() #15 /homez.335/monsite/library/Zend/Controller/Action.php(527): Zend_Controller_Action_HelperBroker->notifyPostDispatch() #16 /homez.335/monsite/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('ajouterAction') #17 /homez.335/monsite/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #18 /homez.335/monsite/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #19 /homez.335/monsite/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #20 /homez.335/monsite/www/index.php(26): Zend_Application->run() #21 {main} Request Parameters: array ( 'controller' => 'index', 'action' => 'ajouter', 'module' => 'default', )
j'ai utiliser le css pour réduire mes images
Dernière modification par keokaz (24-08-2011 17:47:20)
Hors ligne
Pelt comprendre le raisonnement, essaye de t'imaginer à quoi ressemble le Vhost chez OVH... En fait c'est un Vhost dont le writing signifier pointe sur /ton_home/www, hors lorsque tu développais, tu utilisais /ton_home/public
Hors ligne
Pages: 1