
29 juin
Par Clément dans Tutoriels
Mots-clefs :Architecture, PHP, Symfony, Tutoriel, Watchmydesk, Zend Framework, Zend_Application, Zend_Bootstrap, Zend_Tool

Dans cette première partie, nous allons voir comment préparer son environnement de développement pour créer une application avec le Zend Framework.
Nous allons aussi télécharger les éléments nécessaire à la réalisation de notre application.
Dans cet épisode, nous allons nous concentrer sur la mise en place de l’environnement pour que le Zend Framework puisse être utilisé.
Pour commencer nous allons nous occuper du Zend Framework, et de sa position au cœur de la hiérarchie de nos fichiers.
Pour cela, nous allons nous rendre dans le dossier de MAMP (ou WAMP) ressemblant a cela :
Nous allons créer un dossier nommé frameworks à la racine de façon à mettre notre Zend Framework.
Ainsi, nous pouvons mettre le dossier library de notre Zend Framework dans le dossier frameworks créé en suivant cette hiérarchie :
Une fois cela fait il faut créer un dossier contenant votre application dans le dossier htdocs (MAMP) ou www (WAMP) que l’on nommera watchmydesk pour s’y retrouver tout au long des épisodes.
Dans ce dossier nous allons ajouter tous les dossier qui vont être obligatoires pour notre application :

