линия

Главная

пятница, 11 февраля 2022 г.

Laravel - вывод SQL запроса из конструктора запросов

 Часто работая со сложной логикой построения запроса необходимо посмотреть итоговый SQL запрос. Если на проекте есть веб морда, то это можно легко  посмотреть используя DebugBar, но как быть если у приложения есть только api ? Есть несколько решений: например логировать весь sql запрос. В методе boot класса AppServiceProvider  добавить такой код который записывает все сгенерированные запросы в файл.

----

<?
\DB::listen(function ($query) {
			$log = ["query" => $query->sql, "duration" => $query->time];
			Log::channel('mysql_info')->info(json_encode($log, JSON_UNESCAPED_UNICODE));
		});

---

среда, 9 февраля 2022 г.

Тестирование API через POSTMAN

Недавно я писал API для мобильного приложения на Битрикс. Проект был очень интересный  и разработка шла быстрыми темпами. Сроки , как обычно, поджимали, заказчик стоял  над душой и времени ковыряться в носу (образное выражение) не было совсем. И когда эндпоинтов перевалило за 30  заметил что все чаще и чаще отваливались некоторые методы с ошибкой. Бывало сам замечал, а иногда и  сам заказчик писал мне: у тебя метод возвращает  ошибку. Срочно исправьте. Было решено что то сделать с этими ошибками. Благо, у постмана есть функционал тестирования. Как же я был приятно удивлен тем , что процесс написания тестов очень простой. Радости были полные штаны. Итак, сегодня протестируем апи, в ответе ожидаем статус 200 и еще до кучи проверим тип Content-Type.



понедельник, 7 февраля 2022 г.

Laravel - Dusk регрессионное тестирование оформление заказа

 Тестирование приложения неотъемлемая часть  процесса правильной разработки программного продукта. Сегодня расскажу как легко можно  написать тест оформления заказа. Проект, на котором нужно было написать тест, довольной сложный: фронт на Vue , бек на Laravel . 

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

Для этой задачи прекрасно подойдет Laravel Dusk . Устанавливает сие дело очень просто. Переходите по ссылке для установки:  https://laravel.su/docs/8.x/dusk 



четверг, 23 декабря 2021 г.

Bitrix - bitrix:iblock.element.add.form мой способ кастомизации

 Перевалив за 30 все больше  ловлю себя на том что не хочу изобретать велосипед в программировании, стараюсь использовать готовые модули и компоненты. Разумеется, это правильный путь. Экономит кучу времени. В этом посте хочу поделиться как можно ловко изменять шаблон формы добавления или редактирования элемента. Шаблон компонента bitrix:iblock.element.add.form  ,откровенно говоря, ужасен. Адская боль когда нужно менять местами поля, или как то дорабатывать. Решение, как оказалось, простое до безобразия.

среда, 23 декабря 2020 г.

Bitrix - цена в долларах

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

Сначала я  поменял валюту, сохранил скриптом все цены в доллары. Дело подходило к концу, когда увидел что в фильтре цены тоже отображаются в долларах - что , разумеется, логично. Но клиент хотел чтоб было в рублях - что , разумеется, тоже логично.  Плюс ко всему, в карточке товара цены были в трех валютах, и когда открыл шаблон детальной страницы, ахнул. Кто видел шаблоны аспро, тот поймет.  Я понимал, что простая задача становится сложной. Каждая правка приводила к другой правке, что увеличивала стоимость  работы. Нужно было срочно что то решить.  И тут, как гром среди ясного неба, меня осенило. Тысяча чертей - воскликнул я  и немедленно начал писать код.

суббота, 31 октября 2020 г.

Bitrix : добавление данных из XML в Инфоблок


На днях,  дорабатывая очередной проект, столкнулся со странным явлением -  раз в сутки  некоторые свойства инфоблока магическим образом обнулялись. Сначала  решил что менеджер проекта все стер. Но нет,  это не был он, его алиби были железные и мне пришлось искать виновника самому.
Вскоре гаденыш был найден по пути /local/php_interface/cron/update.php . Скрипт запускался раз в сутки и весело обновлял данные. Нынешние доработки требовали дополнительные свойства в инофблоке, которые  решительно очищались в момент запуска скрипта. Опытные битриксоиды знают, что подобный код очищает необъявленные свойства. 

пятница, 4 сентября 2020 г.

Bitrix24 - отправка смс из интерфейса CRM

Наконец то собрался мыслями и взяв волю в кулак решил написать статью. Тебе будет интерсено если ты ищешь ответы на следующие вопросы:
 -Как добавить свое приложение в Битрикс24
 -Как отправлять и принимать смс и сохранить эти данные в Битркс24 

 Передо мной стояла следующая задача: необходимо было реализовать возможность отправить смс клиенту просьбой оценить оказанную услугу. Изначально хотели чтоб оценку можно было ставить ответной смс, но позже передумали; клиент переходит по ссылке и там уже ставит свою оценку.