¿Qué es un .inc y por qué usarlo?

139

A menudo veo ejemplos en PHP que incluyen archivos .inc. ¿Cuál es el significado de .inc? ¿Para que se utiliza? ¿Cuáles son las desventajas y ventajas de usarlo?

dpp
fuente

Respuestas:

268

No tiene sentido, es solo una extensión de archivo. Es una convención popular nombrar archivos con una extensión .inc si ese archivo está diseñado para ser incluido por otros archivos PHP, pero es solo una convención.

Tiene una posible desventaja que es que los servidores normalmente no están configurados para analizar archivos .inc como php, por lo que si el archivo se encuentra en su raíz web y su servidor está configurado de la manera predeterminada, un usuario podría ver su código fuente php en el archivo .inc visitando la URL directamente.

Su única ventaja posible es que es fácil identificar qué archivos se utilizan como incluye. Aunque simplemente darles una extensión .php y colocarlos en una carpeta de inclusión tiene el mismo efecto sin la desventaja mencionada anteriormente.

Pablo
fuente
8
@domanokz Sí, será seguro usarlo entonces. Se tratará como php solo cuando se use en una estructura requireo includey se tratará como texto sin formato el resto del tiempo. Tratarlo como texto en su servidor no hará daño, solo duele cuando su código se sirva como texto para el usuario final).
Paul
@Paulpro Me había estado preguntando esto por un tiempo, ¡gracias por dejar esto en claro!
RealDeal_EE'18
1
Gran explicación Recién comencé en un nuevo trabajo y los vi llenos de basura en toda la aplicación. No tenía idea de que era puramente una convención. ¡Gracias!
Chev
44
En cuanto al servidor que no está configurado para analizar archivos .inc como php. En realidad, no necesita ser, ya que se leen solo desde otros archivos php en require / include. ¿Es seguro? Como Paulpro indica que no desea el código de lectura del usuario final inquisitivo, sí desea configurar los archivos para que el usuario final no pueda recuperarlos con algo como "RedirectMatch 403 /.*\.inc$" en la configuración de Apache. htaccess
ClearCrescendo
Nota: Esto no es solo para .phpy .inc. PHP incluye también trabajar con otros tipos de archivos. Incluyendo un '.html', '.js', '.css', '.txt' o cualquier extensión de archivo personalizada que se te ocurra también hará que el análisis de PHP lea el código PHP de él. Es útil cuando desea crear una base de datos basada en archivos y desea saber si se trata de un archivo de base de datos. como .data. Luego puede usar el comentario de @ ClearCrescendo anterior para asegurarlo.
Jomar Sevillejo
71

Si le preocupa que se sirva el contenido del archivo en lugar de su salida. Puede utilizar una doble extensión como: file.inc.php. Entonces sirve el mismo propósito de ayuda y mantenibilidad.

Normalmente tengo 2 archivos php para cada página en mi sitio:

  1. Uno nombrado welcome.phpen la carpeta raíz, que contiene todo el marcado HTML.
  2. Y otro nombrado welcome.inc.phpen la inccarpeta, que contiene todas las funciones de PHP específicas de la welcome.phppágina.

EDITAR: Otro beneficio de usar la doble extensión .inc.phpsería que cualquier IDE aún puede reconocer el archivo como código PHP.

Wasted_Coder
fuente
44
+1 Vale la pena mencionar que lo hice en uno de mis proyectos.
dpp
17

Generalmente significa que es un archivo que necesita ser incluido y no crea un script independiente en sí mismo.

Esta es una convención, no una técnica de programación.

Aunque si su servidor web no está configurado correctamente, podría exponer archivos con extensiones como .inc.

Devraj
fuente
12

Es solo una forma para que el desarrollador pueda identificar fácilmente los archivos que se utilizarán como incluye. Es una convención popular. No tiene ningún significado especial para PHP, y no cambiará el comportamiento de PHP o el script en sí.

karim79
fuente
4

Esta es una convención que el programador usualmente usa para identificar diferentes nombres de archivos para incluir archivos. De modo que si los otros desarrolladores están trabajando en su código, él puede identificar fácilmente por qué este archivo está allí y cuál es el propósito de este archivo con solo ver el nombre del archivo.

Awais Qarni
fuente
3

Solo para agregar. Otra desventaja sería que los archivos .inc no son reconocidos por IDE, por lo tanto, no podría aprovechar las características de autocompletado o predicción de código.

dpp
fuente
2

En mi opinión, estos se usaron como una forma de encontrar rápidamente archivos de inclusión durante el desarrollo. Realmente estos se han vuelto obsoletos con convenciones y diseños de marcos.

Robert Ross
fuente
Este es un comentario sin sentido. Siempre uso .inc para incluir archivos porque es fácil y no hay negativos, solo positivos. El término 'convenciones' no tiene ningún referente del que tenga conocimiento en este contexto. Y los frameworks PHP, ni idea, nunca los toco yo mismo, escribo código, por lo que la noción de que 'frameworks' han reemplazado la codificación PHP es simplemente errónea. No hay nada de malo en usar las cosas si te gusta, pero creer que ha reemplazado la programación estándar, en los editores de código, es simplemente incorrecto.
Lizardx