Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
🔥 Дрифт и гонки без правил!
Садись за руль, жги резину и уноси баллы в безумных поворотах!
🚗 Реалистичный дрифт
🏁 Захватывающие трассы
💨 Улучши свою тачку и побеждай!

Дрифт Без Лимита

Гонки, Симуляторы, Спорт

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

PHP + Программирование

С этим тегом используют

Программист IT Javascript HTML Web-программирование Разработка IT юмор Python Картинка с текстом Юмор Все
280 постов сначала свежее
Dehavilland56
1 месяц назад
Программисты шутят

Когда наблюдаешь очередной срач между фанатами php и node.js⁠⁠

Когда наблюдаешь очередной срач между фанатами php и node.js IT юмор, Программирование, Картинка с текстом, Программист, Telegram (ссылка), PHP, Nodejs, IT, Javascript, Мемы

Взято тут - https://t.me/memolecules/29

IT юмор Программирование Картинка с текстом Программист Telegram (ссылка) PHP Nodejs IT Javascript Мемы
4
4
gunborg
gunborg
1 месяц назад

Можно ли стать программистом в 50?⁠⁠

Это ответ читателям предыдущего моего поста и, в первую очередь самому себе, по прошествии 3 лет: не лезьте в это гиблое дело, не надо.

Можно только при условии, что а) этого хочется прям очень-очень и у вас нет семьи, и б) озвученная ниже зарплата не требуется вот прям сейчас или можете заработать её другим способом.

Мне было нужно и очень хотелось. Я кололся, давился, но продолжал жрать кактус учиться. Я не могу рассказать за все IT-направления, могу только за свой небольшой опыт - backend на PHP/Symfony/Opencart. Ниже несколько мыслей, ощущений, ситуаций и пожеланий тому, кто думает рискнуть в это окунуться. Повторяю: всё ниже описанное - лишь мои личные ощущения/мнения/опыт, не претендующие на истину. Все люди разные по складу ума/характера/здоровья. Повторять за мной или ориентироваться на меня НЕ НАДО!

Что я имею по прошествии 3 лет с первого трудоустройства:
- работаю с крупной компанией по продаже авто на позиции backend разработчика на PHP/Symfony. Это моё второе место работы. За первое место работы в фирме "А", из-за которого взяли на второе, если соберусь с мыслями, напишу отдельно. Я не в штате организации, работаю по бессрочному договору подряда как частный предприниматель.
- на мне поддержка и развитие основного бандла (для простоты "модуль", часть сайта). В нем есть панель управления с кучей ответвлений, правами доступа, консольные команды, API, импорт/экспорт в/из Excel и XML, импорт отзывов из Google и пр.
- по договору вроде как не должен раскрывать свою зарплату, но можно ориентироваться на диапазон 3000-5000 евро в месяц.
Достаточно ли этих денег для проживания в Праге? Стоило ли тратить последние силы в течении трех лет на это "достижение"?
Ответы будут у каждого свои. Мне очень хотелось, сошлись звёзды, поэтому ещё и "моглось", мой ответ - "да". Верни меня на 3 года назад и я повторил бы это снова.

К чему быть готовым или мои пометки:
- очень тяжело и будет болеть голова от перегруза информацией, которая упорно не будет желать в этой голове закрепиться надолго. Это возрастное?
- объем информации больше, чем ожидал изначально. Надо реально что-то всё время учить. Где взять и куда себе засунуть второй мозг для апгрейта имеющегося?
- здоровье оказывается не вечное. Заметно садится зрение, понемногу толстею. Как вкусно жрать и худеть одновременно?
- отсутствие свободного времени и нормального отдыха. Тотальное отсутствие. Иногда катастрофическое. Мне приходилось одновременно и работать начинающим программистом, и не запускать свой бизнес, и учиться. Куда в этом рассписании запихнуть жену, двоих детей и собаку?
- если бы до трудоустройства самостоятельно не попробовал что-то сделать на Opencart, то не устроился бы на работу и не добрался бы до Symfony. Далеко не лучшая последовательность, но у меня было так. Список того, что мне еще надо изучать, с течением времени только увеличивается. Есть ли в обозримом будущем этому списку конец?
- по истечении любого месяца договор может быть расторгнут, что меня немного напрягает. Немного, потому как есть свой небольшой бизнес, который работал, работает и будет работать пока не продам, т.е. есть параллельный зароботок.
- изначально выбрал для себя правильное направление, связка PHP/Symfony ещё какое-то время будет востребована. Мне вот интересно, насколько какое-то? Или тенденции на рынке меняются в сторону ухудшения, или я правильно изменил резюме, но примерно полгода как мне перестали писать HR с просьбой рассмотреть их варианты.
- пока не очень настойчиво, но руководители требуют изучения приоритетно Angular и C#. Хотели бы меня подключить к другим проектам. Пока всё идёт по плану?

