SebWeo
Многие разработчики любят язык программирования PHP за его расширяемость и гибкость. Но в этом языке есть некоторые вещи, которые часто сбивают с толку. Самым ярким примером здесь выступает правильный способ подключения внешних файлов. Для этого в PHP есть аж четыре способа подключения файлов, а WordPress даже предлагает свой собственный вариант.
В сегодняшней статье мы рассмотрим четыре способа, которые есть в PHP для подключения файлов, а также рассмотрим способы подключения файлов и шаблонов, которые есть в WordPress.
Подключение файлов в PHP можно охарактеризовать как действие по добавлению другого файла в содержимое текущего файла. Это можно представить как импорт файла; в результате файлы объединяются, а затем интерпретируются как один файл.
include()
Это выражение включает и выполняет указанный файл. Если файл не найден, появится предупреждение PHP.
Проще говоря, это означает, что PHP будет искать файл, который вы пытаетесь включить. Если он будет найден, его содержимое добавится в скрипт в том месте, где вы объявили эту конструкцию.
ВАЖНО: если вы пишете функции, которые зависят от функций в другом файле, тогда убедитесь, что этот файл подключается первым. Если вам нужно добавить набор функций или внешний файл в середине существующей функции, тогда вы можете включить его в нужном месте.
Обратите внимание, что если подключаемый файл отсутствует, PHP выдаст предупреждение об ошибке. В зависимости от конфигурации сервера ошибка будет либо отображаться в браузере, либо будет записана в файл лога (журнал ошибок), либо оба варианта. Предупреждение в данном случае не считается фатальной ошибкой, и, как правило, не останавливает выполнение скрипта, но учтите, что часть ваших функций может работать некорректно.
Когда файл подгружается с помощью include(), он будет иметь доступ ко всем переменным, которые были определены в текущем скрипте.
include_once()
Эта конструкция ведет себя так же, как и include(), но если другой файл уже был подключен, он больше не будет подключаться. Т.е., другой скрипт подключается в данном случае только один раз.
Преимущество данного способа подключения заключается в том, что помимо гарантии того, что скрипт будет включен только в одном месте, он также гарантирует, что переменные и функции не обязательно будут переопределены. Если вы решите определить новый набор переменных или функций в файле, включить его в другой скрипт и не использовать include_once(), тогда вы рискуете переопределить функции и переменные, что может вызвать серьезные проблемы с выполнением кода.
Зависимое подключение файлов аналогично включению файлов, но оно имеет ряд собственных последствий, связанных с ошибками и безопасностью.
В данном случае подразумевается, что зависимое подключение настаивает на том, что скрипту необходим определенный файл для выполнения.
require()
Эта конструкция схожа с include(), но она выдает фатальную ошибку PHP, если файл не будет найден. Она будет выполнять то же действие, что и include(), т.е., импортировать внешний скрипт в контекст текущего файла, но если функция не сможет найти другой файл, она выдаст ошибку и полностью остановит выполнение скрипта. С помощью include() вы получите предупреждение, и скрипт сможет продолжить работу, а здесь ваш скрипт не будет дальше продолжать свое выполнение.
require_once()
Эта конструкция выполняет то же самое, что и require(), но она не будет подключать файл во второй раз, если он уже был подключен.
require_once() лучше подходит для больших сайтов, так как на более низком уровне выполняет дополнительную работу, которая влияет на безопасность и производительность.include_once() быстрее и считается приемлемой для небольших сайтов
Если вам нужно подключать другие файлы в WordPress, есть другой, более эффективный способ, чем использование include() и require().
Допустим, у вас есть определенный шаблон, который вам нужно подключить в другие шаблоны активной темы. Чтобы подключить другой шаблон, вы можете использовать что-то вроде этого:
include_once( 'shablon.php' );
Но это не является лучшей практикой в WordPress.
Вот функция, которую лучше использовать в WordPress: get_template_part()
Эта функция является частью API движка и используется специально для повторного использования разделов, шаблонов или кода (кроме блоков для хедера, футера и боковой панели) в вашей теме. Для этого вам нужно просто добавить в нужном шаблоне код вида:
get_template_part ('shablon');
Функция принимает два аргумента:
shablon. В результате подключится файл shablon.php, который находится на одном уровне с текущим файлом (в котором происходит подключение)
Придерживаясь примера выше, вы можете подключать другие шаблоны в нужный шаблон, например в footer.php, index.php, single.php, archives.php и т.д.
В WordPress есть функция подключения, которая является другим представлением конструкции require_once() – это функция load_template().
Ее синтаксис выглядит следующим образом:
load_template( $_template_file, $require_once );
$_template_file: путь к файлу, который нужно подключить.$require_once: true – будет подключать файл с помощью require_once, false – с помощью require
Пример:
load_template( get_template_directory() . '/shablon.php', true );
Вот и все на сегодня. Спасибо за внимание!
В нашем путешествии по миру сокетов мы начали с "верхнего этажа" — WebSocket в браузере,…
В предыдущей статье мы говорили о WebSockets — технологии, позволяющей создавать интерактивные чаты в браузере.…
Кожа младенца – тонкая и нежная. Еще не справляется с защитой организма от внешних факторов.…
Представьте себе телефонный разговор. Вы звоните другу, он поднимает трубку, и вы можете говорить одновременно,…
Долгое время планшеты воспринимались исключительно как устройства для потребления контента: посмотреть YouTube, полистать ленту новостей…
Вы внесли правки в CSS, исправили критический баг в JavaScript, загрузили файлы на сервер и…