4

je les fichiers suivants à mon projet PHP:références PHPStorm et le module

index.php 
private/module1.php 
private/module2.php 

Les index.php références module1.php ainsi:

require_once('private/module1.php'); 

Par son tour, module1.php exige module2.php, il a ligne suivante:

require_once('private/module2.php'); 

J'ai besoin d'informer le chemin relatif de la racine pour que cela fonctionne. Je suppose que c'est parce que la commande require_once attend un chemin du document actuel, qui se trouve être index.php. Le problème est que PHP Storm ne peut pas gérer cette référence. Par exemple, il ne transforme pas la chaîne private/module2.php en un lien hypertexte, ni le repère en tant que référence réelle.

Comment résoudre ce problème?

+1

Personnellement, je spécifie toujours les chemins relatifs au fichier en cours, c'est-à-dire 'require_once dirname (__ FILE__). '/module2.php'; ' Cela peut sembler rétrograder, en modifiant votre code pour l'adapter à un IDE, mais je considère comme une bonne pratique d'avoir des références de fichier non ambiguës. – DCoder

+0

Oui, mais j'apprécie l'automatisation IDE.Si je ne reçois pas de réponse, je vais probablement me replier sur quelque chose comme ça. – fernacolo

Répondre

4

Il vous suffit de configurer votre projet PhpStorm correctement en spécifiant les chemins d'PhpStorm devrait utiliser pour résoudre les références.

Allez dans Fichier -> Paramètres -> PHP.

Là, vous devez ajouter le répertoire racine du projet (celui où votre index.php réside) à la liste des chemins d'inclusion. Lorsque cela est fait, PhpStorm devrait résoudre le chemin require_once('private/module2.php').

vous pourriez ajouter plus le répertoire privé à la liste des chemins PHP utilise inclure par set_include_path() quelque part en vous index.php. Ensuite, vous pouvez simplement appeler require_once('module2.php') depuis votre module1.php.

Encore une fois, vous devrez ajouter le répertoire privé à la liste des chemins d'accès PhpStorm utilise pour lui permettre de résoudre cette référence.

+0

Est-ce que cela configure ce chemin pour tous les projets, ou seulement pour le projet en cours? Je dois le configurer pour le projet en cours seulement. –

+0

@EricG Oui. Et pour être sûr que c'est le cas, vous devriez voir "Pour le projet actuel" en haut de la fenêtre des paramètres. –

0

PhpStorm ne peut pas faire la référence parce qu'il cherche

index.php 
private/module1.php 
private/private/module2.php 

module1.php devrait juste besoin le nom du fichier module2.php:

require_once('module2.php);

+0

Merci, mais il n'y a rien de nouveau dans votre réponse. Changer pour simplement '' module.php'' casse le site Web, causant le message 'a échoué à ouvrir le flux: Aucun tel dossier ou répertoire'. N'avez-vous pas remarqué le texte "besoin d'informer le chemin relatif de la racine pour qu'il fonctionne" dans ma question? – fernacolo