Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-08-2011 18:21:12

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

[resolult]Comment utiliser correctement les modules ??

Bonjour smile,
j'essaye en vain d'utiliser 2 modules , un module site et un autre admin.

voici la structure de mon dossier zend

Code:

[lang=php]projet 2modules
application
  |--configs
  |--application.ini
//------------------les 2 modules
  |--modules
     |--admin
        |--//les 3 dossiers MVC admin

     |--site
        |--//les 3 dossiers MVC site
//------------le boostrap
   |--Boostrap.php
library
public
  |index.php

voici mon application.ini

Code:

[lang=php][production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultModule = "site"  //-----je redirection sur le site

resources.frontController.params.displayExceptions = 1

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

le boostrap est vide

Code:

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{


}

voici le controlleur du site

Code:

[lang=php]<?php

class IndexController extends Zend_Controller_Action
{
    public function init()
    {
       echo "je suis la partie site public";
    }

    public function indexAction()
    {
        // action body
    }
}

jusqu'a là, je suis aller sur ce lien

Code:

http://localhost/2modules/public/

'ai bien mon message je suis la partie public

maintenant la partie admin, voici son controlleur

Code:

[lang=php]<?php

class Admin_IndexController extends Zend_Controller_Action
{

    public function init()
    {
       echo " je suis la partie admin";
    }

    public function indexAction()
    {
        // action body
    }


}

là je coince

Code:

je suis aller sur http://localhost/2modules/Admin

Code:

erreur 404

que faut t'il encore configurer pour que j'ai le message je suis la partie admin ??

merci d'avance de vos réponse smile

Dernière modification par keokaz (26-08-2011 12:36:48)

Hors ligne

 

#2 25-08-2011 08:28:36

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [resolult]Comment utiliser correctement les modules ??

Pour accéder à la partie admin tu dois aller à l'adresse localhost/admin, pas besoin de mettre module devant wink

Hors ligne

 

#3 25-08-2011 09:11:30

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Wahoo le echo dans la méthode init du controlleur d'action !

Essaye au moins de mettre un var_dump ou un Zend_Debug::dump, c'est moche aussi mais bon ça reste un tout petit peu mieux...

Les echo vont dans tes vues !

Hors ligne

 

#4 25-08-2011 10:08:09

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

merci de ces réponse smile

Code:

Wahoo le echo dans la méthode init du controlleur d'action !

je sais c'est trèès trèss laiid, mais pour le moment je test je suis ras les paquerettes, il ne faut pas que je me mettent des batons dans les roues
mont but est avant tous que ça fonctionne ensuite je me met a programmer correctement.

Code:

Essaye au moins de mettre un var_dump ou un Zend_Debug::dump, c'est moche aussi mais bon ça reste un tout petit peu mieux...

un dump comme ceci smile

Code:

    public function init()
    public function init()
    {
            Zend_Debug::dump($this->_request->getParams());
    }

j'ai essayer

Code:

http://localhost/public/admin
et
http://localhost/2modules/admin

le 404 est encore là

Dernière modification par keokaz (25-08-2011 10:14:41)

Hors ligne

 

#5 25-08-2011 10:12:04

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Pas sur $this, sur une chaine ça marche...

Sinon, tu n'as pas défini de routes spécifiques dans ton projet ? Tu utilises le routeur de base ?

Hors ligne

 

#6 25-08-2011 10:21:42

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

euh...je sèche. comment on utilise une route ??
dans quel fichier on doit travailler ??

ou se trouve la route de base ?? dans le .htaccess ??

dans la doc il a ceci

Code:

    /* Créer un routeur */
    $router = $frontctrl->getRouter();
    // retourne un routeur de réécriture par défaut
    $router->addRoute(
        'user',
        new Zend_Controller_Router_Route('user/:username',
                                         array('controller' => 'user',
                                               'action' => 'info'))
    );

est ce ce script je dois utiliser ou c'est pas du tout cela, si oui dans quel fichiers ?

Hors ligne

 

#7 25-08-2011 10:30:09

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Si tu ne sais pas, c'est que tu utilises les routes de base, définies dans le framework.

Normalement, tu as donc :

  - /module/controller/action suivis de groupes /attr/value/
  - /controlleur/action suivis de groupes /attr/value/

Si j'ai bien compris, ton virtualhost pointe sur / et non pas sur /public...

Soit tu fais pointer sur /public, et tu auras beaucoup moins d'ennuis... (http://localhost/admin)
Soit tu utilises ton site comme il est actuellement : http://localhost/2modules/public/admin

Par contre avec ton archi, tu auras surement des problèmes lors de l'affichage de certains médias (css, images...)

Hors ligne

 

#8 25-08-2011 11:00:55

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

donc tu me suggère de crée un vitural host pour avoir

Code:

127.0.1.1/public

pour le moment comme j'essaye d'apprivoiser zend, je ne me suis pas occuper de la configration des routes, mais si j'en ai besoin pour mon module je jetterai un coup d'oeil

j'ai déjà utiliser les routes mais sur symfony, il fallait modifier les routing.yml

voici dans apache2/etc/siteavailable/defaut

Code:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

je vais voir si je crée un vitualhost ca a arranger les choses

Code:

Par contre avec ton archi, tu auras surement des problèmes lors de l'affichage de certains médias (css, images...)

pour le moment j'ai juste crée un projet vide avec zendtool , ajouter un dossier modules et des sous repertoire admin et site et tous ce qu'il y à l'intérieur, je pense que tant que je n'arriverai pas a testé correctement ces 2 modules, il ne sert a rien d'utiliser la vue.

Dernière modification par keokaz (25-08-2011 11:05:30)

Hors ligne

 

#9 25-08-2011 11:28:23

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Sincèrement, je ne sais pas quel tutoriel tu suis pour débuter mais ton angle d'attaque ne me semble pas forcément bon...

Pour faire une analogie bidon, une maison, c'est principalement des murs et un toit... Mais si tu commences par faire les murs et le toit, mais que tu ne fais pas du tout de fondations, un coup de vent et tout se barre...

Concernant le virtualhost, le principe est que le document root pointe non pas sur /dossier_de_ton_projet/ mais sur /dossier_de_ton_projet/public/, comme ça quand tu ira sur http://adresse/ tu auras les éléments du dossier public (index.php, htaccess et dossiers contenant les css et images...), le reste du projet n'étant pas accessible depuis le web.

Hors ligne

 

#10 25-08-2011 14:00:27

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

je vais faire autrement:

voici ce tuto j'essaye de le suis scrupuleusement:

http://www.zfforums.com/zend-framework- … -3737.html

étape1: je crée la structure avec

Code:

zf create project multi-module

étape2: je crée la structure Admin et Default

Code:

cd multi-module
zf create module admin
zf create module default

voici ce ce ca donne comme arbre
http://hpics.li/889ae58
j'ai crée sur les dossier et fichier "index/index.phtml" ainsi que Boostrap.php manuellement, car ztool ne les a pas fait

voici l'arbre dossier à la fin du toto terminer
http://hpics.li/38f0f2c

etape3:
j'ai modifier mon fichier application/index.php

Code:

[lang=php]<?php
   date_default_timezone_set('Asia/Ho_Chi_Minh');
   
   // Define base path obtainable throughout the whole application
    defined('BASE_PATH')
        || define('BASE_PATH', realpath(dirname(__FILE__)));
     
        
    // Define path to application directory
    defined('APPLICATION_PATH')
        || define('APPLICATION_PATH', BASE_PATH . '/application');
        
    // Define application environment
    defined('APPLICATION_ENV')
        || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));
   
   set_include_path(implode(PATH_SEPARATOR, array(
       realpath(APPLICATION_PATH . '/../library'),
       APPLICATION_PATH . '/modules/admin/models' ,
       get_include_path(),
   )));
    

   /** Zend_Application */
   require_once 'Zend/Application.php';
   
   // Create application, bootstrap, and run
   $application = new Zend_Application(
       APPLICATION_ENV,
       APPLICATION_PATH . '/configs/application.ini'
   );
      
   $application->bootstrap()->run();

