Что такое .inc и зачем его использовать?

144

Я часто вижу примеры в PHP, содержащие файлы include.inc. Что означает .inc? Для чего это используется? Какие недостатки и преимущества его использования?

dpp
источник

Ответы:

275

Это не имеет значения, это просто расширение файла. Некоторые люди соглашаются называть файлы с расширением .inc, если этот файл предназначен для включения в другие файлы PHP, но это всего лишь соглашение.

У него есть возможный недостаток, который заключается в том, что серверы обычно не настроены для анализа файлов .inc как php, поэтому, если файл находится в вашем корневом веб-каталоге, а ваш сервер настроен по умолчанию, пользователь может просмотреть исходный код php в файл .inc, напрямую перейдя по URL-адресу.

Его единственное возможное преимущество состоит в том, что легко определить, какие файлы используются как включаемые. Хотя простое присвоение им расширения .php и их размещение в папке include дает тот же эффект без упомянутого выше недостатка.

Павел
источник
8
@domanokz Да, тогда пользоваться будет безопасно. Он будет рассматриваться как php только при использовании в структуре requireor includeи обрабатываться как обычный текст в остальное время. Обработка его как текста на вашем сервере не повредит, это повредит только тогда, когда ваш код будет представлен как текст для конечного пользователя).
Пол
@Paulpro Я давно задавался этим вопросом, спасибо, что разъяснили это!
RealDeal_EE'18,
1
Отличное объяснение. Только начал работать на новой работе и увидел, что они разбросаны по всему приложению. Я понятия не имел, что это была чисто конвенция. Благодарность!
Chev
4
Что касается сервера, который не настроен для parse.inc файлов как php. На самом деле это не обязательно, поскольку они читаются только из других файлов php в require / include. Это безопасно? Как указывает Paulpro, вы не хотите, чтобы любознательный конечный пользователь читал код, поэтому вы хотите настроить файлы, которые не будут извлекаться конечным пользователем, с помощью чего-то вроде «RedirectMatch 403 /.*\.inc$» в Apache conf или. htaccess
ClearCrescendo 06
Примечание: это не только для .phpи .inc. PHP также поддерживает работу с другими типами файлов. Включение, '.html', '.js', '.css', '.txt' или любых пользовательских расширений файлов, которые вы можете придумать, также заставит синтаксический анализ PHP читать из него код PHP. Полезно, когда вы хотите создать базу данных на основе файлов и хотите узнать, является ли это файлом базы данных. нравится .data. Затем вы можете использовать комментарий @ ClearCrescendo выше, чтобы защитить его.
Джомар Севильехо
71

Если вас беспокоит обслуживаемое содержимое файла, а не его вывод. Вы можете использовать двойное расширение , как: file.inc.php. Затем он служит той же цели - полезности и ремонтопригодности.

Обычно у меня есть 2 php файла для каждой страницы моего сайта:

  1. Один, названный welcome.phpв корневой папке, содержащий всю разметку HTML.
  2. И еще один, названный welcome.inc.phpв incпапке, содержащий все функции PHP, специфичные для welcome.phpстраницы.

РЕДАКТИРОВАТЬ: Еще одно преимущество использования двойного расширения .inc.phpзаключается в том, что любая среда IDE по-прежнему может распознавать файл как код PHP.

Wasted_Coder
источник
4
+1 Стоит отметить, что я сделал это в одном из своих проектов.
dpp
18

Обычно означает, что это файл, который необходимо включить, и он не создает автономный скрипт сам по себе.

Это соглашение, а не метод программирования.

Хотя, если ваш веб-сервер настроен неправильно, он может открывать файлы с расширениями, такими как .inc.

Деврадж
источник
12

Это просто способ, с помощью которого разработчик может легко идентифицировать файлы, которые должны использоваться как включаемые. Это популярное соглашение. Он не имеет особого значения для PHP и не изменяет поведение PHP или самого скрипта.

karim79
источник
4

Это соглашение, которое программисты обычно используют для определения разных имен файлов для включаемых файлов. Так что, если другие разработчики работают над своим кодом, он может легко определить, почему существует этот файл и какова его цель, просто увидев имя файла.

Аваис Карни
источник
3

Просто добавить. Другим недостатком может быть то, что файлы .inc не распознаются IDE, поэтому вы не можете воспользоваться функциями автозаполнения или прогнозирования кода.

dpp
источник
2

На мой взгляд, они использовались как способ быстрого поиска включаемых файлов при разработке. На самом деле они устарели с помощью соглашений и каркасных конструкций.

Роберт Росс
источник
Это бессмысленный комментарий. Я всегда использую .inc для включаемых файлов, потому что это просто, и в нем нет минусов, а есть только положительные моменты. Термин «соглашения» не имеет никакого значения, о котором я знаю в этом контексте. И фреймворки PHP, понятия не имею, никогда не трогай их сам, я пишу код, поэтому представление о том, что «фреймворки» заменили кодирование PHP, просто неверно. Нет ничего плохого в том, чтобы использовать этот материал, если он вам нравится, но полагать, что он заменил стандартное программирование в редакторах кода, просто неправильно.
Lizardx 05
1

Обратите внимание, что вы можете настроить Apache так, чтобы все файлы с .incрасширением были запрещены для получения путем прямого посещения URL-адреса.

см. ссылку: /server/22577/how-to-deny-the-web-access-to-some-files

Мвиза
источник