C’est brut de décoffrage, je sais mais je viens aux explications sur l’utilité des dossiers créés !
Dans ce dossier on retrouve 8 dossiers qui ont tous une fonction bien déterminée.
Ce dossier est à utiliser pour ajouter des composants ou étendre des composants de Zend qui ne vous conviennent pas pour votre application. Par exemple vous voulez ajouter une fonctionnalité à un composant, il faut le mettre dans ce dossier, mais nous y reviendrons le moment venu !
C’est le point d’entrer de votre application. Il contient donc les styles CSS, les images de votre application ainsi que les fichiers javascripts.
Les fichiers de démarrage sont très importants pour que votre application fonctionne correctement. Nous allons devoir coder au total 8 fichiers pour pouvoir voir si notre application fonctionne.
Ce fichier doit être situé dans le dossier public/ de votre application qui représente notre point d’entrée et doit contenir ces lignes de code :
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
defined('LIBRARY_PATH')
|| define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library'));
defined('ZEND_PATH')
|| define('ZEND_PATH', realpath(dirname(__FILE__) . '/../../../frameworks'));
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// On modifie l'include path de PHP
set_include_path(implode(PATH_SEPARATOR, array(
realpath(ZEND_PATH),
get_include_path(),
)));
// On a besoin de Zend Application pour lancer notre application
require_once 'Zend/Application.php';
// On lance la session
require_once 'Zend/Session.php';
Zend_Session::start();
// On créé l'application, on lance le bootstrap et on lance l'application !
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();Le composant Zend_Application permet de lancer notre application sans se soucier de grand chose, en effet, vous avez à lui passer l’environnement de l’application ainsi que le fichier de configuration, et c’est parti !
Ce fichier doit être situé dans le dossier applications/configs et doit contenir ces lignes de code :
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 phpSettings.date.timezone = "Europe/Paris" includePaths.library = LIBRARY_PATH bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" ; so auto-loading will find our classes in library/App autoloaderNamespaces[] = "App_" ; initialize database resources.db.adapter = "MYSQLI" resources.db.params.host = "localhost" resources.db.params.username = "root" resources.db.params.password = "root" resources.db.params.dbname = "watchmydesk" resources.db.params.date_format = "YYYY-MM-ddTHH:mm:ss" resources.db.isDefaultTableAdapter = true ; initialize front controller resource resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.frontController.defaultControllerName = "index" resources.frontController.defaultAction = "index" resources.frontController.defaultModule = "frontend" ; initialize layout resource resources.layout.layoutPath = APPLICATION_PATH "/layouts" [development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1
Ici, on déclare tout ce qui touche à la base de données (qui sera créée dans le prochain épisode), les ressources pour le frontController ainsi que les dossiers à inclure dans votre application. Par exemple ici, on a inclut le dossier library, le dossier application et le dossier où est contenu le Zend Framework.
Les données correspondant au frontController indique à votre application où chercher les modules, le contrôleur par défaut, l’action par défaut et le module par défaut.
Ce fichier doit être situé dans le dossier application/ de votre application et doit contenir ces lignes de code :
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
public function run()
{
// Cela permet d'avoir la configuration disponible de partout dans notre application
Zend_Registry::set('config', new Zend_Config($this->getOptions()));
parent::run();
}
protected function _initAutoload()
{
// On enregistre les modules (les parties de notre application), souvenez-vous : Backend et Frontend
$loader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH));
return $loader;
}
protected function _initSession()
{
// On initialise la session
$session = new Zend_Session_Namespace('watchmydesk', true);
return $session;
}
protected function _initView()
{
// Initialisation de la vue et des helpers de vue
$view = new Zend_View();
$view->doctype('XHTML1_STRICT');
// On ajoute le dossier des helpers
$view->addHelperPath(APPLICATION_PATH . '/views/helpers');
// On charge l'helper qui va se charger de la vue
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$viewRenderer->setView($view);
return $view;
}
}Au cours de notre développement, nous reviendrons dans ce fichier ajouter des éléments.
Ce fichier doit être situé dans le dossier application/modules/frontend/controllers de votre application et doit contenir ces lignes de code :
class IndexController extends Zend_Controller_Action {
public function indexAction(){
}
}Ce fichier doit être situé dans le dossier application/modules/frontend/controllers de votre application et doit contenir ces lignes de code :
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
$errors = $this->_getParam('error_handler');
switch ($errors->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
// 404 error -- controller or action not found
$this->getResponse()->setHttpResponseCode(404);
$this->view->message = 'Page not found';
break;
default:
// application error
$this->getResponse()->setHttpResponseCode(500);
$this->view->message = 'Application error';
break;
}
$this->view->exception = $errors->exception;
$this->view->request = $errors->request;
}
}Comme vous pouvez le voir, nous utilisons beaucoup le mot clef $this qui représente l’objet courant. C’est ainsi que nous pouvons accéder à la vue et affecter des variables à la vue. Nous y reviendrons plus en détails dans quelques épisodes.
Ce fichier doit être situé dans le dossier application/modules/frontend/views/scripts/index de votre application et doit contenir ces lignes de code :
Vous êtes sur mon site
Ce fichier représente la vue associée à l’action index (indexAction) dans le controller index (IndexController)
Ce fichier doit être situé dans le dossier application/modules/frontend/views/scripts/error de votre application et doit contenir ces lignes de code :
An error occurred
<?= $this->message ?>
<? if ('development' == APPLICATION_ENV): ?>;Exception information:
Message: <?= $this->exception->getMessage() ?>Stack trace:
<pre><?= $this->exception->getTraceAsString() ?> </pre>Request Parameters:
<pre><? var_dump($this->request->getParams()) ?> </pre> <? endif ?>
Et enfin il va nous falloir un fichier layout.phtml qui va se trouver dans le dossier application/layouts de votre application.
Ce fichier va nous permettre de ne pas répéter la description de notre page HTML (header et footer) tout en pouvant modifier certaines variables dans le HTML du layout. Ici on appelle la méthode layout()->content pour afficher dans notre div container le contenu des vues qui sont appelées.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WatchMyDesk </title> </head> <body> <div id="container"> <?php echo $this->layout()->content ?> </div> </body> </html>
Maintenant il vous suffit d’aller sur la page http://localhost/watchmydesk/ et si vous pouvez voir le message « Vous êtes sur mon site» l’installation est finit et votre application fonctionne.
Comme vous avez pu le voir, en quelques minutes nous avons mis en place notre environnement de développement à la main. Nous avons abordé pas mal de notions comme le MVC, les exceptions ainsi que les variables passées à la vue depuis le Controller. Ces notions seront approfondis au cours de la série.
Vous trouverez la même partie de ce tutorial pour Symfony sur La Ferme Du Web.
Je vous dis à Lundi prochain, pour la mise en place de la base de données de notre application !
« La série de tutoriaux sur le Zend Framework enfin sur Dator.fr | De magnifiques icônes pour vos reseaux sociaux »
4 trackbacks
66 commentaires
ami44
29 juin 2009 à 7:59
1Bravo pour cet introduction.
Pour info, pour dialoguer en UTF8 avec Mysql j’ajoute ceci dans le fichier *.ini :
resources.db.driver_options.PDO::MYSQL_ATTR_INIT_COMMAND= « SET NAMES ‘utf8′»
Finrod
29 juin 2009 à 10:15
2Premier article que je lis ici, très intéressant et je pense que la suite le sera encore plus.
Par contre, il aurait été bien de donner quelques lignes explicatives sur chacun des fichiers de config, quand c’est fait à la main, j’aime bien savoir à quoi sert ce que je fais
Et puis (ne le prend surtout pas mal, c’est juste mon avis de première lecture) les fautes d’orthographe et les mots manquants font un peu mal aux yeux et ton article perd un peu en crédibilité, une rapide relecture avant la publication ne ferait pas de mal
DarkSmith
29 juin 2009 à 10:52
3@ami44: Depuis la dernière version de zend c’est pris en charge par la resource Db, il faut lui passer ce paramètre : resources.db.params.charset = utf8
D’autre part je trouve vraiment dommage de ne pas expliquer comment se servir de Zend_Tool , ca aurait été bien de montrer que Zend peut « rivaliser» avec Symfony en terme de scaffolding….
Sinon je vois pas l’interet de changer le include_path de php dans ton index.php vu que tu demande a zend application de le faire dans ton bootstrap.ini ligne 5 et 6
Sinon j’attend la suite
Clément
29 juin 2009 à 11:00
4@DarkSmith: Le Zend_Tool aura un tuto rien qu’a lui en screencast
Concernant l’include_path, c’est la génération de Zend_Tool qui me donne se résultat
@Finrod: La relecture serait faite dans la journée ! Merci du retour !
@ami44: Comme vient de dire @DarkSmith depuis la dernière version, on utilise resources.db.params.charset = utf8 ! Merci pour le commentaire !
hermann
29 juin 2009 à 11:37
5merci pour cette première partie, mais je croyais que toute cette série de tutoriel allait être en vidéo, je pense que c’est mieux ainsi et plus rapide à enregistrer aussi.Sinon, merci et bonne continuation.
David
29 juin 2009 à 11:39
6Salut,
Quelques points. Tu me diras si je me trompes.
Je pense qu’il est inutile de mettre set_include_path dans l’index.php
Tu peux mettre les chemins dans ton fichier .ini (ce qui est deja fait d’ailleurs), l’include_path sera construit automatiquement une fois la classe Zend_Application appelée.
Il me semble aussi que la méthode __construct de ta classe Bootstrap est inutile aussi.
Dis-moi si je me trompe je ne suis pas sûr de ce que je dis
A part ça très bon tutorial, mis à part les explications qui manquent.
Clément
29 juin 2009 à 13:03
7@David: Vu que je n’ai pas mis le zend framework dans le dossier library je suis obligé de spécifier le chemin pour accéder à Zend.
La méthode construct ne sert pas à grand chose en effet, c’est modifier !
Merci beaucoup !
David
29 juin 2009 à 15:02
8Ah oui c’est exact, moi j’ai inclus la libraire dans le include_path dans php.ini
C’est pourquoi je n’ai pas besoin du set_include_path
Par contre j’ai un autre doute.
la ligne $application->bootstrap()->run(); appelle normalement la méthode run() de la classe Zend_Application_Bootstrap_Bootstrap qui appelle la méthode dispatch() du controlleur frontal.
Si tu crées une méthode run() dans ta classe Bootstrap, $application->bootstrap()->run() va exécuter la méthode run() de cette classe et non celle de la classe Zend_Application_Bootstrap_Bootstrap. Il n’y aura pas donc pas dispatch.
A tester
zetoun
29 juin 2009 à 15:48
9Merci pour ce tutorial
une fois le projet plus avancé
pourras-tu comparer la consommation cpu et memoire entre zend framework et symfony ?
cela me donnera une idées des perfomances de chacun
il serait interressant de comparer l’aide au debugage (fichier log des erreurs etc)
Clément
29 juin 2009 à 15:59
10@zetoun: Tout est prévu au programme
Test de performance et tout 
Merci de suivre dator.fr
PastisD
29 juin 2009 à 22:11
11@David : Ba non là il y a le « parent::run();» donc ca exécute après le run() de la classe parente.
A moins que ce filou de Clément l’ai rajouter après ton com’
Nas
30 juin 2009 à 16:54
12super article
En revanche il serait vraiment extra d’avoir un zip avec tous le fichiers d’exemple à télécharger
là ce serait la classe !!!
@+
yoga20
30 juin 2009 à 22:18
13Merci pour ce tutoriel,
mais il manque peut être, quelques lignes sur le contenu du fichier htaccess, et les paramatremages minimum du serveur. Etape obligatoire pour pouvoir tester son application.
phifeshaheed
2 juillet 2009 à 10:51
14pourquoi ton appli s’appelle watchmydesk?
Clément
2 juillet 2009 à 11:04
15@phifeshaheed: Ce sera expliqué dans le prochain épisode
DavidV
2 juillet 2009 à 13:45
16Un très bon tutoriel.
J’aurai ajouté un mot sur le principe des fonction _init* dans le bootstrap, parce que c’est un mécanisme très pratique, et peut-être aussi sur APPLICATION_ENV et le fichier ini.
J’attends la suite avec impatience, surtout la partie « model» et le contrôle des formulaires (en esperant une pré-vérification coté client).
David
3 juillet 2009 à 14:01
17@PastisD : en effet il m’avait pas semblé voir le parent::run();
Clément
3 juillet 2009 à 14:30
18@PastisD: @David: En effet, il y était et je l’ai enlever après vérification ! En tout casa vous avez l’œil ! Ça fait plaisir ! Près pour Lundi ? ^^
David
3 juillet 2009 à 20:46
19@hermann: si tu veux voir des tutos en vidéo va sur http://www.zendcasts.com/
cataras
6 juillet 2009 à 10:55
20Il en fallait un. Ce sera moi… :’(
J’ai suivi scrupuleusement de très bon tutorial et malheureusement l’application de fonctionne pas chez moi.
Mon installation est MAMP par défaut. Je n’ai à priori rien modifié dans les réglages MAMP.
Lorsque j’arrive sur http://localhost/watchmydesk/ je vois Index Of de Apache et les trois dossiers application, library et public donc ça ne fonctionne pas. J’ai le même problème avec dodo…
Quelqu’un peut m’aider ?
Clément
6 juillet 2009 à 11:05
21@cataras: Alors il faut aller dans le dossier public
Comme ça tu aura accès a l’index de notre système 
Maxime
8 juillet 2009 à 19:08
22Bonjour, très bon tuto!
Cependant, j’ai continuer sur le même principe et maintenant j’ai plusieur modules. J’ai changer le modules par defaults pour être « ressources» mais quand j’accède à un autre module ex: « admin» sa ne marche absolument pas; layout.phtml se fait executer mais sans aucun apport du IndexController de admin.
ma barre d’adresse passe de public/ à public/admin
Maxime
8 juillet 2009 à 19:24
23Pour ceux qui lisent le message, j’ai finalement trouver ma réponse dans la documentation zend.
Si l’on utilise pas le module de base, exemple dans ce tuto « frontend» , quand l’on définit l’ « Indexcontroller» , celui du module qui n’est pas par défault ex: « backend» devra être définit comme : » class Backend_IndexController … «
Ulyx
10 juillet 2009 à 11:13
24salut,
pourrais tu parler de ton apache ou ton .htaccess pour accéder au point d’entrée par http://localhost/watchmydesk/ au lieu de http://localhost/watchmydesk/public/
chez sympfony il crée un virtualhost
je suppose que c’est pas ton cas
merci
Lao
14 juillet 2009 à 14:24
25La application affiche une page blanche au lieu de « Vous êtes sur mon site»
tout ré vérifie à 4 reprises
Clément
14 juillet 2009 à 14:54
26@Lao: peux tu me dire ce que tu as fait ? As tu bien mis la vue dans le dossier /views/scripts/index/ ? nommée index.phtml ?
palson
20 juillet 2009 à 23:22
27Bonjour,
Merci pour ce super tutorial.
j’ai suivi correctement le tutorial mais la page attendue « Vous êtes sur mon site» ne s’affiche pas pourtant la vue index.phtml est bien présente.
pourriez-vous m’aider
merci
cataras
22 juillet 2009 à 15:16
28J’ai exactement le même problème que @Lao et @palson
kikihub
28 juillet 2009 à 12:21
29Merci pour ce tuto de qualité.
PS : n’oubliez (comme moi) les entêtes php »
GH03
3 août 2009 à 21:14
30@catars, @Lao et @palson : Avez vous édité « include_path» de votre php.ini ?
(source : http://framework.zend.com/manual/fr/introduction.installation.html)
De meme, j’ai modifié la source tel que (en fait, j’ai repris un index.php d’un exemple livré avec le framework 1.9.0 !):
bootstrap() -> run();
?>
A voir avec Clément si mes bidouillages sont réellement une solution ou s’il ne font que de déplacer un autre problème…
@ +
GH03.
PS : J’utilise pas MAMP le logiciel, mais une configuration MAMP (Mac OS Apache MySQL et PHP installés (d’origine sauf MySQL) et configurés ‘a la main’).
GH03
3 août 2009 à 21:17
31Désolé, une erreur lors du copier/coller.
La source de mon public/index.php :
// Definition des variables :
defined(’APPLICATION_PATH’) || define(’APPLICATION_PATH’, realpath(dirname(__FILE__) . ‘/../application’));
defined(’APPLICATION_ENV’) || define(’APPLICATION_ENV’, (getenv(’APPLICATION_ENV’) ? getenv(’APPLICATION_ENV’) : ‘production’));
// Modification de l’» include path» de php :
set_include_path(implode(PATH_SEPARATOR, array(realpath(APPLICATION_PATH . ‘/../library’), get_include_path(),)));
// Appel de « Zend Application» pour lancer l’appli :
require_once ‘Zend/Application.php’;
// Lancement de l’appli :
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . ‘/configs/application.ini’);
$application -> bootstrap() -> run();
NE PAS OUBLIER LES TAGS…
leknoppix
10 août 2009 à 9:33
32Tu devrais spécifier dans ton tutoriel la necessité de mettre les balises php.
Mais bon très bon tutoriel.
Psykotik
19 août 2009 à 16:20
33Bonjour à tous,
J’espère que les commentaires sont toujours lu, car j’ai le même problème que @Lao et @palson. J’ai relus plusieurs fois le tutoriel et je suis toujours bloqué au même endroit. L’index de la page s’affiche à tous les coups (Quand je parle d’index c’est avec les 3 dossiers principaux).
J’ai pas réussi a modifier le fichier php.ini j’ai trouver la ligne mais quel chemin mettre? je n’ai pas de dossier library dans le dossier de ZF, le seul que j’ai c’est celui qu’on doit créer pendant le tuto. sachant qu’il n’y a rien dedans je ne l’ai pas indiqué.
J’ai eu quelque changement lorsque que j’ai indiqué le chemin complet dans ces lignes :
defined(’APPLICATION_PATH’) || define(’APPLICATION_PATH’, realpath(dirname(__FILE__) . ‘/../application’));
defined(’LIBRARY_PATH’) || define(’LIBRARY_PATH’, realpath(dirname(__FILE__) . ‘/../library’));
defined(’ZEND_PATH’) || define(’ZEND_PATH’, realpath(dirname(__FILE__) . ‘/../../../frameworks’));
mais j’ai eu une multitude de changement à faire au niveau du framework, c’est vous dire que j’ai vite utilisé le CTRL-Z.
Je suis sous windows vista avec wamp, est-ce que mettre XAMP à la place changerai quelque chose?
Dernier point, j’ai essayé d’allez dans public mais rien ne s’affiche.
Merci de votre aide
Clément
20 août 2009 à 8:51
34@Psykotik: @palson: @Lao: J’essaye de vous répondre au plus vite! Je vais voir d’où vient le problème!
A bientôt
Psykotik
20 août 2009 à 10:24
35Merci Clément,
Je peux te transmettre mes fichier si tu veux?
Clément
20 août 2009 à 10:34
36@Psykotik: Pourquoi pas
A partir de la section contact
A très vite
Psykotik
20 août 2009 à 11:19
37Pour info j’ai le frameworks 1.9.1
Clément
20 août 2009 à 12:02
38@Psykotik: Alors ton erreur : dans le fichier index.phtml tu as mis ton texte brut dans des balises PHP alors que du texte brut n’a pas besoin de balise
Voila pourquoi tu ne voyais rien
Psykotik
20 août 2009 à 12:31
39Merci beaucoup,
depuis le début je modifiais l’index.phtml qui ce trouver dans script/
et non pas celui du répertoire script/index/
Je tiens à te féliciter pour cette réactivité, et ton tuto est en béton. je vais continuer les tutos suivant donc tu risque de me retrouver un peu plus loin.
Merci encore à tout à l’heure ^^
Mixka13
29 août 2009 à 20:02
40Salut, Clément, je trouve que ton tutoriel est bien fait et très clair, néanmoins quelques informations supplémentaires sur les étendues de nos actions auraient été les bienvenues.
Sinon j’ai le même problème catars, Lao et palson, or aucune des « solutions» présentent dans la liste des commentaires ne résout mon problème. Alors voila je voudrais savoir un peu ce que je peux faire car je ne voudrais pas continuer la suite des tutoriaux avec une base « fragile» .
Merci, a+
Tientoune
15 septembre 2009 à 15:38
41Bonjour,
jai un probleme commun avec les autres, c’est une page blanche help ?
mais quand je vais directement dans le lien /../../../views/scripts/index/index.phtml, je voie le texte
mais sur la page localhost:8888/public/ c’est blanc,
aussi si tu peux partager ton .htaccess, pour que je puisse aller sans passer par public
Merci
Julien
15 septembre 2009 à 21:50
42Salut,
Très bon tutoriel Clément, simple et efficace comme je les aime…
Néanmoins, il manque un aspect important : la configuration du serveur Apache via le fichier de configuration (apache.conf ou httpd.conf selon les cas) et le .htaccess.
Ma solution est la suivante pour accéder à l’application par http://localhost/watchmydesk/ au lieu de http://localhost/watchmydesk/public/. Elle suppose que le mod_rewrite d’Apache soit activée. (Pour le vérifier, il suffit de regarder si il est présent dans les « Loaded Modules» du phpinfo())
1. Dans la configuration Apache (apache.conf ou httpd.conf) :
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
#Alias pour faire correspondre /watchmydesk/ au répertoire /watchmydesk/public/
Alias /watchmydesk/ « /path/de/la/racine/du/serveur/watchmydesk/public/»
2. Dans le répertoire /watchmydesk/public/, placer le .htaccess suivant :
# Règles de réécriture pour Zend Framework
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /watchmydesk/index.php
# Sécurité : Ne pas autoriser le parcours de répertoires
Options -Indexes
Cette solution fonctionne très bien mais ne me semble pas très élégante… Donc, j’aimerais connaître ta solution si tu as procédé autrement…
Julien
15 septembre 2009 à 22:13
43Le point 1 n’a pas passé les filtres HTML du blog… Il manque une partie de ma solution du coup… Je reprends donc ce point en improvisant :
OuvertureBalise Directory « /path/de/la/racine/du/serveur/» FermetureBalise
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
OuvertureBalise Directory / FermetureBalise
#Alias pour faire correspondre /watchmydesk/ au répertoire /watchmydesk/public/
Alias /watchmydesk/ « /path/de/la/racine/du/serveur/watchmydesk/public/»
Il faut biensûr remplacer « OuvertureBalise » par « » en supprimant les espaces.
N’oubliez pas de remplacer les « » par des doubles quotes si vous voulez que ça marche, car eux-aussi ont été transformés par le blog.
Julien
15 septembre 2009 à 22:16
44Décidémment…
Donc OuvertureBalise est à remplacer par inférieur stricte et FermetureBalise par supérieur stricte
Clément
16 septembre 2009 à 8:11
45Bon alors, pour répondre à toutes les intérogrations, voici le virtualhost que j’ai utilisé, a placer dans votre httpd.conf de votre installation d’apache.
Vous devrez aussi modifier votre fichier hosts pour ajouter la ligne
Bon courage, si vous avez d’autre question, n’hésitez pas
uduvudu
16 septembre 2009 à 9:04
46« Bon courage, si vous avez d’autre question, n’hésitez pas»
mdrrrrrr dans chaque partie du tuto il y a 1000 questions posées
Une au hasard dans la partie 7, dans ton constructeur tu fais appel a une variable membre $this->view qui n’est pas declarée dans ta classe
David a demandé une premiere fois et une deuxieme fois a relancer la question…..
Clément
16 septembre 2009 à 9:34
47@uduvudu: Je viens de répondre à David. Ma TodoList ne ressemble plus à rien, tellement de choses a faire.
Néanmoins merci de faire part de ton avis, si tu as d’autre remarque n’hésite pas à me contacter directement par email à partir de la page de contact.
uduvudu
16 septembre 2009 à 10:16
48Lol tu es debordé dans ta TodoList (c’est le metier qui rentre). Cependant, je pense que les remarques sont bonnes et utiles a faire dans les commentaire. Cela permet d’avoir des reponses d’autres personnes et ainsi faire participer tout le monder;-)
Ryt ?
stephane
28 septembre 2009 à 17:54
49Merci et bravo pour tout ce travail.
Clément peux tu me dire ou faut il placer le code que tu viens de donner qu’il faut placer dans le httpd.conf, car en le mettant à la fin plus rien ne marche
stephane
28 septembre 2009 à 20:12
50Je ne comprend pas pourquoi ça marche pour certain et pas pour d’autres comme moi??
Clément
28 septembre 2009 à 20:14
51@stephane: tu as redémarrer ton serveur ? tu es sur quel plateforme ? WAMP/MAMP/LAMP ? Normalement tu le met à la fin de ton httpd.conf dans conf/apache/
et tu redémarre ton serveur
stephane
29 septembre 2009 à 17:22
52Merci Clément
Je suis sur wamp, il n’y a aucun conf/apache/ dans mon fichier httpd.conf du coup j’avais essayé en le mettant tout bètement à la fin, mais du coup ça planté.
Cela dit j’arrive désormais à faire apparaitre la phrase comme d’autres l’ont déjà fait en mettant : http://localhost:82/watchmydesk/public/
(par contre la phrase ne respecte pas les accents : « Vous �tes sur mon site» )
Puis je continuer le tutoriel en faisant de cette façon ?
AVIS pour les GROS DEBUTANT comme moi : n’oubliez pas les balises PHP () sur le code des pages php, j’ai perdu un moment à cause de ça.
Lao
2 octobre 2009 à 14:24
53Lao a trouvé que la page blanche été du au mauvais path > library/Zend
Amen!!!!!
François Guibert
5 octobre 2009 à 12:44
54Bonjour,
Merci pour ce tuto (le plus « pas à pas» que j’ai trouvé sur le web, parfait pour les débutants).
J’ai un souci de sortie des informations en passant par la redirection htaccess. Je m’explique :
http://localhost/watchmydesk/ ne me sort rien tandis que
http://localhost/watchmydesk/public/ fait apparaître « Vous êtes bien sur mon site»
Je teste alors le _construct du bootstrap :
echo ‘1′;
parent::run();
echo ‘2′;
Et là, même topo :
- dans la redirection, j’ai le test 1 mais pas le 2
- dans l’accès direct, j’ai bien mes 2 tests qui apparaissent.
Une idée pour ça, je tourne en rond…
Gwinyam
24 octobre 2009 à 22:43
55Pareil, je tourne en bourrique…
Clément, tu peux nous filer un zip de ton application? Qu’on puisse voir où est le bug chez nous?
En tout cas merci pour tes tutos, ça change des trucs anglophones qu’on trouve sur le net un peu de franchouillardise^^
Clément
25 octobre 2009 à 14:48
56@François Guibert: le dossier public de votre application est le point d’entrer. Toutes les requêtes passe par le fichier index.php. Donc il faut créer un virtualhost dans le httpd.conf de votre installation d’apache (comme dans le commentaire http://www.dator.fr/tutorial-creer-une-application-avec-le-zend-framework-1-preparation-de-lenvironnement-de-watchmydesk/#comment-7642)
@Gwinyam: Merci pour le commentaire, les sources seront bientôt disponible mais je suis un peu chargé en boulot en ce moment
ouattsab
12 novembre 2009 à 12:56
57Très bon tutoriel, mais j’ai une préoccupation
Si je crée un site avec Zend Framework, comment faire héberger mon site chez n’importe quel hébergeur étant donné que je n’ai pas accès à ses fichier http.conf. je ne pourrai donc pas modifier le fichier http.conf et je ne pourrai pas non plus créer d’hôte virtuel.
Comment faire ?
ouattsab
12 novembre 2009 à 13:32
58Salut très bon tutoriel
Seulement j’ai une préoccupation.
Je constate pour pouvoir faire fonctionner conçu avec le framework zend il faudra avoir la main sur le serveur apache notamment l’activation du mode rewrite, la création d’un hôte virtuel etc.
Si je je dois faire héberger ce site chez un hébergeur qui n’a pas activé toutes ses directives, que faire ?
J’attend impatiemment une reponse.
Merci.
h_isham
19 novembre 2009 à 1:13
59salut Clément :
Merci pour le bon tutoriel. Si vous pouvez faire un dossier qu’on peut télécharger, comme le « Quickstart» dans http://framework.zend.com/docs/quickstart.
Clément
21 novembre 2009 à 17:44
60@ouattsab: OVH permet le fonctionnement d’un framework comme Zend Framework sans encombre et permet d’activer les directives à partir d’un htaccess
@h_isham: C’est prévu, pour le moment j’ai pas mal du truc en projet mais je vous en fait un au plus vite !
Nguero
1 décembre 2009 à 16:15
61Bonjour,
j’ai trouvé le tutoriel très intéressant. j’ai suivi jusqu’au bout. Mais quand j’exécute il ne m’affiche rien. Cela me fait tourner depuis deux jours, SVP aidez moi car j’ai un projet urgent à développer. Merci d’avance.
Si je peux avoir l’adresse du forum pour poser des questions en direct ca va beaucoup m’aider.
kaly
2 décembre 2009 à 0:35
62@Nguero:
Bonjour,
Je viens même de suivre ce tutoriel très intéressant !
J’ai aussi eu le problème de « page blanche» , qui pour ma part était du à une vulgaire faute de frappe !
Je m’en suis aperçu en basculant le projet en mode ‘developmenent’ (qui affichait du coup les erreurs !)
$application = new Zend_Application(
‘development’,
APPLICATION_PATH.» /configs/application.ini»
);
En espérant que ça en aidera certain !
++
fabrice
8 décembre 2009 à 11:35
63belle intro, mais chez moi je dois lancer http://localhost/watchmydesk/public/ pour voir la page test où se trouve le pb du fait que je puisse pas faire de même que toi : http://localhost/watchmydesk/
el mahdi
25 décembre 2009 à 15:18
64@Clément: merci pour le tuto !
@kaly: merci
djik
14 janvier 2010 à 12:10
65le tutoriel à l’air bien… s’il pouvait fonctionner.
J’ai testé la procédure 5 fois d’affiler sur WAMP server, et au lieu d’avoir une fin joyeuse, je me retrouve sur la page d’erreur…sniff
Il y a t-il des étapes à faire qui n’apparait pas sur le tutoriel?
Merci
djik
14 janvier 2010 à 12:11
66le tutoriel à l’air bien… s’il pouvait fonctionner.
J’ai testé la procédure 5 fois d’affiler sur WAMP server, et au lieu d’avoir une fin joyeuse, je me retrouve sur la page d’erreur…sniff
Il y a t-il des étapes à faire qui n’apparait pas sur le tutoriel?
Merci@djik: @djik: @djik:
Laisser un commentaire
Devenir Fan de Dator.fr
Nuage de tags
Sponsors
Blogs Amis
Derniers Posts
Derniers Commentaires
Les meilleurs sujets
Propulsé par WordPress