Voici mon code d'invitation pour une première inscription sur www.tsu.co
shortcode: ydriouach
A++
shortcode: ydriouach
A++
En surfant sur internet je tombe régulièrement sur des articles ou des liens très intéressants que je garde souvent en marques pages sur mon navigateur. Cela arrive parfois que certains liens soient supprimés ou déplacés, d'où l'idée de ce blog. J'essayerai de rédiger un article sur chaque sujet que je trouve intéressant de sauvegarder.
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 ![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 = 1Ici, 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.
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. class IndexController extends Zend_Controller_Action {
public function indexAction(){
}
}
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.Vous êtes sur mon siteCe fichier représente la vue associée à l’action index (indexAction) dans le controller index (IndexController)
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 ?>
<!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>