etape4:le htaccess n'a pas changer dans public/.htaccess

Code:

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

etape5 je modifier config/application.ini

Code:

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules = ""

resources.layout.layout = "layout"
resources.layout.layoutpath = APPLICATION_PATH "/layouts"

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

etape6: je crée avec zf tool

Code:

zf create enable layout

j'ai mon dosssier layout.phtml

Code:

[lang=php]<?php echo $this->doctype(); ?>
<html>
<head>
   <?php echo $this->headMeta(); ?>
   <?php echo $this->headTitle(); ?>
   <?php echo $this->headLink(); ?>
</head>
<body>

<?php echo $this->layout()->content; ?>

</body>
</html>

etape7
mon boostrap est vide celui qui est à la racine de application

Code:

<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
   
}

etape8 et 9 mon 10

fichier boostrap à la racine de admin

Code:

<?php
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap 
{
   
}

l'index controller de admin

Code:

<?php
class Admin_IndexController extends Zend_Controller_Action {
   
   public function indexAction(){
      $this->view->show = 'Zend Framework training course in www.zend.vn<br>Back-End';
      
   }
   
}

la vue de la page admin

Code:

<h2><?php echo $this->show;?></h2>

etape 11 et 12 et 13



le boostrap default

Code:

<?php
class Default_Bootstrap extends Zend_Application_Module_Bootstrap 
{
   
}