Приколы за 2 года работы в этой фирме:
- работаю удаленно, в офисе не появлялся ни разу. Работаю абсолютно один, никакой команды у меня нет. Надо мной есть два человека: непосредственный начальник, который распределяет очередность работы, и начальник всего IT-подразделения. Из минусов - не с кем посоветоваться. Если что-то не получается, то помогает только святой Гуглёж.
- ни непосредственного начальника, ни руководителя IT-подразделения в живую не видел ни разу, каждого по одному разу только в онлайн-видео в Teams при первом знакомстве 2 года назад. Общение происходит только текстом/голосом без видео, либо по email. Из живых людей видел девушку из отдела кадров, которая мне передавала подписанный договор, и техника, который передал рабочий ноутбук. И это при официальном штате фирмы в 2500 работников.

Стал ли я в итоге программистом в свои сегодняшние 50?
Стал. Мне платят деньги. Спустя три года появилось ощущение востребованности и положительной перспективы. Мозг с таким режимом и работой точно не засохнет с возрастом или от безделия.

Показать полностью
[моё] Работа Зарплата Собеседование Программист IT PHP Программирование Бизнес Длиннопост Symfony Opencart Карьера Удаленная работа Текст
6
191
Dehavilland56
2 месяца назад
IT-юмор

Php⁠⁠

Php Программирование, Программист, PHP, IT юмор, Юмор, Мемы, Telegram (ссылка), Картинка с текстом

Взято тут - https://t.me/memolecules/25

Показать полностью 1
Программирование Программист PHP IT юмор Юмор Мемы Telegram (ссылка) Картинка с текстом
63
olg3andr
olg3andr
2 месяца назад

Архитектура как мышление⁠⁠

Как я перестал писать код и начал проектировать смысл

Когда ты пишешь код достаточно долго, в какой-то момент перестаёшь интересоваться фреймворками, и начинаешь интересоваться — почему ты пишешь именно так.

Я программист. Пишу на PHP. Много лет. Экспериментирую.
И как у всех — были MVC, DI, EventDispatcher, DDD, REST, GraphQL, всё.
Но однажды я понял: настоящая сила не в паттернах.
А в переосмыслении самого подхода к архитектуре.


Декларация → Компиляция → Исполнение

Каждый модуль — это фрактал:
Domain, Application, Infrastructure, ModuleAssembly.

Модуль не "работает". Он просто заявляет, что умеет:

Архитектура как мышление PHP, Архитектура, Код, Парадигма, Программирование, Мышление, Длиннопост

Декларация модуля

Когда система говорит:

Архитектура как мышление PHP, Архитектура, Код, Парадигма, Программирование, Мышление, Длиннопост

Ожидание интерфейса

Контейнер спрашивает у мира: «Кто умеет это?»
И мир отвечает:

Архитектура как мышление PHP, Архитектура, Код, Парадигма, Программирование, Мышление, Длиннопост

Конфигурация модуля


Контроллер как декларация

Вот пример реального контроллера. Он ничего не валидирует, не авторизует, не логгирует вручную. Он просто говорит, что нужно сделать:

Архитектура как мышление PHP, Архитектура, Код, Парадигма, Программирование, Мышление, Длиннопост

Пример контроллера

Что на самом деле происходит:

— Guard проверяет доступ по IP-группе
— Configurator подключает зависимости
— Route компилируется на старте
— Mapper обрабатывает исключения
— GlobalEvent фиксирует событие

Ты больше не пишешь "что делать".
Ты декларируешь смысл.
А архитектура сама решает, как это выполнить.


Это не просто DI.

Это — реакция. Это смысл. Это мышление.

Будет доклад. Может — книга. Может — просто PDF для своих.
Но если ты хочешь быть среди тех, кто не просто пишет код, а мысленно строит системы — оставайся на связи.

Архитектура как мышление. Это уже началось...

Показать полностью 3
[моё] PHP Архитектура Код Парадигма Программирование Мышление Длиннопост
15
12
ProgTime
ProgTime
2 месяца назад
Лига программистов

Сделал Telegram-бота для техподдержки через темы. Код открытый⁠⁠

