Библиотека PHP программиста 👨🏼💻👩💻
Открыть в Telegram
Полезные материалы по PHP, Laravel, Symfony, CodeIgniter, CakePHP, Phalcon По всем вопросам @evgenycarter
Больше2 040
Подписчики
+124 часа
-87 дней
-1630 дней
Архив постов
Обработка окон и вкладок браузера в Selenium PHP
Один из распространённых сценариев работы с веб-приложениями заключается в открывании нового окна (или вкладки) браузера после выполнения пользователем определённого действия. Многие веб-разработчики используют HTML-тэг __blank, приказывающий браузеру при нажатии на ссылку открыть новое окно (или вкладку, это зависит от выбранных пользователем настроек). Работа с окнами в Selenium при помощи PHP может использоваться для автоматизации взаимодействия с окнами, вкладками и даже всплывающими окнами браузера.
Всплывающие окна могут иногда раздражать посетителей веб-сайта, однако зачастую у разработчика нет иного выхода, кроме как использовать их. Как Selenium различает окна и вкладки? Как можно использовать автоматизацию для беспроблемного переключения между окнами или вкладками браузера? Как реализовать работу с окнами в Selenium?
В этой статье мы подробно рассмотрим применение Selenium для автоматизации взаимодействия с браузерами, вкладками и всплывающими окнами. Для демонстрации работы с окнами в Selenium PHP мы воспользуемся PHPUnit — фреймворком юнит-тестирования для PHP.
https://habr.com/ru/companies/ruvds/articles/679048/
👉 @php_lib
🔥 Пройди тест по Laravel ! 🔥
➡️ Проверь себя и свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Framework Laravel" от OTUS по специальной цене.
👩💻 Присоединяйся к новому потоку онлайн-курса «Framework Laravel» в OTUS. В программе курса — удобные и мощные наработки огромного Laravel-сообщества, а практика — решение бизнес-задач.
👨💻 За 4 месяца обучения твое портфолио пополнится мини-проектами и выпускной работой.
🎫Курс можно приобрести в рассрочку
👉 ПРОЙТИ ТЕСТ: https://otus.pw/15EZI/
Нативная интеграция. Информация о продукте www.otus.ruАрхитектура на «микросервисах» в монолите: проект из практики
В Skyeng есть команда коммуникаций. Мы предоставляем инструменты для связи оператора с пользователем. Например, ученику плохо слышно преподавателя на уроке и он хочет связаться с поддержкой, чтобы решить проблему — мы помогаем.
На старте было просто: связаться с нами можно было только через почту. Входящим ящиком был IMAP, исходящим — SaaS сервис по отправке почты, забрать письма с которого было то еще приключение. Мы смотрели на заголовки и соединяли письма в цепочки, как в любом почтовике: Gmail, Outlook. В таком виде передавали операторам.
Но оказалось, что с теми метаданными, которые мы предоставляли операторам, им было неудобно работать — много времени отнимал поиск пользователей в базе по адресу почты и теме сообщений. Так появился проект линковка. Мы стали подвязывать к цепочкам писем id наших пользователей. Пришлось придумывать дополнительные поля, как все соединить и куда вместить в базе.
Еще нужно было подвязать id той услуги, которую мы предоставляем пользователю. Например, он занимается у нас английским или математикой. А может у него подписка сразу на несколько предметов, то есть услуг.
Со временем увеличилось и число ящиков, куда мог написать клиент. Появились ящики техподдержки, кризис-менеджеров, сейлзов. Чем дальше, тем оказалось сложнее добавлять новые. Чтобы не прийти к ситуации: «Ребята, сколько времени нужно, чтобы добавить новый ящик? В смысле месяц?» — мы задумались о новой архитектуре.
Все решила новость о том, что к нам также заезжают телефония, WhatsApp и внутренний чат сайта...
https://habr.com/ru/companies/oleg-bunin/articles/656095/
👉 @php_lib
25 августа заканчивается набор на курс Symfony Framework!
Пройди тест, чтобы понять насколько ты готов освоить Symfony.
Что ты сможешь получить на курсе Symfony Framework от Отус?
✅ Через четыре месяца получишь навыки для работы над высокооплачиваемыми enterprise проектами на PHP;
✅ Научишься писать clean code на PHP с использованием Symfony.
Что отличает курс Отуса от других?
▫️ Живая обратная связь от преподавателей-практиков с опытом работы в крупных компаниях;
▫️ Программа с самым детальным разбором Symfony и его экосистемы для разработки современных проектов на рынке.
➡️ Пройти тест прямо сейчас: https://otus.pw/a2DS/
Нативная интеграция. Информация о продукте www.otus.ru
Показываем статистику в реальном времени с Laravel Volt
Для реализации этой возможности нам необходим метод отслеживания активных пользователей. Одним из вариантов является запись активных пользователей в таблицу базы данных. Каждая запись будет содержать идентификатор пользователя и временную метку, когда он был активен. Затем можно проверить активность за последние 5 минут или за любой другой желаемый промежуток времени. Другой способ заключается в наличии столбца "last_login_at" в таблице пользователей. Третий вариант - использование сервера web-sockets для получения подсчета активных пользователей в реальном времени.
В данной статье я остановлюсь на использовании Redis. Я люблю Redis за то, что это простая база данных in-memory, но при этом очень мощная. Я уже использовал этот метод, и он способен масштабироваться до тысяч и даже миллионов пользователей.
https://ahmedash.dev/blog/laravel-core-bits/volt-live-users-stats/
👉 @php_lib
🦾 Как PHP-разработчику быстрее и легче закрывать задачи?
🔥🔝 Освоить фреймворк Laravel – стать ещё более востребованным и эффективным специалистом!
❌❌Мы в OTUS тщательно следим за трендами индустрии и просто не могли не создать курс «Framework Laravel».
После него вы сможете:
- использовать в проектах Laravel;
- обеспечивать безопасность приложения;
- тестировать и разворачивать полученный код;
- выполнять анализ работы логики и делать выводы;
- использовать встроенные инструменты фреймворка.
🟠Все эти знания позволят вам оптимизировать свою работу и претендовать на значительный карьерный рост!
➡️ Подробности, рассрочка и вступительное тестирование – здесь: https://otus.pw/pZvZ/
Нативная интеграция. Информация о продукте www.otus.ruComposer, Создание своего пакета
PHP, Composer, Советы по созданию пакета, composer.json
PHP, composer, публикация пакета на packagist и github
Code style вашего проекта
Интеграция travis-ci в ваш php проект
PHPSTAN. Статический анализ PHP проекта
PHPINSIGHTS, Статический анализ в вашего PHP проекта
PSALM, статический анализ PHP проекта
PHPMD, статический анализ php mess detector
источник
👉 @php_lib
PHP: The Ultimate Guide
Автор: Sufyan bin Uzayr (2022)
Эта книга предлагает:
- Пошаговый подход к решению проблем и развитию навыков
- Быстрое изучение основных концепций языка в форме "Краш-курса".
- Продвинутые, практические основные концепции с акцентом на реальных проблемах
- Парадигмы кодирования промышленного уровня и практико-ориентированный объяснительный подход
- Особое внимание уделяется написанию чистого и оптимизированного кода, а дополнительные главы посвящены методологии кодирования
👉 @php_lib
PHP, PDO SQL Injection
SQL Injection минимум который должен знать каждый разработчик код которого работает в production
00:00 Вступление и оглавление
01:06 Определения (теория)
01:45 Чем опасны SQL Injection
03:34 Практический стенд
06:12 Обхода аутедентификации
09:23 Модификации базы данных
11:47 Защита с помощью placeholder
15:49 Защита там где placeholder не применимы
18:52 Поддержи канал
источник
👉 @php_lib
Introduction into PHP community with Graph databases
Это видео должно стать введением в использование графовых баз данных для всех представителей php-сообщества. Я объясняю основные причины, по которым стоит начать использовать графовые базы данных, основываясь на своем опыте веб-разработки.
источник
👉 @php_lib
Backend
Backend: Введение в PHP, часть 1
Backend: Введение в PHP, часть 2
Backend: Введение в PHP, часть 3
Backend: Введение в PHP, часть 4 - авторизация по токену
Backend: Введение в PHP, часть 5 - HTTP status codes
Backend: Введение в PHP, часть 6 - обработка данных и защита от ошибок
Backend: Введение в PHP, часть 7 - обработка файлов на стороне PHP (Формы и base64)
Продвинутый PHP: Основы ООП
Продвинутый PHP: Основы Laravel
Продвинутый PHP: Основы Laravel - Router&Middleware
Продвинутый PHP: Основы Laravel - Eloquent ORM, часть 1
Продвинутый PHP: Основы Laravel - Eloquent ORM, часть 2 - отношения
Продвинутый PHP: Основы Laravel - JWT-авторизация
Продвинутый PHP: Основы Laravel - монолитные приложения MVC
Продвинутый PHP: Основы Laravel - авторизация в монолитных приложениях MVC
Все видео доступны на youtube
👉 @php_lib
Релиз Laravel Prompts
Laravel Prompts - это PHP-пакет для добавления красивых и удобных форм в приложения командной строки с функциями, подобными браузерным, включая текст-заполнитель и валидацию.
https://laravel.com/docs/10.x/prompts
👉 @php_lib
Список альтернативных интерпретаторов и компиляторов PHP и JS
https://github.com/gakowalski/alternative-interpreters
👉 @php_lib
Полный курс Laravel Swagger. REST API Laravel
00:00:00 Введение
00:04:25 Делаем заготовку
00:16:20 Установка Swagger
00:22:18 Общие аннотации и настройки Swagger
00:28:01 CRUD со Swagger
01:03:03 Установка JWT Auth
01:13:08 Авторизация и защищенные роуты в Swagger
01:20:20 Бонус. Нестандартные тело запроса и ответа
источник
👉 @php_lib
❗️Отус приглашает 31 июля в 19:00 мск на бесплатный вебинар «Разработка монолитного приложения со Spring» онлайн-курса «Kotlin Backend Developer. Professional»!
— На занятии мы познакомимся со фреймворком Spring и его принципом работы.
— Рассмотрим особенности разработки Spring приложения на языке Kotlin.
— Разработаем монолитное приложение и напишем пару интеграционных тестов.
— Упакуем наше приложение в Docker, как готовое решение.
✅В результате вебинара вы:
— узнаем преимущества и недостатки монолитной архитектуры, фреймворка Spring, особенностей разработки со Spring в Kotlin;
— попрактикуемся в разработке работающего монолитного приложения и разместим его в Docker-контейнере.
➡️ Регистрация на вебинар: https://otus.pw/0CbA/
Нативная интеграция. Информация о продукте www.otus.ru
Learn PHP in One Day and Learn It Well
Автор: Jamie Chan (2020)
Данный учебник охватывает все необходимые темы для изучения программирования на PHP. Обучение специально организовано пошагово, чтобы вы могли легко освоить PHP, даже если имеете мало опыта в программировании. В конце книги предлагается выполнить программный проект - мини-блог, созданный с помощью PHP и MySQL. Обратите внимание, что эта книга требует базовых знаний HTML и SQL.
👉 @php_lib
PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами
Известно, что PHP активно использует механизм copy-on-write. Это означает, что при попытке внутри функции что-то записать в переданные ей параметры, вначале будет сделана копия этой переменной, а уж затем в неё что-то запишется. Такая же ситуация наблюдается с итерацией массива с помощью foreach. Отсюда следует, что вам потребуется увеличить количество памяти для создания копии переменной и времени (ресурсов ЦП), чтобы всё это проделать. Т.е. возникнет пауза, прежде чем PHP перейдёт к следующей строчке вашей программы.
https://habr.com/ru/articles/746868/
👉 @php_lib
⚡️Пора принять вызов!
Научитесь решать сложные задачи PHP-разработки и совершите level up!
🚀 31 июля — старт онлайн-курса «PHP Developer. Professional» в OTUS.
За 5 месяцев интенсивного обучения вы научитесь создавать мощные и высокопроизводительные веб-приложения, работать со сложной инфраструктурой, оптимизировать хранилища данных и писать надежные тесты для обеспечения безупречной работоспособности вашего кода.
🏆 Все эти новые знания вы закрепите в вашей выпускной работе — коммерческом кейсе.
🟠Курс можно купить в рассрочку.
➡️ Оставляйте заявку и присоединяйтесь к группе! Количество мест ограничено: https://otus.pw/4o0xJ/
Успейте присоединится к июльской группе!
Нативная интеграция. Информация о продукте www.otus.ruSla-timer
PHP-пакет для расчета и отслеживания сроков выполнения соглашения об уровне обслуживания
Пример использования
require 'vendor/autoload.php';
use Sifex\SlaTimer\SLA;
use Sifex\SlaTimer\SLABreach;
use Sifex\SlaTimer\SLASchedule;
/**
* Create a new SLA between 9am and 5:30pm weekdays
*/
$sla = SLA::fromSchedule(
SLASchedule::create()->from('09:00:00')->to('17:30:00')
->onWeekdays()
);
https://github.com/sifex/sla-timer
👉 @php_lib