Файлы .inc

Главные вкладки

Комментарии

Аватар пользователя Хафиз Хафиз 13 сентября 2013 в 7:35

sg85 wrote:
1 для удобства
2 чтобы не загружать весь код разом

Спасибо!
Можно подробнее?

В них хранятся все классы и переменные?

Аватар пользователя sg85 sg85 13 сентября 2013 в 18:55

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

Самое типичное применение подключаемых файлов в модулях друпал:
Например, у Вас есть довольно большой самописный модуль, который содержит много пунктов меню(hook_menu), часть из которых админка и работает с темизацией(hook_theme), тогда имеет смысл сделать файлы модуля в виде:
mymodule.info - тут понятно
mymodule.module - тут оставляем только хуки и функции, которые могут использоваться за пределами модуля(незабываем указывать файлы в хуках)
mymodule.pages.inc - сюда перекидываем колбеки меню, формы, их сабмиты и валидацию для всех пользователей
mymodule.theme.inc - тут храним функции темизации
mymodule.admin.inc - тут храним колбеки меню админки(туда же и формы с их валидацией и сабмитами)

В этом случае становится интуитивно понятно что и где искать, и кроме того, например, mymodule.admin.inc будет подгружаться только на страницах админки, если Вы зашли на какое-нибудь место на сайте, где Ваш модуль вообще не используется, то будет загружен только код из mymodule.module. Подобную схему можно увидеть в большинстве модулей.

Ну и вдогонку:

Для модуля с общим кодом в 50 строк создавать инки обычно не имеет смысла.

Классы так же принято хранить в отдельных файлах(не всегда), например myclass.inc или mymodule_myclass.inc(если, например, планируете его наследовать в других модулях) или еще как.

Так же можно придумывать собственное применение инкам, например создание плагинов для своего модуля.

В некоторых модулях можно увидеть, что в них хранят хуки(сделано чисто для удобства, на мой взгляд странный способ), однако в этом случае файл должен инклудиться при бутстрапе, например, через указание в теле(не в функциях) файла .module инклуда этого самого inc`а, т.е. при подключении файла .module должен сразу же подключаться и Ваш .inc

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

плагины для views и ctools зачастую должны иметь строго определенное имя, например, mymodule.views.inc, за подробностями см их документацию.