Привет, Пикабу! 👋
Хочу показать вам Telegram-бота, которого я написал на Laravel. Он помогает вести персонализированную поддержку пользователей прямо в Telegram.

Ссылка на GitHub:
🌟 https://github.com/prog-time/tg-support-bot

Если зайдёте — буду рад вашей звёздочке!

Зачем вообще нужен такой бот?

Я веду блог по разработке, и мне часто пишут подписчики. Сначала я просто отвечал вручную, но быстро понял, что чат захламляется, сообщения теряются, и всё становится неудобно.

Хотелось:

  • централизованной переписки,

  • без спама в личке,

  • и чтобы пользователи не видел личный аккаунт.

Так и родилась идея: бот, который принимает сообщения от клиентов, создаёт для каждого отдельную тему в Telegram-группе, и пересылает туда все сообщения. Я отвечаю в теме — бот отправляет ответ клиенту от своего имени.

Никаких личных контактов. Никаких потерянных сообщений. Всё — в одной группе.

Как работает бот?

Очень просто:

  1. Создаём группу в Telegram для фиксирования чатов.

  2. В настройках группы включаем темы и добавляем бота в группу с правами администратора.

  3. Пользователь пишет боту.

  4. Если это новый клиент, бот создаёт отдельную тему в группе.

  5. Вы отвечаете в этой теме — бот пересылает ответ клиенту.

🎯 Бонус:
Бот не хранит переписки, фото и файлы — только ID сообщений и клиентов. Никаких баз данных с чувствительной инфой. Всё по-честному.

Сделал Telegram-бота для техподдержки через темы. Код открытый Программирование, Telegram, Боты, Laravel, PHP, Github, Чат-бот, Длиннопост

Что умеет?

  • Поддерживает все типы сообщений: текст, голос, видео, документы, фото.

  • Подходит для небольших команд, которым нужна простая и быстрая поддержка через Telegram.

  • Настраивается примерно за 30-60 минут.

Сделал Telegram-бота для техподдержки через темы. Код открытый Программирование, Telegram, Боты, Laravel, PHP, Github, Чат-бот, Длиннопост

Название темы формируется из символа "#" и id пользователя.

У темы меняется иконка, в зависимости от последнего сообщения. Если последнее сообщение от клиента, то ставится иконка "облачко", а если оно написано со стороны администратора, то ставится "зелёная галочка".

Также вы можете получить информацию о пользователе с котором ведёте общение.Подобное сообщение отправляется при создание темы или после отправки команды /contact.

Как установить?

Процесс установки очень прост. Если что-то не получится — пишите мне в Telegram:
📬 https://t.me/prog_time_bot

В двух словах:

1) Клонируем репозиторий:

git clone https://github.com/prog-time/tg-support-bot.git

2) Создаём бота через BotFather.

3) Создаём приватную группу и включаем темы.

4) Добавляем бота в группу с правами администратора.

5) Получаем ID группы (например, через getmyid_bot).

6) Настраиваем .env файл проекта:

APP_URL="https://your-domain.ru"

TELEGRAM_TOKEN="ваш_токен"

TELEGRAM_GROUP_ID="id_группы"

TELEGRAM_SECRET_KEY="придумайте_ключ"

7) Заходим по адресу https://ваш-домен/api/telegram/set_webhook, для регистрации хука.

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

Если было полезно — поставьте звезду на GitHub и расскажите друзьям-разработчикам.
Возможно, кому-то это сэкономит кучу времени и нервов.

Буду рад фидбеку!

Показать полностью 2
[моё] Программирование Telegram Боты Laravel PHP Github Чат-бот Длиннопост
0
15
DELETED
3 месяца назад

Выгнали из дома, ищу стажировку программистом⁠⁠

Здравствуйте, Пикабучане!

Парень 25 лет.

Тут такое дело.. - меня выгнали из дома😐