l'indexcontroller defaut

Code:

<?php
class IndexController extends Zend_Controller_Action {
   
   public function indexAction(){
      $this->view->show = 'Zend Framework training course in www.zend.vn<br>Back-End';
      
   }
   
}

//et sa vue

Code:

<h2><?php echo $this->show;?></h2>

a la fin le tuto dit

Code:

Run:
Front-End: http://localhost/multi-module/ Or http://localhost/multi-module/index
Back-End: http://localhost//multi-module/admin/

Code:

http://localhost/multi-module/public/

page blanche donc il y a un os

Code:

http://localhost/multi-module/index

et

Code:

http://localhost/multi-module/admin

erreur 404

Dernière modification par keokaz (25-08-2011 14:11:28)

Hors ligne

 

#11 25-08-2011 15:55:01

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Bon je n'ai pas accès aux images que tu as mis en lien... (je suis au boulot, c'est pour ça)

Dans l'idée, à la fin du tutoriel où se trouvent tes fichiers index.php et .htaccess ?

Tu remarqueras dans la structure du tuto qu'ils ne sont pas dans public mais bien à la racine du projet (ce n'est pas l'architecture proposée par Zend_Tool car c'est moins sécurisé.

Hors ligne

 

#12 25-08-2011 17:13:53

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

merci d'avoir regarder, car c'est long... smile
l'image c'était mes dossier je vais les taper

Code:

multi-module // je suis dans le dossier var/www/ et cette racine multi-module
  |--application
     |--configs
        |--application.ini
     |--layout
        |--scripts
           |--layout.phtml
     |--module
//--------------MVC admin
        |--admin
           |--IndexController.php
        |--models
        |--views
          |--filters
          |--scripts
          |--index
             |--index.phtml
        |--Bootstrap.php     

//-----------------MVC default
         |--default
           |--IndexController.php
        |--models
        |--views
          |--filters
          |--scripts
          |--index
             |--index.phtml
        |--Bootstrap.php  

     |--boostrap     
  |--docs
  |--library
  |--public
    |--index.php
    |--.htaccess
  |--tests

voila j'espère ne pas avoir fait d'erreur, sinon la structure même je ne l'ai pas trop touché, l'index et le .htaccess, c'est le zf tool qui l'a crée,

en local j'a plusieurs projet pour mes test, avant de faire un zf create project j'ai auparavant fait un

Code:

cd /
cd var
cd www

