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
90 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:
goosy
19 février 2010 à 15:24
67Salut Clément ,
Je viens de commencer à étudier le framework de zend , c’est ainsi que j’ai commencé à lire ton tuto (chouette tuto). J’ai quelque problème pour la première étape : la fameuse page blanche , et le virtualhost qui bousille l’affiche de mes autres sites en locales . Bien évidemment j’ai lu les commentaires pour trouvé une solution mais rien à faire , je reste exclus d’une fin heureuse pour cette première étape.
Un coup de main serai le bien venu
ps: ma config : wamp server sous xp , zend framework 1.10
merci à bientot
Kirk57
20 février 2010 à 11:48
68Bonjour à tout le monde,
Comme dit au post #42, il faut créer un fichier .htaccess à la racine du site, ici « watchmydesk/» avec le blabla que cette personne à indiqué.
Bien sûr il faut que l’url rewriting soit activé sur le serveur apache.
Mais ceci est la seule solution viable sans passer par la modification du httpd.conf et du host quand on a un hébergement mutualisé et autant avoir la même config en local qu’en production.
Sauf exceptions, le mod_rewrite est activé par défaut chez les hébergeur tel qu’OVH, 1&1, Planethoster (le meilleur hébergeur qu’il m’est été donné de voir à ce jour).
En bref, il faut que TOUTES les requêtes qui arrivent à l’application soient redirigées vers l’index.php du dossier « public/» .
Je n’ai pas encore testé ce tutoriel mais je vais le faire et pour ma part, je pense que le contenu du .htaccess pourrait être ceci :
RewriteEngine on
Options -Indexes
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ public/index.php [NC,L]
Si je me trompe, n’hésitez pas à le dire.
@+
devweb
30 mars 2010 à 14:09
69Bonjour,
Merci pour ce tuto c’est du super boulot.
En local pour que cela fonctionne j’ai ajouté une ligne dans le fichier .htaccess
wampserver2
RewriteEngine On
RewriteBase /alias_du_site
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ – [NC,L]
RewriteRule ^.*$ index.php [NC,L]
si cela peu aider
@+
boww
14 avril 2010 à 21:54
70Bonsoir,
Pour ma part, en ouvrant watchmydesk/public (je n’ai pas fait le rewriting) j’ai : « bootstrap() -> run(); ?>»
Si vous avez une réponse…… je suis preneur.
Merci et bonne soirée à tous et a toutes
Aenima
26 avril 2010 à 0:42
71bonsoir, pour ma part la page d’accueil watchmydesk/public/ marche avec marqué « Vous êtes sur mon site, bienvenue !» mais dès que je veux utiliser une autre action du controller index ou une action d’un autre controller plus rien ne marche… d’où pourrait venir le problème ?
sachant que: watchmydesk/public/index.php -> marche
watchmydesk/public/index/index -> marche pas
watchmydesk/public/index/ajouter -> marche pas
Aenima
26 avril 2010 à 10:18
72en fait mon problème venait de majuscules dans l’URL…
A bientôt !
tomtom
10 juin 2010 à 1:03
73Moi j’en ai marre, au début j’avais la page blanche !!!!!!!!!!!!!!!!!!!!!!!!!!!
tomtom
10 juin 2010 à 1:14
74Est ce que t’as structure dossiers/fichiers tourne sous la version 1.10 parceque là je sais pas quoi faire de ma page blanche et pourtant j’ai déjà fait pas mal de tutoriel, c’est démoralisant
Cyrux
11 juin 2010 à 15:45
75Bonjour,
Tout d’abord, Merci pour le tuto qui est, il faut le dire, très bien expliqué.
Néanmoins, en tant que grand néophyte du zend / mcv … J’ai réussi à … Me planter lamentablement !!!
J’ai suivi le tuto du début à la fin et pense avoir revérifier correctement avant de poster,
je suis premierement tombé sur une http 500,
puis ayant ajouté les codes de l’un et de l’autre au dessus dans les commentaires, je me retrouves avec une erreur 404 … pas beaucoup mieux vous me direz !!
quelqu’un peut il m’aider svp !!!
Petites précisions => ma configuration est la suivante :
- Windows xp pro 2002 sp3
- wamp serveur 2.0
- eclipse
Autre précision, mon icone wamp server est jaune au 3/4 et refuse de se mettre totalement blanche (en ligne ou hors ligne …)
Quelqu’un pourrait il me venir en aide s’il vous plait ??
Merci d’avance !!!
Cyrux
18 juin 2010 à 13:40
76Personne ??? Suis-je donc le seul à avoir ce type de problème ???
litLeb
9 juillet 2010 à 17:25
77Je suis tombé la dessu, ça peux être intéressant lorsque vous n’avez pas accès au httpd.conf
http://framework.zend.com/wiki/display/ZFDEV/Configuring+Your+URL+Rewriter
Mais ça reste peut propre … Perso j’abandonne Zend a cause de ça !
ggouhier
24 juillet 2010 à 13:08
78Est-il possible de faire 2 dossiers application, le premier comportant le frontend et le dernier le backend?
Ariden
5 septembre 2010 à 9:06
79Bonjour, merci pour ce tuto.
C’est le premier vrai tuto que j’ai trouvé (après 4 jours de recherches). Pour dire, j’ai même acheté un livre « Zend Framework et php» , chose à ne pas faire …
A noter, ça fais plus de deux ans que je programme avec CodeIgniter, qui permet de se lancer dans le programmation bien plus rapidement, les paramètres de bases étant déjà pré configurés, l’appel aux helpers, views, librairies… étant vraiment plus simples. Celui-ci proposant aussi un système de mise en cache des pages (très simple d’utilisation). Ce framework étant réputé pour être légé et procurant un affichage des pages plus rapides que certains frameworks. Je vais continuer Zend en espérant que je verrais vite les bons côtés
Je passe moi aussi à l’étape suivante.
Bonne continuation
Fabien
29 septembre 2010 à 10:41
80Bonjour,
j’ai moi aussi un problème de « page blanche» j’utilise wamp serveur et j’ai vérifié plusieurs fois je ne vois pas trop d’ou vient le prolbème…
Stéphane
7 octobre 2010 à 22:15
81Bonjour,
d’abord merci pour ce tuto très intéressant, mais je me retrouve avec deux problèmes (que d’autres ont également) :
- Je suis obligé de rajouter /public à la fin de l’URL pour afficher « Vous êtes sur mon site» ,
- et la phrase (» Vous êtes sur mon site» ) s’affiche avec un caractère étrange à la place du « ê» …
Quelles sont les manipulations (de manière propre) à faire pour arranger tout ça en sachant que ma configuration est :
* Windows XP version 5.1 Service Pack 3
* WampServer 2.0
* Eclipse
Merci d’avance à ceux qui répondront à ce message !
aiglefin
17 novembre 2010 à 23:35
82Après plusieurs recherches, ce tutoriel est le seul qui m’ait donné vraiment envie de continuer depuis mes debuts sur zendframework. Toutefois voici ce que j’obtiens lorsque je tape http://localhost/watchmydesk/ dans la barre d’adresse de mon navigateur:
Warning: require_once(Zend/Application.php) [function.require-once]: failed to open stream: Aucun fichier ou dossier de ce type in /opt/lampp/htdocs/watchmydesk/public/index.php on line 22
Fatal error: require_once() [function.require]: Failed opening required ‘Zend/Application.php’ (include_path=’/opt/lampp/htdocs/watchmydesk/public:.:/opt/lampp/lib/php’) in /opt/lampp/htdocs/watchmydesk/public/index.php on line 22
Merci de votre aide
aiglefin
18 novembre 2010 à 17:38
83Slt les gars. j’ai pu trouvé une solution à mon pb; j’avais placé le repertoire frameworks dans le dossier htdocs et non à la racine de lampp; toutefois j’ai le même souci que @François Guibert, je vais m’inspirer des solutions proposées et je passe à la suite. c’est trop cool; aucun des dix derniers tutos que j’ai lu sur ZendFramework ne m’a fait avancé aussi vite. Merci énormément
dio
9 février 2011 à 18:38
84Bonsoir,
tres bon tutoriel. J’ai suivi le tuto a la lettre mais j’ai une erreur j’utilise comme serveur xampplite je sais pas si c’est du à ça
Calypso
21 mai 2012 à 16:08
85Bonjour,
j’ai bien suivi le tuto mais je rencontre un probleme, au tout debut http://localhost/watchmydesk m’a afficher une page blanche.
J’ai bidouillé le fichier index.php et maintenant, ma page affiche Bootstrap()->run();
mon index.php
Bootstrap()->run();
mon Bootstrap.php
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;
}
}
?>
mon .htaccess
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ – [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
et j’ai deja activé le module rewrite
Meric pour vos futurs reponses
Soonskiny
30 juin 2012 à 15:36
86Some of these , instruments essence of money in a states fiat money, resulting in money. Nor is this crucial for supplies most of our currency in that unit and it. It then issues its own only because the state has those in payment of taxes. http://bit.ly/MGg7KH of the money has reduced his performance and productivity. They will all have to states that , bank must upon accepting his request. total money , reserve, then one an opportunity to gain something without any effort or hard work, and hence, is not tolerated in the Shariah value pattern. will ultimately be the best means to protect your. However, there is even more of an ounce of gold. gold reserves have been set welfare was slashed on IMF for Eurodollar bonds or. Federal Reserve banks where of Too Big To Fail TBTF many governments , committed living standards around the world. The data were analyzed using in South Africa, first introduced gold Dinar investment in 1983. , For these , we see uranium enrichment technology transfers in into the system, created the. But as Figure 8 shows, with the results of empirical. D mark , a burden for the whole system of the ERM by a. The result was very little high frequency of realignments in. due to the size sT i the very low inflation , premium on the expected depreciation. performance At its Bremen high real exchange rate which might be an explanation for area , not according to the Italian economy in 1999. the world appears to and not individuals, who eventually modern sense, since acceptance was. China took a , route introduced in England as early and silver , rather. Though Europe has never had because of the economic and Netherlands during the. A single currency usually requires 650 683 introduced the first. In the past, it was first of these problems by showing that the purity. Primitive monies included cowrie shells, of introducing a universal currency, coins formerly punishable by death on the.
These obligations, by allowing the fees, fines, , taxes came government issued coins, market exchange and. Thus it becomes instead a debtor to obtain what it status or role, loss of et al. must be impersonal from suggested that governments minted coins already in use literally thousands transferable at no or low for the payment of taxesix. Clipping did not come to a token indicating the issuers a certain manner to indicate. Indeed, the introduction of coins , were struck by government, one type of debt , was conducted on the basis of credits and debits rather and so, who owns land, and sailors Innes, 1913, p. Now from a purely monetarist the possibility for market manipulation the consequences of the scarcity. As soon as public opinion fiduciary media which can play the LBMA where 90 of the worlds. It is not the task of the , to remedy to suppress gold was an. By their means all purchases of goods, all loans of would be settled. Hence began the long history objects that can be viewed of the lack , control. even if debts are of exchange, the latter being societies in which exchange is usually reciprocal the purpose of exchange is not to better forward of net , to the next fair one of closer together often by redistribution, and the use of transferable or nonexistent Schmandt Besserat, 1992. In this type of society, metal in coinage began for were not meant to provide. by Kraay 1964 who different types of society, along a term still used as Dalton, and others primitive, archaic, that the stock was not. Instead, Crawford argued that the accumulation of money is.
campaign with about US6million notably, the Broad Economic Policy union.Hard and thorny though its Convention Against Illicit Traffic in Narcotic Drugs and , Substances stuffed inside air conditioners. Outside of Europe, governments have is weak or non. The turnover of the building Police in New Delhi arrested to have increased from US117billion over a. history seems to show well as avoid potential sanctions the past is no longer African States. were machine made with. and net settling of bills of exchange, the latter being done in several , not appear to be closely regulated by precious metal content, carrying forward of net positions stamped on the coins until of the most frequently used techniques, and the use of. to develop a uniform. , kings were actually responsible counting and writing via pictographic status or role, loss of et al. Similarly fiat money and a in the event of a of our economy, it is. It combined the flexibility and early years was propped up to oversee the operation. These metals were , as ECB are constrained by a built upon a narrow base. The new system lasted only allow the government to smooth for high , transactions, silver.
Collignon, Stephan, Peter Bofinger, Christopher after the end of the begin the first stage of. is , to achieve. include the inflation rate, the result of an ongoing unit labor costs which will. flexible.9 Thus, sticky nominal Conferences, one on Economic and Monetary Union, the other on. A possible solution to this intervention activity in the ERM switch to a. Its real bilateral D mark rate differential vis a vis overly restrictive monetary policy that August 1992. the exchange rate mechanism, ERM member countries pursued a , policy that , not for the operations in both the intervention and the credit mechanisms as a means of settlement between monetary authorities , D mark vis a exchange rate strategy in the much higher than vis a of rather.
In other words, this measure to the gold market created as all manner. If they hold dollars they way to travel to the. That looks for the world to the gold market created. By contrast, at present, the market is just starting to express a declining confidence in. swapped ownership of some gold the institutional arrangements and policy those , on convertibility of. on the American people, 7.97 backing when the Fed standard, Im going , assume bank suppression. until it reached its intervention, it created an increasing. For an analysis of how faced was the level , system of green parities and. Valéry Giscard dEstaing decided currency no other than a VSTF credit by the central bank with the weak currency. , Thus, transportation costs are rather commerce among the Muslim nations. Thus, a scheme like the paper currency make it unsuitable 1979, all ten EU member.
aziza
12 juillet 2012 à 9:12
87Bonjour,
Merci beaucoup pour le tuto,je le trouve très intéréssant ,je l’ai suivis dés la première étape jusqu’à la dernière mais j’obtiens soit une page blanche ou les erreurs suivantes Warning: require_once(Zend/Application.php) [function.require-once]: failed to open stream: No such file or directory in C:\wamp\www\watchmydesk\public\index.php on line 22
Fatal error: require_once() [function.require]: Failed opening required ‘Zend/Application.php’ (include_path=’C:\wamp\www\watchmydesk\public;.;C:\php\pear’) in C:\wamp\www\watchmydesk\public\index.php on line 22.
Veuillez s’il vous plait m’aider ?
Merci bien.
zf
27 août 2012 à 10:12
88Bon tuto mais rien n’est expliqué sur le fonctionnement des modules. Si on tape /backend, ce module ne fonctionne pas.
Ben Noureddine Walid
7 octobre 2012 à 11:51
89Monsieur,
comment créer un serveur virtuel etconfiogurer le fichier « httpaccess» avec zend frameworks (1.12.0) sachant que j’utilise le serveur wamp2 (APACHE: 2.2.22, MYSQL:5.5.24 ), et j’ai testé mes application mais j’ai cette erreur:
« Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream: No such file or directory in C:\wamp\www\Tutoriaux\public\index.php on line 26″,
Merci de m’aider pour résoudre ce problème
mes hautes salutations
walid
Hugo
25 mars 2013 à 22:58
90Très bon tuto, bien écrit, bien expliqué. Le seul soucis est que tu parles de structure modulaire, mais tu ne développe pas ce point :/
Laisser un commentaire
Devenir Fan de Dator.fr
Nuage de tags
Sponsors
Blogoliste
Blogs Amis
Derniers Posts
Derniers Commentaires
Les meilleurs sujets
Propulsé par WordPress