Описание новых АПИ функций не сразу появляется в документации. Есть объективные причины, почему это именно так, мне не хочется сейчас лишний раз перетирать вопрос снова. Между тем, сам не испытываю на этот счёт никаких проблем: при наличии исходников можно всегда посмотреть код. Правда, надо знать, где смотреть и что искать. Мне пришла идея написать скрипт, который будет сканировать текущие файлы ядра и выводить список доступных АПИ функций и событий всех модулей. Это значит, что любые доступные модули, написанные по идеологии Битрикс, можно будет "просмотреть".
[spoiler]
Не стал делать сканирование всех файлов модуля, т.к. АПИ содержится в классах. Кроме того, могут быть определены локальные функции, используемые, например, внутри компонента, только там и доступные. Так и работает быстрее. Выбираем модуль, тут же происходит сканирование и выводится список событий модуля и методов.
По списку аргументов можно легко догадаться, что они означают. Например, метод CCurrency::GetList имеет два обязательных параметра: поле сортировки и порядок сортировки. Оба передаются по ссылке. Третий параметр язык, по умолчанию принимает значение текущего языка.
По клику на функцию открывается её описание в новом окне. Код функции читается прямо из файла, при этом уже скрипты не парсятся, вся необходимая информация передаётся в URL.
По клику на событие открывается метод, где оно инициируется. Вызов события подсвечивается.
Скрипт можно скачать с сайта.
Обновление от 31.02.2012 Сейчас решение доступно через marketplace
что раз метод не описан, вы можете менять логику его работы
В теории это так, на практике мы сами не заинтересованы менять логику. Если метод используется во многих местах, вероятнее всего он меняться не будет, даже если не описан.
Доделал скрипт, доступен по прежней ссылке. Теперь
все модули сканируются последовательно один раз, после этого рядом с live_api.php появляется файл live_api.data.php, который содержит данные о функциях;
можно выбрать не только модуль, но и интересующий класс;
в исходном коде функции и методы битрикса ведут на их исходный код.
Выявился баг: сканировались не все функции главного модуля, пофиксил.
За одно сделал две фишки: - проверяется дата обновлений, если они свежее даты последнего сканирования, предлагается выполнить сканирование вновь; - поиск по именам методов и классов.
Денис, как понимаю скрипт просто бежит по include.php и classes/*/? Я к тому, что хорошо бы добавить нестандартные пути размещения методов (например, какой-то массив, который можно было бы наполнять вручную).
Например, в /main/img.php расположены методы работы с графикой, но скрипт их не обходит.
PS: Мелкий баг, если идет конструкция: $this->Something->SomethingElse то обрамление ссылками не срабатывает.
давно заметил такой косяк в блогах битрикса. Если сообщение в блоке "старое", то всем, кто подписан, вместо комментария, приходит в почту текст самого сообщения, а не коммента. у меня на сайте тоже самое
А почему нельзя саму документацию автоматизированно апдейтить по результатам этого скрипта? Я понимаю, что "человеческие" (написанные человеком) описания функций/событий появляются не быстро, но можно было бы хотя бы создать о них заметки. Преимущества: - их уже можно будет начинать комментировать, а комментарии бывают ценнее, чем даже "человеческое" описание. - по ним будет работать централизованный поиск.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».