Qu'est-ce qu'un .inc et pourquoi l'utiliser?

139

Je vois souvent des exemples en PHP qui incluent des fichiers.inc. Quelle est la signification de .inc? À quoi sert-il? Quels sont les inconvénients et avantages de son utilisation?

dpp
la source

Réponses:

268

Cela n'a aucun sens, c'est juste une extension de fichier. C'est la convention de certaines personnes de nommer les fichiers avec une extension .inc si ce fichier est conçu pour être inclus par d'autres fichiers PHP, mais ce n'est qu'une convention.

Cela a un inconvénient possible qui est que les serveurs ne sont normalement pas configurés pour analyser les fichiers .inc en tant que php, donc si le fichier se trouve dans votre racine Web et que votre serveur est configuré de la manière par défaut, un utilisateur peut afficher votre code source php dans le fichier .inc en visitant directement l'URL.

Son seul avantage possible est qu'il est facile d'identifier les fichiers utilisés comme inclus. Bien que simplement leur donner une extension .php et les placer dans un dossier d'inclusion a le même effet sans l'inconvénient mentionné ci-dessus.

Paul
la source
8
@domanokz Oui, vous pourrez l'utiliser en toute sécurité. Il sera traité comme php uniquement lorsqu'il est utilisé dans une structure requireou includeet traité comme du texte brut le reste du temps. Le traiter comme du texte sur votre serveur ne fera pas de mal, cela ne fait mal que lorsque votre code est servi sous forme de texte à l'utilisateur final).
Paul
@Paulpro Je me posais la question depuis un moment, merci de l'avoir précisé!
RealDeal_EE'18
1
Excellente explication. Je viens de commencer un nouveau travail et j'ai vu ces déchets tout au long de l'application. Je n'avais aucune idée que c'était purement une convention. Merci!
Chev
4
Concernant le serveur n'étant pas configuré pour analyser les fichiers en tant que php. Ce n'est pas nécessaire car ils sont en lecture seule à partir d'autres fichiers php dans require / include. Est-ce sûr? Comme Paulpro l'indique, vous ne voulez pas que le code de lecture de l'utilisateur final soit curieux, vous voulez donc configurer les fichiers pour qu'ils ne soient pas récupérables par l'utilisateur final avec quelque chose comme "RedirectMatch 403 /.*\.inc$" dans la conf ou. htaccess
ClearCrescendo
Remarque: ce n'est pas seulement pour .phpet .inc. PHP comprend également travailler avec d'autres types de fichiers. Inclure un '.html', '.js', '.css', '.txt' ou toute extension de fichier personnalisée à laquelle vous pouvez penser fera également l'analyse PHP en lire le code PHP. Utile lorsque vous souhaitez créer une base de données basée sur des fichiers et que vous voulez savoir s'il s'agit d'un fichier de base de données. comme .data. Vous pouvez ensuite utiliser le commentaire de @ ClearCrescendo ci-dessus pour le sécuriser.
Jomar Sevillejo
71

Si vous êtes préoccupé par le contenu du fichier diffusé plutôt que par sa sortie. Vous pouvez utiliser une double extension comme: file.inc.php. Il sert alors le même objectif d'utilité et de maintenabilité.

J'ai normalement 2 fichiers php pour chaque page de mon site:

  1. Un nommé welcome.phpdans le dossier racine, contenant tout le balisage HTML.
  2. Et un autre nommé welcome.inc.phpdans le incdossier, contenant toutes les fonctions PHP spécifiques à la welcome.phppage.

EDIT: Un autre avantage de l'utilisation de la double extension .inc.phpserait que n'importe quel IDE peut toujours reconnaître le fichier en tant que code PHP.

Wasted_Coder
la source
4
+1 Cela vaut la peine d'être mentionné, je l'ai fait dans l'un de mes projets.
dpp
17

Cela signifie généralement que c'est un fichier qui doit être inclus et ne fait pas de script autonome en soi.

Ceci est une convention et non une technique de programmation.

Bien que si votre serveur Web n'est pas configuré correctement, il pourrait exposer des fichiers avec des extensions telles que .inc.

Devraj
la source
12

C'est juste un moyen pour le développeur de pouvoir identifier facilement les fichiers qui sont destinés à être utilisés comme inclus. C'est une convention populaire. Il n'a aucune signification particulière pour PHP et ne changera pas le comportement de PHP ou du script lui-même.

karim79
la source
4

Il s'agit d'une convention que les programmeurs utilisent généralement pour identifier différents noms de fichiers pour les fichiers d'inclusion. Ainsi, si les autres développeurs travaillent sur leur code, il peut facilement identifier pourquoi ce fichier est là et à quoi sert ce fichier en voyant simplement le nom du fichier.

Awais Qarni
la source
3

Juste pour ajouter. Un autre inconvénient serait que les fichiers .inc ne sont pas reconnus par l'EDI, vous ne pouvez donc pas profiter des fonctionnalités de saisie semi-automatique ou de prédiction de code.

dpp
la source
2

À mon avis, ceux-ci ont été utilisés pour trouver rapidement des fichiers d'inclusion lors du développement. En réalité, ceux-ci sont devenus obsolètes avec les conventions et les conceptions de cadres.

Robert Ross
la source
C'est un commentaire dénué de sens. J'utilise toujours .inc pour inclure des fichiers car c'est facile et il n'y a pas de points négatifs, et seulement des points positifs. Le terme «conventions» n'a aucun référent que je connaisse dans ce contexte. Et les frameworks PHP, aucune idée, ne les touchez jamais moi-même, j'écris du code, donc l'idée que les «frameworks» ont remplacé le codage PHP est tout simplement fausse. Il n'y a rien de mal à utiliser ce truc si vous l'aimez, mais croire qu'il a remplacé la programmation standard, dans les éditeurs de code, est tout simplement faux.
Lizardx