puis je crée mon projet

Code:

@system var/www/zf create project multi-module

Code:

Tu remarqueras dans la structure du tuto qu'ils ne sont pas dans public mais bien à la racine du projet (ce n'est pas l'architecture proposée par Zend_Tool car c'est moins sécurisé.

en fait vu comme ça c'est vrai que je me suis pas posé la question, j'ai toujours travailler en local avec var/www, quand j'étais sous winows avec wamp, c'était la même chose, je me met dans le repetoire www.
dans la configuration de apache 2 j'ai essayer de changer le dossier pour descendre de 2 niveau en faisant ceci,

Code:

    
<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/multi-module/public
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/multi-module/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

et après un redémarrage apache2

Code:

sudo /etc/init.d/apache2 stop
sudo /etc/init.d/apache2 start

je suis aller sur localhost et là page blanche,
j'ai modifier index.php et j'ai juste mis

Code:

ok

si je vois "ok" c'est que j'a bien descendu de niveau des dossier dans public ??, ca serai la configration que tu m'a préconiser c'est à dire plus sécuriser (je me suis pas posé la question si c'était plus sécuriser car comme je suis en local)

Dernière modification par keokaz (25-08-2011 17:16:02)

Hors ligne

 

#13 25-08-2011 17:28:06

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Essaye de comprendre chaque chose que tu fais lorsque tu fais un projet...

On est d'accord que http://localhost => /var/www

Attention, l'équivalence dont je parle n'est pas une équivalence comme on pourrait trouver avec un lien symbolique... Ici, lorsque tu appelles localhost (port 80) la demande est transmise à Apache, qui va aller chercher dans /var/www si il trouve un .htaccess et un index.php|html|... qu'il pourrait interpréter.

Dans ton cas, c'est à dire dans le cas du dernier tutoriel que tu proposes, tu essayes http://localhost/multi-module, donc on cherche dans /var/www/multi-module ce qu'on peut interpréter... Hors tes fichiers d'entré (.htaccess et index.php) sont dans /var/www/multi-module/public.

Pour finir, la meilleure façon de faire est de définir un virtualhost, qui lui pointerait sur /var/www/multi-module/public, interprétant donc ton .htaccess et ton index.php, et effectuant donc la génération d'une page HTML.

Plus sécurisé, c'est à dire que les fichiers "importants" (ta conf entre autre) ne pourraient pas être accessible via une url si le server apache n'arrivaient plus à interpréter le php et en venait à proposer directement tes fichiers au téléchargement...

Essaye juste de comprendre le parcours de ta requète, de l'envoi par la navigateur (url) jusqu'à la génération de la page. Après ça devrait être beaucoup plus clair pour toi !

Hors ligne

 

#14 25-08-2011 18:35:51

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

oui j'avais compris que

Code:

http://localhost=>/var/www

je vais essayer de faire un vhost:


j'avais remarqué que dans le dossier docs il y avais un bout de configration, ca doit être zf tool qui a du le crée
j'ai donc mis dans etc/host par exemple

Code:

127.0.0.1       test

ensuite j'ai crée un fichier test dans etc/apache2/site-enable/test (ce qu'il y avais dans docs)

Code:

<VirtualHost *:80>
   DocumentRoot "/var/www/multi-module/public"
   ServerName multi-module.local

   # This should be omitted in the production environment
   SetEnv APPLICATION_ENV development

   <Directory "/var/www/multi-module/public">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>

</VirtualHost>

j'ai redémarer apache2 et quand je vais sur

Code:

http://http://test/

je vois tous mes dossier de test , je clique donc sur mon dossier multi-module

Code:

http://test/multi-module/

et la je vois tous le projet mais le dossier public a disparu??

le dossier public a ce droit

Code:

-rw-r--r--

il faut que je change les doits public pour le revoir ?

si je vais sur

Code:

http://test/multi-module/public

j'ai une erreur 500

Hors ligne

 

#15 25-08-2011 19:37:16

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Alors déjà modifie ton vhost :

