Новая мажорная версия Flysystem

Для тех, кто пропустил: 24 ноября вышла новая мажорная версия Flysystem. Новая версия позволяет порвать с прошлым ради будущего, что я и сделал. Для создания второй версии Flysystem я начал с чистого листа. Многие основные элементы дизайна библиотеки были почищены и улучшены. API уменьшен, сохраняя при этом свой прежний функционал. Обработка …

Конечные автоматы для Eloquent

Laravel Eloquent State Machines – это пакет Андре Сантибаньеса(Andrés Santibáñez), который упрощает переход состояний Eloquent-моделей: В эти выходные я начал работать над новым пакетом для @laravelphp, реализующий управоение конечными автоматами для моделей Eloquent. Было прикольно и я многому научился в процессе. Я только что тегнул версию v1.0.0. Наслаждайтесь! Отзывы приветствуются! – …

Создаём REST API с помощью Laravel Orion

Вы заметили, что при создании API вы часто продолжаете писать один и тот же код снова и снова? Вы создаете контроллер для [назовите свою сущность здесь] с методами для составления списка, создания, отображения, обновления и удаления этой [сущности]. Затем вы создаете другой контроллер, и это происходит снова и снова. Затем …

При разработке локально используйте queue:listen вместо queue:work

Laravel имеет мощную систему очередей, и когда вы используете очереди, вам нужно запускать обработчики. Как правило, в рабочей среде вы используете команду queue:work для их запуска, но это долгоживущие процессы, которые хранят загруженное состояние приложения в памяти. Таким образом, это означает, что после того, как вы внесете какие-либо изменения в …

Сравнение производительности Xdebug 2 и Xdebug 3

Xdebug – это расширение PHP, которое помогает в отладке, трассировке, профилировании и предоставляет инструменты для покрытия кода, а также совершенствует PHP с помощью более информативных функций отладки. Xdebug – это де-факто PHP-расширение для пошаговой отладки PHP и продуманный инструмент для разработки на PHP. Разработанная Derick Rethans (Дерик Ритенс), Xdebug 2 – это …

Жадная загрузка в моделях маршрутов

TLDR: перезапишите метод resolveRouteBinding в вашей Eloquent-модели для жадной загрузки (eager loading) отношений, которые понадобится использовать. from Php Profi New Posts https://ift.tt/36S65a3 via IFTTT

Symfony Panther: PHP-библиотека для тестирования из браузера и парсинга веб-страниц

С самой первой версии Symfony 2, фреймворк предоставлял набор удобных инструментов для создания функциональных тестов. Они используют компоненты BrowserKit и DomCrawler для имитации веб-браузера, которые имеют дружественный API для разработчиков. from Php Profi New Posts https://ift.tt/36uTZ6z via IFTTT

Оптимизация производительности PHP с помощью полных вызовов функций

Недавно в Твиттере быстро разгорелось небольшое обсуждение. Очевидно, PHP выполняет вызовы функций по-разному в зависимости от использования namespace (пространства имен). При вызове функций в контексте пространства имен в PHP запускаются дополнительные действия, которые приводят к более медленному исполнению. В этой статье я расскажу, что происходит, и как можно ускорить работу приложения. from …

Composer 2.0 уже доступен!

1/ Что нового? Изменений и улучшений много: посмотрите полный список изменений, если вам интересно прочитать все. В этой статье я выделю несколько ключевых моментов. Улучшения производительности Мы пересмотрели почти все от протокола, используемого между Composer и packagist.org, до разрешения зависимостей, включая параллельную загрузку файлов с использованием curl и оптимизацию оценки ограничений. Это приводит к значительному …

Оптимизация производительности PHP с помощью полных вызовов функций

Недавно в Твиттере быстро разгорелось небольшое обсуждение. Очевидно, PHP выполняет вызовы функций по-разному в зависимости от использования namespace (пространства имен). При вызове функций в контексте пространства имен в PHP запускаются дополнительные действия, которые приводят к более медленному исполнению. В этой статье я расскажу, что происходит, и как можно ускорить работу приложения. from …

