Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2011, 10h27   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 12
Points : 2
Points : 2
Par défaut comment configurer index.php?

Bonjour,

Débutant avec Zend Framework, j'ai commencé à apprendre quelques fonctionnalités en me basant sur des structures de fichiers MVC utilisée dans les différents tutoriel que j'ai pu trouvé.

Le problème, c'est que je voudrai maintenant redémarrer un projet mais en partant d'une structure générée par Zend Framework. Et là! je ne sais pas comment configurer le fichier index.php et application.ini

Quelqu'un pourrait-il me mettre sur le bon chemin?
merci


fichier index.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<?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();
 
?>
fichier application.ini
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
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 = 0
 
[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
leon86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 10h37   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
utilise le zend tool ca sera plus simple pour créer un projet
Code :
zf create project monprojet
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 11h16   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 12
Points : 2
Points : 2
Salut,

je l'avais déjà fait, en fait j'ai bien une arborescence qui à bien été générer depuis la console avec une commande zf, mais je ne sais pas comment me connecter à une base de données

pour apprendre j'ai utiliser ce fichier index.php ci-dessous trouvé dans un tuto et tout fonctionnait parfaitement pour se connecter à la db:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<?php
 
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
date_default_timezone_set('Europe/Paris');
 
// mise en place des répertoires et chargement des classes
set_include_path('.'
    . PATH_SEPARATOR . './library'
    . PATH_SEPARATOR . './application/models/'
    . PATH_SEPARATOR . get_include_path());
 
 
include "Zend/Loader.php";
 
 
Zend_Loader::registerAutoload();
//on définit un nouvel objet de configuration
$oConfig = new Zend_Config_Ini('./application/config.ini', 'connexion');
// Mise en place de la BDD
$oDb = Zend_Db::factory($oConfig->db);
// on définit notre objet de base de données par défaut
Zend_Db_Table::setDefaultAdapter($oDb);
 
 
// setup controller
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setControllerDirectory('./application/controllers');
 
// on définit le chemin des layouts
$aOptions = array(
    'layout'     => 'home',
    'layoutPath' => './application/layouts'
);
Zend_Layout::startMvc($aOptions);
 
// run!
$frontController->dispatch();
?>


celui générer par zend tool est différent

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<?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();
 
?>
leon86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 13h18   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
celui du tuto est un vieux code, celui du zend tool est l'actuel
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 13h22   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 12
Points : 2
Points : 2
ok, mais doit-on rajouter quelque chose comme un adaptateur pour pouvoir se connecter à une db?
leon86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 04h37   #6
Membre du Club
 
Inscription : août 2007
Messages : 169
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 169
Points : 50
Points : 50
Bonjour ,
si tu as utilisé le Zend Tool ( recommander) :
pour la connexion à une base de donnée , je te propose une méthode (je ne sais pas si la meilleur ou pas )

dans configs\application.ini , tu ajoutes les paramètres de de connexion :
Code :
1
2
3
4
5
6
7
8
9
10
 
[production]
.............
.............
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.dbname = "mabase"
resources.db.params.username = "vanbom"
resources.db.params.password = "12345"
resources.db.params.charset = "utf8"
dans ton fichier d'amorçage application\Bootstrap.php , tu crée une méthode (par exemple : _intDb() ) qui lit les paramètres de connexion, et on met notre objet dans le registre ( comme ça on peut le récupérer partout où on est )
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
 
	public function  _initDb()
	{
		$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini','production');
		$params = $config->resources->db;
		$db = Zend_Db::factory($params);
		Zend_Registry::set('db-adapter',$db);
 
	}
}
puis , en utilisant toujours le Zend Tool pour avoir un model :
Code :
1
2
 
zf create model monModel
on aura dans application\models\monMdel.php , ici tu peux récupérer l'objet de base de donnée depuis le registre :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
class Model_monModel
{
        // variable privée : on stock l'objet db  
	private $db;
 
	public function __construct()
	{ 
                // on récupère notre objet depuis le registre  
		$this->db = Zend_Registry::get('db-adapter');
	}
        /**
       * exemple : et là on peut exécuter les requête depuis des méthodes public  
       */
	public function listeArticle()
	{
		$sql = " SELECT .................";
		return $this->db->fetchAll($sql);
	}
}
et en fin dans un controller tu creer une instance de Model_monModel , et tu demande la méthode public .

c'est manière que tu utilise personnellement.
van-bom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 16h36   #7
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Le même bootstrap que Van Bom, mais en plus simple

Code :
1
2
3
4
5
6
 
protected function _initDb() {
        $pluginDb = $this->getPluginResource('db');
        $db = $pluginDb->getDbAdapter();
        Zend_Registry::set('db', $db);
    }
Pas besoin de relire le fichier .ini avec Zend_Config, c'est déjà fais
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h51.


 
 
 
 
Partenaires

Hébergement Web