2010-03-10 6 views
2

Localement, sur mon installation de xampp, le dossier Zend est sous PEAR \ Zend et Pear est dans le chemin d'inclusion. Donc quand je require_once "Zend \ Date.php" il n'y a pas de problème.Comment inclure les bibliothèques Zend Framework dans mon domaine?

Cependant, sur mon domaine (Hostmonster), ce n'est pas le cas. Je n'ai aucune idée d'où est le dossier Zend, bien que je fasse phpinfo(); semble indiquer que Zend Framework est définitivement disponible. J'ai demandé à l'hôte, et ils m'ont dit d'inclure zend_extension = "/ usr/local/Zend/lib/Optimizer-3.3.9/php-5.2.x/ZendOptimizer.so" au bas du fichier php.ini, qui n'a pas aidé du tout.

Aussi, je ne sais pas ce que cette déclaration dans le fichier php.ini fait même. Quelqu'un pourrait-il m'aider?

Répondre

2

Vous pourriez peut-être télécharger la bibliothèque Zend sur votre compte d'hébergement partagé dans un répertoire comme/home/your_account/public_html/zend. Puis modifiez (ou créez s'il n'existe pas) un fichier php.ini dans votre répertoire webroot/home/your_account/public_html. Ajoutez ce qui suit:

include_path = .:/home/your_account/public_html/Zend 

Remarque: ceci annulera tous les chemins d'inclusion par défaut définis par PHP. Le . représente le répertoire en cours et : sépare les différents chemins.

maintenant dans votre fichier PHP que vous pouvez ajouter en haut:

require_once 'Zend/Date.php'; 
2

Activation de l'extension Zend comme vous l'avez mentionné ci-dessus n'est pas pertinent d'inclure des classes ZF que vous voulez faire. Téléchargez ZF et téléchargez-le où vous voulez dans le dossier public_html si ce n'est pas encore disponible. utilisez et c'est parti! exemple de code ci-dessous:

<?php 
    // Define relative path to ZendFramework in public_html 
    define('ZF_PATH', '/../../../lib/php/zendframework'); 

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

    // Define real path to ZendFramework if it's not yet included in include_path 
    if(!strpos(get_include_path(), 'zendframework')) 
     define('ZF_REAL_PATH', realpath(APPLICATION_PATH . ZF_PATH)); 
    else define('ZF_REAL_PATH', ''); 

    // Updating include_path 
    set_include_path(implode(PATH_SEPARATOR, array(ZF_REAL_PATH, get_include_path(),))); 

    // Done! the rest of the code might be unnecessary in your case. 
    require 'Zend/Application.php'; 

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

Cela peut sembler un peu compliqué pour le cas de l'ajout d'un répertoire pour y inclure le chemin, mais il est la façon la plus commune des applications ZF utilisent, je pense.

0

Le chargeur automatique zend facilite la vie:

set_include_path(get_include_path().PATH_SEPARATOR.realpath('../path to folder containing zend classes')); 
require_once('Zend/Loader.php'); 
require_once('Zend/Loader/Autoloader.php'); 
Zend_Loader::registerAutoload(); 

maintenant vous n'avez pas besoin de dizaines comprend ou EXIGE qui encombrent votre code ... comme de Zend: 1.11.1 au moins

Questions connexes