Code:

<VirtualHost *:80>
   DocumentRoot "/var/www/multi-module/public"
   ServerName test

   # This should be omitted in the production environment
   SetEnv APPLICATION_ENV development

   <Directory "/var/www/multi-module">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>

</VirtualHost>

ServerName test #en fait il faut mettre le domaine qui doit utiliser ce vhost.
Dans directory, pas besoin de mettre public (mais je pense pas que ça gène en y réfléchissant.

Ensuite tu devrais voir ton site en appelant http://test/.

Hors ligne

 

#16 26-08-2011 02:05:34

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

j'ai tout réinstaller LAMP  et configurer correctement le virtualhost, je recommence a 0 pour repartir de bonne base.

alors je pars de ce tuto car je pense que celui que j'ai montre ne fonctionne pas, et celui ci à l'aire d'être bien expliquer

http://julien-pauli.developpez.com/tuto … plication/

donc j'ai renomer mon projet il s'appelle test, et j'ai mis le virtual host à zendtest.

donc après un

Code:

zf create project test

et la configuration du vhost quand je vais sur

Code:

http://zentest

j'ai bien la page bleu de présentation de zend

puis j'ai suivis le tuto, mais je n'ai pas trop changer mon application ini e

je pense que j'ai avencer d'un petit pas

quand je vais sur

Code:

http://zendtest/admin

j'ai ceci à l'écran

Code:

string(3) "abc"

mon controlleur admin est comme ceci

Code:

  
[lang=php]
<?php
class Admin_IndexController extends Zend_Controller_Action
{
    public function init()
    {
           $this->view->headTitle('Mon application avec Zend_Application (Administrateur)');
        var_dump(abc);
    }

    public function indexAction()
    {
       $this->_response->appendBody('Bievenue Admin'); 
    }
}

par contre quand je vais sur

Code:

http://zendtest/default

normalement je dois avoir afficher aussi un teststring, puisque mon controlleur est comme ceci

Code:

[lang=php]<?php
class IndexController extends Zend_Controller_Action
{
    public function init()
    {
        var_dump(kkkkkkkkk);
    }

    public function indexAction()
    {
        $this->_response->appendBody('Bievenue');
    }
}

la page blanche, même pas des erreurs ??

voici application.ini

Code:

production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

phpsettings.date.timezone = "Europe/Paris"

includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"


;resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1

autoloadernamespaces[] = Dvp
autoloadernamespaces[] = Foo

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[]=""
resources.frontController.params.prefixDefaultModule = "1"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

le bootstrape general

Code:

[lang=php]<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initDefaultNamespace()
    {
        $fc = $this->bootstrap('frontcontroller')->getResource('frontcontroller');
        $defaultModule = $fc->getControllerDirectory($fc->getDefaultModule());
        
        new Zend_Application_Module_Autoloader(array(
                'namespace' => '', // pas de namespace
                'basePath'  => APPLICATION_PATH . $defaultModule,
            ));
    }
}

et l'index

Code:

<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);

$application->bootstrap()
            ->run();

pouquoi on a une page blanche , avec aucune erreur
voici mon htaccess

Code:

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

et le virtual host

Code:

//test du dossier site-available
<VirtualHost *:80>
   DocumentRoot "/var/www/test/public"
   ServerName zendtest

   # This should be omitted in the production environment
   SetEnv APPLICATION_ENV development

   <Directory "/var/www/test/public">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>

</VirtualHost>

Dernière modification par keokaz (26-08-2011 02:09:56)

Hors ligne

 

#17 26-08-2011 08:40:01

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

j'ai télécharger le code source de ce tuto
http://www.amazium.com/blog/create-modu … -with-zend

il fonctionne donc cela veut déjà dire que ma config du serveur est bonne, donc je vais essayer de voir son code et tester si  j'arrive a le faire.

Hors ligne

 

#18 26-08-2011 09:07:12

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Pour commencer n'utilise pas $this->_response->appendBody, mais fait plutôt un $this->view->variable = 'truc', puis echo $this->variable dans la vue.

