0
Declined

Глобальные переменные Битрикс

Максим Махнюк 11 years ago updated by Медведев Михаил Юрьевич 11 years ago 5

Неплохо сделать так что бы IDE знала о глобальных переменных, доступных практически в любом php файле. Например, $APPLICATION.


Image 1

Answer

Answer
Declined

Здравствуйте, такого не планировал, т.к. есть замечательный проект bxApiDocs, который нужно добавить к проекту, а модули битрикса исключить из индексации - тогда появляются отличные подсказки. Проект постоянно обновляется

Сейчас проблема решается добавлением кода 


<?php

/** @var $APPLICATION CMain */

?>


в начало почти каждого файла.

Declined

Здравствуйте, такого не планировал, т.к. есть замечательный проект bxApiDocs, который нужно добавить к проекту, а модули битрикса исключить из индексации - тогда появляются отличные подсказки. Проект постоянно обновляется

Answer
Declined

Здравствуйте, такого не планировал, т.к. есть замечательный проект bxApiDocs, который нужно добавить к проекту, а модули битрикса исключить из индексации - тогда появляются отличные подсказки. Проект постоянно обновляется

Да, у мня так же работает, но поставьте курсор в любое другое место (не на $APPLICATION) и инспекшен скажет (если он не отключен), что переменная $APPLICATION might not been initialized при первом её упоминании.


То есть вы не так поняли суть вопроса. Я не об автокомплите совершенно.

Т.е. нужно сделать чтобы IDE не ругалась на $APPLICATION/$USER/etc?

Да, именно. Очень удобно видеть переменные, которые не определены до начала их использования. Особенно, когда разбираешь не свой код. Но то, что под эту гребёнку попадают глобальные переменные Битрикс сводит полезность данной проверки к минимуму.




Говоря на языке IDE, - нужно сделать так что бы у данного правила проверки были исключения:




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


В этом файле можно прописать, например, global $APPLICATION, $arParams и $arResult и забыть о том, что IDE о них знать не будет. Или, можно сделать простой список таких переменных в настройках модуля через ';'.


Решить проблему с $APPLICATION довольно просто, сняв галочку "Ignore 'include' and 'require' statements", но вот способа справиться с $arParams, $arResult и прочими я не нашёл.


Сам я только начал разбираться с разработкой плагинов под IDEA и пока ума не приложу как такое сделать. Но буду стараться включиться в процесс разработки через pull requests на GitHub.