Composer 2.0 уже доступен!

1/ Что нового? Изменений и улучшений много: посмотрите полный список изменений, если вам интересно прочитать все. В этой статье я выделю несколько ключевых моментов. Улучшения производительности Мы пересмотрели почти все от протокола, используемого между Composer и packagist.org, до разрешения зависимостей, включая параллельную загрузку файлов с использованием curl и оптимизацию оценки ограничений. Это приводит к значительному …

12 лучших инструментов для ревью кода для разработчиков (2020)

Ревью кода – это часть разработки программного обеспечения, которая подразумевает тестирование исходного кода для идентификации багов на ранней стадии. Процесс код-ревью обычно проводится перед слиянием с кодовой базой. Эффективное ревью кода предотвращает попадание багов и ошибок в ваш проект путем улучшения качества кода на ранней стадии процесса разработки софта. В этой статье мы …

Тестируем маршрутизатор Symfony 4.1

Насколько быстрее новый маршрутизатор Symfony в реальных приложениях? Мы провели несколько тестов, чтобы выяснить это. Улучшенный маршрутизатор Несколько дней назад мы получили фантастические новости, что маршрутизатор в Symfony был значительно улучшен. Конечно, мы хотели увидеть как изменения влияют на наше приложение, поэтому мы решили протестировать его на наших собственных роутах. …

Быстрый Web-парсинг с помощью ReactPHP

Практически каждый PHP-разработчик когда-нибудь парсил данные из интернета. Часто нам нужны какие-то данные, которые доступны только на каком-то сайте, и мы хотим вытащить эти данные и сохранить их где-нибудь. Это похоже на то, что мы открываем браузер, ходим по ссылкам и копируем данные, которые нам нужны. Но то же самое …

Асинхронный PHP: Зачем?

Асинхронное программирование сегодня достаточно востребованно. Особенно в веб-разработке, где скорость реагирования приложения играет огромную роль. Никто не хочет тратить свое время и ожидать подвисшее приложение, пока вы выполняете несколько запросов к базе, отправляете электронное письмо или запускаете другие потенциально длительные задачи. Пользователи хотят получать ответы на свои действия, и они …

Mockery: частичные двойники (mock’и)

Работая со старым кодом, я часто сталкиваюсь с таким классом, который расширяет большой базовый абстрактный класс, а методы этого класса вызывают методы того большого базового абстрактного класса, который делает очень много вещей. Я сам писал такие классы и методы в прошлом. Век живи, век учись. Одна из самых больших проблем …

Test Coverage: Интеграция CodeClimate и Travis CI

Когда вы разрабатываете проект с открытым исходным кодом, считается хорошей практикой иметь высокое покрытие тестами, чтобы сообщество могло чувствовать себя в безопасности, используя ваш код в своих проектах. Существуют онлайн-сервисы, которые могут анализировать качество вашего кода и предоставляют отчёты и рекомендации. Одним из самых популярных является Code Climate. Этот сервис …

GroupBy по нескольким значениям в Laravel

В Laravel начиная с версии 5.5.29 можно группировать коллекции по нескольким критериям. Давайте посмотрим, что это означает и как это работает. Подготовка Итак, эта статья о новой функциональности в фреймворке Laravel. Но прежде чем мы посмотрим как она работет сейчас, давайте посмотрим как она работала раньше. Метод groupBy является методом …

Качество кода: ‘взбиваемость’ (churn) и сложность (complexity). Как отслеживать легаси.

Cложность кода (code complexity) Сложность часто измеряется путем вычисления цикломатической сложности на единицу кода. Показатель можно рассчитать, принимая все ветви кода во внимание. Сложность кода является показателем для нескольких вещей: На сколько трудно понять кусок кода. Большое значение показателя говорит о многочисленном ветвлении в коде. При чтении кода, программист должен …

Back to Top