Що таке .inc і для чого його використовувати?


139

Я часто бачу приклади в PHP, які включають файли.inc. Яке значення .inc? Для чого він використовується? Які недоліки та переваги його використання?

Відповіді:


268

Це не має ніякого значення, це лише розширення файлу. Ім'я файлів із розширенням .inc - це умова людей, якщо цей файл призначений для включення до інших файлів PHP, але це лише умова.

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

Єдиною можливою його перевагою є те, що легко визначити, які файли використовуються як включає. Хоча просто надання їм розширення .php та розміщення їх у папці включає такий же ефект без згаданого вище недоліку.


8
@domanokz Так, це буде безпечно використовувати тоді. Це буде розглядатися як php лише тоді, коли він буде використаний у структурі requireабо, includeа решта часу буде розглянуто як звичайний текст. Якщо трактувати його як текст на вашому сервері, це не зашкодить, болить лише тоді, коли ваш код подається як текст кінцевому користувачеві).
Пол

@Paulpro Мені було цікаво це перед тим, дякую, що ви зрозуміли це!
RealDeal_EE'18

1
Чудове пояснення. Щойно розпочав нову роботу і побачив, що вони засмічені у всій програмі. Я не мав уявлення, що це суто конвенція. Дякую!
Шев

4
Що стосується того, що сервер не налаштований на розбір файлів parse.inc як php. Насправді це не потрібно, оскільки вони читаються лише з інших файлів PHP, які вимагають / включають. Чи безпечно? Як Paulpro вказує, що ви не хочете, щоб допитливий код для читання кінцевого користувача, тому ви хочете налаштувати файли, щоб кінцевий користувач не міг їх отримувати, таким чином, як "RedirectMatch 403 /.*\.inc$" в конфігурації Apache або. htaccess
ClearCrescendo

Примітка. Це не лише для .phpта .inc. PHP включає також роботу з іншими типами файлів. Включаючи,. Корисно, коли ви хочете створити базу даних на основі файлів і хочете сказати, чи це файл бази даних. як .data. Потім ви можете використовувати коментар @ ClearCrescendo вище, щоб захистити його.
Джомар Севільйо

71

Якщо ви стурбовані тим, що вміст файлу подається, а не його вихід. Ви можете використовувати подвійне розширення , як: file.inc.php. Потім він служить тій же цілі корисності та ремонтопридатності.

У мене зазвичай є 2 файли PHP для кожної сторінки на моєму сайті:

  1. Одне назване welcome.phpв кореневій папці, що містить всю розмітку HTML.
  2. І ще одна назва welcome.inc.phpв incпапці, що містить усі функції PHP, характерні для welcome.phpсторінки.

EDIT: Ще однією перевагою використання подвійного розширення .inc.phpбуде те, що будь-який IDE все ще може розпізнати файл як PHP-код.


4
+1 Варто зазначити, що я це робив в одному зі своїх проектів.
dpp

17

Взагалі означає, що його файл, який потрібно включити і не робить самостійний сценарій сам по собі.

Це умова, а не техніка програмування.

Хоча якщо ваш веб-сервер не налаштований належним чином, він може відкривати файли з розширеннями, такими як .inc.


12

Це просто спосіб для розробника мати можливість легко ідентифікувати файли, які мають бути використані як включає. Це народна конвенція. Це не має особливого значення для PHP і не змінить поведінку PHP чи самого сценарію.


4

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


3

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


2

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


Це безглуздий коментар. Я завжди використовую .inc для файлів, що включають, тому що це легко і немає негативів, а лише позитивів. Термін "конвенції" не має референта, про який я знаю в цьому контексті. І фреймворки PHP, поняття не маю, ніколи не торкайтесь їх самих, я пишу код, тому поняття, що "фреймворки" замінили кодування PHP, просто неправильне. Нічого поганого у використанні цього матеріалу, якщо вам це подобається, але вважати, що його замінено стандартним програмуванням, в редакторах кодів, просто неправильно.
Лізардкс

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.