Was ist eine .inc und warum?

139

Ich sehe oft Beispiele in PHP, die.inc-Dateien enthalten. Was bedeutet .inc? Wofür wird es verwendet? Was sind die Nachteile und Vorteile der Verwendung?

dpp
quelle

Antworten:

268

Es hat keine Bedeutung, es ist nur eine Dateierweiterung. Es ist die Konvention einiger Leute, Dateien mit der Erweiterung .inc zu benennen, wenn diese Datei für andere PHP-Dateien vorgesehen ist, aber es ist nur eine Konvention.

Es hat einen möglichen Nachteil, dass Server normalerweise nicht so konfiguriert sind, dass sie .inc-Dateien als PHP analysieren. Wenn sich die Datei also in Ihrem Webstamm befindet und Ihr Server standardmäßig konfiguriert ist, kann ein Benutzer Ihren PHP-Quellcode in anzeigen die .inc-Datei durch direkten Besuch der URL.

Der einzig mögliche Vorteil besteht darin, dass leicht identifiziert werden kann, welche Dateien als Includes verwendet werden. Obwohl es den gleichen Effekt hat, wenn Sie ihnen einfach eine .php-Erweiterung geben und sie in einem Includes-Ordner ablegen, ohne den oben genannten Nachteil.

Paul
quelle
8
@domanokz Ja, es ist dann sicher zu benutzen. Es wird nur dann als PHP behandelt, wenn es in einer requireoder includeStruktur verwendet wird, und den Rest der Zeit als Klartext behandelt. Wenn Sie es als Text auf Ihrem Server behandeln, tut dies nicht weh. Es tut nur weh, wenn Ihr Code dem Endbenutzer als Text bereitgestellt wird.
Paul
@Paulpro Ich habe mich schon eine Weile gefragt, danke, dass du das klar gemacht hast!
RealDeal_EE'18
1
Tolle Erklärung. Ich habe gerade bei einem neuen Job angefangen und gesehen, dass diese während der gesamten Bewerbung verstreut waren. Ich hatte keine Ahnung, dass es nur eine Konvention war. Vielen Dank!
Chev
4
In Bezug auf den Server nicht konfiguriert, um.inc-Dateien als PHP zu analysieren. Es muss eigentlich nicht sein, da sie nur aus anderen PHP-Dateien in require / include gelesen werden. Ist es sicher? Wie Paulpro angibt, möchten Sie nicht, dass der neugierige Endbenutzer Code liest, und Sie möchten die Dateien so konfigurieren, dass sie vom Endbenutzer nicht mit "RedirectMatch 403 /.*\.inc$" in Apache conf oder abgerufen werden können. htaccess
ClearCrescendo
Hinweis: Dies gilt nicht nur für .phpund .inc. PHP beinhaltet auch die Arbeit mit anderen Dateitypen. Wenn Sie eine, '.html', '.js', '.css', '.txt' oder benutzerdefinierte Dateierweiterungen einschließen, wird PHP-Analyse auch dazu führen, dass PHP-Code daraus gelesen wird. Nützlich, wenn Sie eine dateibasierte Datenbank erstellen und feststellen möchten, ob es sich um eine Datenbankdatei handelt. wie .data. Sie können dann den obigen Kommentar von @ ClearCrescendo verwenden, um ihn zu sichern.
Jomar Sevillejo
71

Wenn Sie Bedenken haben, dass der Inhalt der Datei bereitgestellt und nicht ausgegeben wird. Sie können eine doppelte Erweiterung verwenden wie : file.inc.php. Es dient dann dem gleichen Zweck der Hilfsbereitschaft und Wartbarkeit.

Normalerweise habe ich 2 PHP-Dateien für jede Seite auf meiner Site:

  1. Einer welcome.phpim Stammordner, der das gesamte HTML-Markup enthält.
  2. Und ein weiterer Name welcome.inc.phpim incOrdner, der alle für die welcome.phpSeite spezifischen PHP-Funktionen enthält .

BEARBEITEN: Ein weiterer Vorteil der Verwendung der doppelten Erweiterung .inc.phpwäre, dass jede IDE die Datei weiterhin als PHP-Code erkennen kann.

Wasted_Coder
quelle
4
+1 Das ist erwähnenswert, das habe ich in einem meiner Projekte gemacht.
dpp
17

Im Allgemeinen bedeutet dies, dass es sich um eine Datei handelt, die enthalten sein muss und kein eigenständiges Skript erstellt.

Dies ist eine Konvention, keine Programmiertechnik.

Wenn Ihr Webserver jedoch nicht richtig konfiguriert ist, können Dateien mit Erweiterungen wie .inc verfügbar gemacht werden.

Devraj
quelle
12

Dies ist nur eine Möglichkeit für den Entwickler, Dateien, die als Includes verwendet werden sollen, leicht zu identifizieren. Es ist eine beliebte Konvention. Es hat für PHP keine besondere Bedeutung und ändert weder das Verhalten von PHP noch das Skript selbst.

karim79
quelle
4

Dies ist eine Konvention, die Programmierer normalerweise verwenden, um verschiedene Dateinamen für Include-Dateien zu identifizieren. Wenn die anderen Entwickler an ihrem Code arbeiten, kann er leicht erkennen, warum diese Datei vorhanden ist und welchen Zweck diese Datei hat, indem er nur den Namen der Datei sieht.

Awais Qarni
quelle
3

Nur um hinzuzufügen. Ein weiterer Nachteil wäre, dass .inc-Dateien von der IDE nicht erkannt werden und Sie daher die Funktionen zur automatischen Vervollständigung oder Codevorhersage nicht nutzen können.

dpp
quelle
2

Meiner Meinung nach wurden diese verwendet, um bei der Entwicklung schnell Include-Dateien zu finden. Wirklich wurden diese mit Konventionen und Rahmenentwürfen überholt.

Robert Ross
quelle
Dies ist ein bedeutungsloser Kommentar. Ich benutze immer .inc für Include-Dateien, weil es einfach ist und es keine Negative und nur Positive gibt. Der Begriff "Konventionen" hat keinen mir bekannten Bezug. Und PHP-Frameworks, keine Ahnung, berühren sie niemals selbst, ich schreibe Code, daher ist die Vorstellung, dass 'Frameworks' die PHP-Codierung ersetzt haben, einfach falsch. Es ist nichts Falsches daran, das Zeug zu verwenden, wenn es Ihnen gefällt, aber zu glauben, dass es die Standardprogrammierung in Code-Editoren ersetzt, ist einfach falsch.
Lizardx