Деваться мне было некуда. Просто перед фактом поставили и дали часа 2 мне. Мать больная на голову. И брат в придачу туда же. Забрал своё барахло. ПК (даже стол от ПК забрал :') одежду и мелочи. В этот момент друг помог договориться с хатой. Сняли какую-то халупу и в таком же дворе. 25 тыс. Пиздееец... Это место и 15 не стоит. Ну что поделать, вариантов ведь не было. Нужно было здесь и сейчас. Денег у меня немного. Я сейчас без работы. В 2024 году уволился с прежней работы. Уволился чтобы спокойно учиться. А так работал с людьми.

Зачем я это написал? С одной стороны поделиться с кем-то своей ситуацией. С другой стороны может кто-то сможет предоставить стажировку. Чему я учился: PHP программирование. Я изучил базу PHP. В том числе и ООП. Сейчас приступаю к изучению SQL. Ответственен, коммуникабелен. Немного знаю HTML и CSS. Вполне могу читать код и вносить изменения. Просто я бы хотел сразу сосредоточиться на том, чему я учился - а это PHP программирование.

Также хочу продать свой ПК (и этот стол :) и на вырученные средства взять ноутбук. Ну во-первых чтобы была какая-никакая мобильность при переездах. Да и во-вторых если вдруг отключат свет, то смогу несколько часов поработать. В любом случае дурака валять на стажировке не буду. Я понимаю, что я ответственен не только за себя, но и за того, кто предоставит стажировку.

Спасибо что прочитали, что уделили немного своего времени. И да, извиняюсь за допущенные ошибки и пунктуацию, если они есть:')

P.S. Пикабу порекомендовал теги, поэтому их поставил.

Показать полностью
[моё] Проблема Личный опыт Учеба Поиск работы Удаленная работа Фриланс Карьера Программирование Программист PHP IT Мат Текст Без рейтинга
13
3
sumat777
sumat777
3 месяца назад
Писатель Константин Оборотов
Серия Курсы

Восхождение на Ларавель⁠⁠

Нет, эта история вовсе не про альпинизм. Laravel (Ларавел, Ларавель) - один из самых популярных фреймворков с открытым кодом на базе php. Создал Ларавель Тейлор Отвелл (Taylor Otwell) в 2011 году. Название Laravel образовалось путем замены первой буквы от слова Paravel. Cair Paravel (Кэйр Паравел) - замок из мира Нарнии, придуманного Клайвом Льюисом. Это история о том, как я изучал Ларавель и что из этого вышло.

© 2025 Константин Оборотов

===

Восхождение на Ларавель Программирование, Гайд, PHP, Laravel, Framework, Веб фреймворки, Изучение, Тестирование, Длиннопост

Сподвигли меня на изучение Ларавели утверждения одного авторитета в области разработки, что Ларовель перспективнее и интереснее, чем YII2, да и, вообще, чем любой фреймворк на PHP.

Мне стало очень любопытно. Мною овладел азарт, и даже искушение. А лучший способ избавиться от искушения - следовать ему.

Я решил, что лучший способ изучения - запустить какой-нибудь небольшой проект на Ларавели с возможностью свободного доступа для всех желающих. В процессе создания нового ресурса воленс-ноленс придется овладеть каким-то минимумом знаний. Таким образом, будут убиты все зайцы. Произойдет и овладение теорией вопроса, и практическая реализация будет "налицо".

Также я решил по итогам путешествия сделать вот эти путевые заметки, которые вы сейчас читаете. Если вы разработчик-новичок (как и я в Ларавеле), то возможно они будут для вас интересными и полезными.

Начну я с описания своего "дипломного проекта", который получился в итоге первичного изучения Ларавели.

https://ch.inumo.ru/ - Учебный проект, выполненный с целью изучения фреймворка Ларавель (Laravel). Главная страница этого сайта.

https://wpvi.ru/pages/story/00097/ - дорожная карта, пошаговая шпаргалка.

Теперь я хочу рассказать, как я знакомился с Ларавель, что мне понравилось и что мне категорически не понравилось.

Первичное обучение я прошел учебно-тренировочном лагере Ларавели вот по этому поддомену:

bootcamp(.)laravel(.)com

Это обучение мне очень понравилось. Все четко, все по сути, все пошагово. В результате на выходе получился сайт (см. выше).

Какое же у меня было разочарование, когда я зашел на этот учебный лагерь через какое-то время и обнаружил, что никакого учебного лагеря больше нет!

А ссылка выше теперь редиректит сюда:

laravel(.)com/docs/12.x

Это мне очень сильно не понравилось! Я был в шоке. Разве можно так делать? Если по каким-то причинам вы закрыли свой учебный проект, то разместите какое-то сообщение по данному адресу. А то как-то молчком, без объяснения причин. Разве можно так делать?

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

laracasts(.)com - коллекция курсов, экзаменов по Laravel и PHP, а также сообщество, которому нет равных.

Решил я проверить это общество на "вшивость" и задал простой вопрос, "куда делся этот учебный лагерь?"

Мне сильно понравилось, что мой вопрос был опубликован в отдельной ветке и на него поступили внятные ответы по сути вопроса:

laracasts(.)com/discuss/channels/laravel/subdomain-bootcamplaravelcom-doesnt-work-20250302-why

Этот вопрос и ответы в подробном изложении.

Подробности и актуальную информации по этому вопросу вы можете прочитать по ссылке выше, а коротко суть такая.

Ликвидация учебного лагеря связана с переходом Ларавеля с версии 11 на версию 12. Возможно, учебный лагерь возродится через некоторое время с учетом специфики новой версии. Но это неточно.

Лагерь в архиве - Все материалы учебного лагеря сохранились в специальном сайте-архивариусе

web(.)archive(.)org/web/20250206182837/https://bootcamp(.)laravel(.)com

Надо сказать, что последний пункт меня немного удивил. Не является ли такой процесс "коммунизации" учебных материалов банальным нарушением авторских прав?

Впрочем, не важно. Работает, и ладно.

Кстати, я на всякий случай, еще раз прошелся от начала до конца по учебному курсу в плане создания курсового проекта. Теперь автоматом ставится версия 12 (она сейчас актуальная). Проект работает, но есть незначительные косяки, связанные со стилями. Но это пустяки. В целом все работает. А стили всегда можно подправить.

Давайте, пройдемся по датам. Я пишу эти строки в марте 2025. Сейчас на Ларавеле переход с версии 11 на версию 12. А когда вы читаете этот текст, все может кардинально измениться. Может, актуальная версия будет 13 или 14, может учебный лагерь возобновит работу. Все, что угодно или негодно может случиться.

Так или иначе, мы сделали пока главное. Мы поймали дух Ларавеля. Тут постоянно все меняется, идет какая-та движуха. Тут много народа, который поможет новичку (как я или вы) консультацией бесплатно или за деньги.

Есть ли для вас вообще смысл изучать Ларавель?

Думаю, да. Перспективы Ларавели и ваша будущая зарплата пока выглядят достаточно оптимистично.

И самое главное. Изучение Ларавели очень увлекательный процесс.

Самостоятельная работа

Работа, которая заключается в повторении указаний тренера относительно простая, но не такая интересная.

Хотя для новичка это то, что надо.

После того, как прошлись по шагам учебного центра, самое время сделать что-то свое, без указки тренера.

Ведь намного полезнее придумать задание самому себе и попробовать его выполнить.

Вот такие задания я придумал для себя.

Чередование фоновой окраски сообщений

Смысл этого задания в том, чтобы отделить цветом одно сообщение от другого.

Восхождение на Ларавель Программирование, Гайд, PHP, Laravel, Framework, Веб фреймворки, Изучение, Тестирование, Длиннопост

Достигается такое чередование следующим способом.

resources/views/chirps/index.blade.php

@foreach ($chirps as $chirp)

@if ($loop->even)

<div class="p-6 flex space-x-2" style="background-color:#FFFFF0;">

@else

<div class="p-6 flex space-x-2" style="background-color:#F0FFFF;">

@endif

Задача решается на уровне ядра Лезвия (Blade). Имеется встроенный объект $loop (официально называется переменная), а у него есть свойство even, которое мы и используем в данном случае.

Отображение сообщения в форматах TEXT и HTML

Здесь мы рассмотрим две идеи.

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

Теория вопроса в рамках опять же Лезвия (Blade) следующая.

{{ $chirp->message }} - сообщение отображается в текстовом формате

{!! $chirp->message !!} - сообщение отображается в HTML формате

Тут же приходит мысль, что было бы неплохо одним пользователям, которым мы доверяем безусловно, разрешить HTML формат. А остальные пользователи пусть работают в текстовом формате. Если они попытаются использовать какие-то теги HTML, то все эти теги будут отображаться как текст. Таким образом мы обеспечим требуемый уровень безопасности.

resources/views/chirps/index.blade.php

@if ($chirp->user->id==1)

<p class="mt-4 text-lg text-gray-900">{!! $chirp->message !!}</p>

@else

<p class="mt-4 text-lg text-gray-900">{{ $chirp->message }}</p>

@endif

Разумеется в выражении @if можно придумать и более сложную логику отбора.

Вот и все, что я хотел бы рассказать вам о Ларавели.

Желаю вам успеха, высокого заработка и качественного кода!

...

Первоисточник:

https://wpvi.ru/pages/story/00097/

===

Источники, упомянутые в произведении:

Чинумо - Учебный проект, выполненный с целью изучения фреймворка Ларавель (Laravel)

https://ch.inumo.ru/

===

Показать полностью 2
[моё] Программирование Гайд PHP Laravel Framework Веб фреймворки Изучение Тестирование Длиннопост
3
Партнёрский материал Реклама
specials
specials

Только каждый третий пикабушник доходит до конца⁠⁠

А сможете ли вы уложить теплый пол, как супермонтажник?

Проверить

Ремонт Теплый пол Текст
8
ProgTime
ProgTime
4 месяца назад
Лига программистов

Laravel + тестирование: как сэкономить время на валидации запросов⁠⁠

При разработке API на Laravel часто возникает необходимость тестировать валидацию входящих данных. Один из способов — вручную писать тесты с различными вариантами входных параметров. Однако этот процесс может быть трудоемким и рутинным.

Чтобы упростить задачу, я разработал пакет laravel-request-testdata, который автоматически создает тестовые данные на основе правил валидации Laravel Request.

Ссылка на репозиторий - https://github.com/prog-time/laravel-request-testdata

Кому будет полезен этот пакет?

  • Разработчикам, которые хотят автоматизировать тестирование валидации запросов.

  • Тем, кто пишет много API-тестов и хочет минимизировать рутинные задачи.

  • Всем, кто хочет быстро получать корректные тестовые данные без необходимости вручную прописывать каждый вариант входных данных.

Как работает модуль?

Рассмотрим стандартный Laravel Request с простыми правилами:

Laravel + тестирование: как сэкономить время на валидации запросов Тестирование, Программирование, Laravel, PHP, Длиннопост

Теперь используем laravel-request-testdata для получения тестовых данных:

Laravel + тестирование: как сэкономить время на валидации запросов Тестирование, Программирование, Laravel, PHP, Длиннопост

Выходные данные могут выглядеть так:

Laravel + тестирование: как сэкономить время на валидации запросов Тестирование, Программирование, Laravel, PHP, Длиннопост

Проанализировав передаваемый Request класс, модуль возвращает массив с параметрами для запроса. Полученные данные вы можете использовать в авто-тестах вашего приложения.

При таком подходе вам нужно меньше следить за актуальностью тестов при редактирование правил валидации + это избавляет вас от необходимости вручную прописывать тестовые данные.

В процессе планирования разработки модуля я долго изучал вариации правил валидации в Laravel и постарался описать все возможные кейсы правил валидации.

Разные форматы правил валидации

Данный модуль может обрабатывать правила валидации в разном формате.

Правила в формате массива

Вы можете описать правила в виде строки, как это было сделано в предыдущих примерах, а можете передать массив со списком параметром:

Laravel + тестирование: как сэкономить время на валидации запросов Тестирование, Программирование, Laravel, PHP, Длиннопост

Использование сложных условий

По мимо типичных правил валидации, модуль также понимает такие правила, как: in, exists, unique и так далее.

Laravel + тестирование: как сэкономить время на валидации запросов Тестирование, Программирование, Laravel, PHP, Длиннопост

Использование класса Rule для описания правил

В некоторых Request классах правила валидации описываются в формате Rule конструкций. Это может быть Rule::unique для проверки на уникальность или Rule::in для проверки на соответствие конкретным значениям.

Laravel + тестирование: как сэкономить время на валидации запросов Тестирование, Программирование, Laravel, PHP, Длиннопост

Генерация тестовых файлов для проверки валидации

Что касается валидации загружаемых файлов, то тут всё немного сложнее. На данный момент мой модуль может сгенерировать файлы таких типов, как: yml, xml, svg, sql, png, log, json, jpg, html, gif и csv.

Количество доступных форматов будет постепенно увеличиваться, по мере развития данного модуля.

Для данной проблемы есть обходной вариант, который мы рассмотрим ниже.

Указание своих тестовых данных

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

Для этого необходимо в Request классе создать метод requestTestData(). Данный метод должен возвращать параметры запроса с заполненными тестовыми данными.

Laravel + тестирование: как сэкономить время на валидации запросов Тестирование, Программирование, Laravel, PHP, Длиннопост

Через метод requestTestData() вы также можете передавать тестовые файлы в форматах, которые на данный момент не поддерживаются моим модулем.

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

Данный модуль не требует дополнительной настройки, его легко можно установить через composer и использовать в своих тестах.

Я надеюсь вам понравилось моё решение. Я буду очень благодарен если вы поддержите данный модуль звёздочкой на GitHub и напишите свой комментарий под данным постом.

Спасибо за то что дочитали данный пост до конца!

Показать полностью 6
[моё] Тестирование Программирование Laravel PHP Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии