set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
Je suis tombé sur deux fonctions, je n'ai jamais utilisé avant d'en php
set_include_path();
get_include_path();
Je suis actuellement à la recherche pour mettre en œuvre les phpseclib sur un projet que je suis en train de travailler sur.. Comme j'ai besoin d'utiliser le SFTP extension de classe de la SSH2 qui exige à son tour la MathBigInteger classe.. etc etc.
Le manuel dit à propos de set_include_path()
:
"Définit le include_path option de configuration pour la durée de la
script. "
Qu'est-ce que cela signifie pour le reste de mon cadre, il va régler TOUS les chemins à inclure, à partir de la phpseclib' dir?
Aussi, je n'ai vraiment pas obtenir:
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
Je suis le stockage de l'php sec dans une bibliothèque personnalisée répertoire dans mon système de fichiers, ne get_include_path() d'une façon comme par magie trouver le phpseclib répertoire dans mon système?
Comme vous pouvez le voir je suis complètement perdu là.. quelqu'un pourrait avoir la gentillesse de jeter un peu de lumière pour moi, s'il vous plaît?
PS/
J'ai seulement besoin de cette bibliothèque à un partivular point dans l'application ainsi voulez inclure uniquement en cas de besoin, à l'heure actuelle, je suis désireux de l'inclure à l'intérieur d'un enfant de ma classe de modèle.
OriginalL'auteur John | 2013-01-12
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devez comprendre ce que l'
include_path
paramètre de configuration n':La construction
ajoute
phpseclib
à la liste des répertoires recherchés lorsque vous demandez, y compris les fichiers avec l'une des fonctions ci-dessus.Depuis
phpseclib
est un chemin relatif, l'effet est le même que si vous aviez spécifié./phpseclib
, c'est à dire PHP va chercher dans un sous-répertoire nomméphpseclib
à l'intérieur du répertoire courant du processus. Il n'a pas la baguette magique pour déterminer où la bibliothèque est située dans le système de fichiers; il est votre travail de les mettre dans un endroit où il sera trouvé.OriginalL'auteur Jon
Afin de mieux comprendre ce
include_path
est et n'est-ce pas, lire cette section de php.ini manuel.Si vous essayez d'écrire un projet spécifique "de l'autochargeur",
set_include_path
n'est pas le meilleur outil pour que (vous voudrez peut-être regarder dansspl_autoload_register
au lieu de cela), mais pour répondre à votre question:set_include_path
ne écraser tout ce que précédenteinclude_path
a été. Plusieurs chemins peuvent être fournis en utilisantPATH_SEPARATOR
constante comme un séparateur, par exemple:ainsi, vous pouvez les ajouter à la déjà tracé existant au lieu de l'écraser comme ceci:
OriginalL'auteur lafor
La set_include_path juste définit un emplacement possible pour le moteur PHP pour rechercher les fichiers. Par exemple:
Ci-dessus a fonctionné parfaitement bien et continue à inclure correctement les autres fichiers requis pour l'application.
OriginalL'auteur John
John, je pense que la raison de votre deuxième exemple échoue, c'est que 'phpseclib" ne spécifiez pas un chemin d'accès complet. En supposant que votre premier exemple de travaux, vous souhaitez remplacer
avec
dans le deuxième exemple. Pour confirmer que votre include_path est ce que vous pensez qu'il devrait être, vous pourriez ajouter la ligne
à droite après le set_include_path ().
OriginalL'auteur Rory Larson