- Удобная отладка кода в Битрикс. При разработке компонентов и модулей часто приходится делать отладк.
- Как получить массив с информацией о заказе Bitrix?
- Как вывести переменную из компонента в шаблоне (Битрикс)
- Пользовательское поле типа «Массив»
- Битрикс вывести содержимое массива
- Как построен курс
- Начальные требования к подготовке
- У нас часто спрашивают, сколько нужно заплатить
- Баллы опыта
- Тесты
- Комментарии к статьям
- Что дальше?
- Для преподавания оффлайн
- Если нет интернета
Удобная отладка кода в Битрикс. При разработке компонентов и модулей часто приходится делать отладк.
Удобная отладка кода в Битрикс.
При разработке компонентов и модулей часто приходится делать отладку, а именно вывести содержимое массива.
Для удобства можно подготовить несколько готовых функции:
«; > > //Функция Reflection API, получение всех методов, и свойств function classDump($className,$defaultUserId = «1»)< global $USER; if($USER->GetId() == $defaultUserId)< $reflection = new ReflectionClass($className); $methods = $reflection->getMethods(); $props = $reflection->getProperties(); $statics = $reflection->getStaticProperties(); $arReflection[«NAME»] = $className; $arReflection[«METHODS»] = $methods; $arReflection[«PROPERTIES»] = $props; $arReflection[«STATIC_PROPERTIES»] = $statics; echo «»; > > //Функция отладки в файл define(«LOG_FILENAME», $_SERVER[«DOCUMENT_ROOT»].»/log.txt»); function fileDump(&$arFields,$paramName = «arrName») Данный код необходимо добавить в файл /local/php_interface/init.php arDump — выводит содержимое массива в форматированном виде; fileDump — дозаписывает содержимое массива в файл log.txt в корень сайта. classDump — можно использовать рефлекию, для того чтобы исследовать недокументированный класс, чтобы посмотреть, какие есть у него методы и свойства. Вас же потом начитаются и будут делать по образу и подобию. Не делайте так! Если вам нужно удобно в браузере просматривать содержимое любых переменных, подключите symfony/var-dumper или kint-php/kint. При необходимости напишите над ними обертку для проверки доступов битриксом, и будет вам счастье. Все эти танцы с тегом pre и print_r — вообще уже давно не актуальны. Использовать рефлексию без кеширования для логирования (особенно если тыкать логирование везде где ни попадя) — это очень ресурсоемко. Логировать отладочную информацию в корень DOCUMENT_ROOT — это вообще форшмак. Вы так с легкостью раскрываете параметры своего окружения, сервера (в зависимости от того, что попадает в лог) Нужно логирование — подключите monolog/monolog и логируйте. Быстро, документировано, расширяемо, в любое хранилище и в любом удобном формате. Использовать AddMessage2Log для записи логов (и больших и маленьких) — это не лучшая идея, т.к. при большом количестве данных вы не сможете по ним нормально искать. Тем более в нормальных условиях таблица журнала событий должна чиститься автоматически, а если вы ее будете забивать дополнительными данными, она не будет успевать очищаться и ваша база будет расти. Что касается логирования средствами битрикс. Использовать битриксовые функции для логирования — это значит лишить себя ротации логов, из чего вытекает регулярный рост размера файла с логами, что может повлечь за собой падение всей системы из-за нехватки места. Если уж говорить об отладке — то познакомьтесь с xdebug, и вообще забудете про то, что надо выводить какие-то отладочные данные в браузер. Источник Как получить массив с информацией о заказе Bitrix?День добрый! Необходимо использовать только D7!
Спасибо за подсказку. $id заказа, наверное, у тебя в url-е будет PetrPo, спасибо. В публичной части пусто, ничего не возвращается Андрей Белый, да я тупанул, тебе же пропсы нужны Коды свойств и id заказа на нужные замени PetrPo, спасибо, то что надо. 2. Появилась необходимость вывести сумму скидки(если она применяется), делаю так: Если сумму оплаты и сумму доставки получаю верно, то сумма скидки всегда 0, какие мысли на этот счет? Источник Как вывести переменную из компонента в шаблоне (Битрикс)При разработке сайтов на битриксе иногда возникает необходимость вывести определенную локальную переменную из компонента где-нибудь еще, или же использовать её иным способом. В рамках данного примера, такой переменной является значение города из компонента определения пользовательского местоположения. Существуют несколько путей решения данной задачи. В данной заметке рассматривается путь не самый идеальный, но наиболее простой. Решение данной задачи возможно через объявление искомой переменной глобальной — т.е. видимой и за пределами исходного компонента. Для внесения ясности можно привести следующий пример из реальной практики автора данной заметки: Требуется получить значение города из компонента «Определитель города» и, на основании полученных данных, вывести тот, или иной баннер. Шаг 1. Код компонента Первым делом, мы идем в код шаблона компонента и ищем там искомую переменную/массив данных. Шаблон компонента, как известно, может быть расположен либо в папке с шаблоном сайта, либо в папке /bitrix/components/. В нашем случае, это часть массива $arResult: $arResult[«USER_CHOICE»]; Если мы попробуем вывести этот массив за пределами компонента, например, в футере (через print_r()), то получим пустое значение. Переопределяем: $GLOBALS[‘sonicYouth’] = $arResult[«USER_CHOICE»]; Шаг 2. Вывод содержимого массива Вызываем в футере содержимое нашего массива через print_r: Источник Пользовательское поле типа «Массив»
неправда, минут на 10-15 делов.
Используйте значение свойства и описание, вкупе со множественным свойством типа «Строка» — и все, вот вам массив пара-значение. Или сериализуйте. Битрикс почти всемогущ, нужно только грамотно им пользоваться, и любая задача будет по плечу. Когда со временем понимаешь что-то очень важное новое для себя, то одновременно видишь себя в начале своей карьеры со стороны: понимаешь, почему сделано так, как сделано, а не так, как казалось «правильным».
это, к сожалению, не подойдет — 1) посетителю нужно представлять список предопределенных значений первого поля массива, а не строку, которую он произвольно заполнит, как ему хочется 2) я привел неудачный пример, на самом деле в таблице больше двух колонок, поэтому одного описания мало будет. А вот за подсказку о сериализации огромное спасибо — я совершенно забыл об этой функции. Ее правда, тоже придется применить в шаблоне компонента заполнения инфоблока, а при выводе данных из инфоблока не забыть сделать unserialize, но это уже дело десятое. Еще раз спасибо за подсказку. Источник Битрикс вывести содержимое массиваЦитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Имена авторов цитат даются в том написании, в каком авторы зарегистрировали себя на сайте «1С-Битрикс». . Евгений Смолин: Сам кувыркался с непонятками (пока курсы учебные не прочитал и руками не попробовал то, что там написано). Битрикс из тех систем, где изучение «методом тыка» не очень эффективно без предварительного изучения учебных курсов. Уважаемые новички, потратьте немного своего драгоценного времени, пройдите пару-тройку учебных курсов и масса вопросов просто испарится — там есть ответы на множество вопросов. Курс для разработчиков — продолжение линейки учебных курсов по Bitrix Framework. Получение сертификата по курсу рекомендуется после успешной сдачи тестов по всей линейке курсов, так как без понятия о работе Контент-менеджера и Администратора создание успешных сайтов будет затруднено. Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
Для преподавания оффлайнЕсли данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов). Если нет интернета
iPhone: Windows: iOS Источник |