Ensuite, dans ton application.ini, pas de displayException et autre truc du genre en prod (enfin si mais à 0, pas à 1). Ces valeurs doivent ensuite être écrasées en development (car la structure est hiérarchique et mets en place un système d'héritage de config).

Le reste semble bon, normalement tu devrais avoir un affichage...

Hors ligne

 

#19 26-08-2011 10:46:26

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

merci a toi, j'ai refait le début du tuto celui de azium pas sur developpez et j'ai réussi a avoir la partie admin smile, j'en suis arrive à bout
après avoir réinstaller mon  os ubuntu, je pense a force d'y toucher au configuration je fait n'importe quoi , donc j'ai des trucs imprévu


mon souci c'était bien un erreur de config du serveur, mais aussi je ne sais pas pourquoi mon index une fois crée ubuntu met des doits insuffisant (je vois un cadena sur mon icone). , j'ai fait un chmod 705 index.php, un 644 suffisant ?

Code:

Ensuite, dans ton application.ini, pas de displayException et autre truc du genre en prod (enfin si mais à 0, pas à 1)

ce coup ci j'ai pu réussi a constaté que si je change production en developpement je vois bien les erreur avec

Code:

SetEnv APPLICATION_ENV development
avec le .htaccess

avant je le faisait mais cela ne faisait rien j'était toujour en "prod" donc erreur 0, je laisse donc
displayException à 0 en production

je pense que je vais essayer de débouiller, car je dois fini ma partie admin

encore une dernière question,

je souhaite que mon "admin" soit un espace privé
Quel est la meilleur façon et la plus sécurisé ?

je pensais directement mettre un bout de ligne .htaccess avec un .htpassowrd avec un mot de passe crypté mais est ce suffisant ?? par apache2

ou il faut plutôt utiliser Auth de zend ??(que d'ailleur je n'ai pas encore pris connaissance)

Dernière modification par keokaz (26-08-2011 10:48:25)

Hors ligne

 

#20 26-08-2011 10:52:36

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Le mieux reste d'utiliser Zend_Auth, dans le meilleur des cas couplé à Zend_Acl et Zend_Navigation (au moins ACL).

Pour le reste, Apache tourne avec l'utilisateur et le groupe www-data par défaut, il faut donc que ton fichier/dossier soit lisible par cet utilisateur (soit au niveau du groupe, soit en donnant la propriété des fichiers à www-data...).
Si tu considère que le groupe www-data est le groupe "hébergés", tu ajoutes le propriétaire des fichiers dans ce groupe, et tu fais un chmod g+r /var/www -R

Hors ligne

 

#21 26-08-2011 11:00:02

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

donc si je comprend bien

.htaccess et .htpassword est plus moins sécurisé que

bdd+zend_Auth+zend_Acl+zend_Navigation avec une page de demande de mot de passe qui sera crypté dans la bdd

dans quel dossier faut t'il crée

Code:

zf create controller Auth

dans mon dossier application/controller ?

ou directement dans mon dossier application/admin/controller?

Dernière modification par keokaz (26-08-2011 11:27:53)

Hors ligne

 

#22 26-08-2011 11:42:28

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [resolult]Comment utiliser correctement les modules ??

Personnellement je l'aurais probablement mis dans le module par défaut (ton frontend) ou encore dans un module membre ou commun...

Oublie Zend_Navigation pour le moment, tu risques de t'embrouiller.

Essaye de voir sur le blog d'Aurevec, il y a un bon tutoriel (d'ailleurs tu pourrais lire toutes les parties, pas seulement l'authentification...) : Développement d’une application Zend Framework – partie 6 – Authentification des utilisateurs

Hors ligne

 

#23 26-08-2011 12:36:33

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [resolult]Comment utiliser correctement les modules ??

encore merci de ton lien, je vais voir ça, si j'ai un souci je poste sur un autre sujet smile

Hors ligne

 

Pied de page des forums

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

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