Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.34K photos
20 videos
26 files
4.03K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
💸 Рост или падение? Изменение зарплат в IT за 2023 год

Чтобы разобраться в этом вопросе, «Библиотека программиста» решила провести опрос среди читателей издания. Мы хотим понять, выросли ли ваши зарплаты в 2023 году и если да, то на сколько процентов. Или может быть наоборот — ваши доходы снизились на фоне кризисных явлений в экономике?

Примите участие в нашем коротком опросе и поделитесь своим мнением! Вместе мы проанализируем текущую ситуацию на рынке труда в IT-сфере и поймем, что ждёт эту отрасль дальше. Ждём ваших ответов!

Опрос займёт у вас примерно 4 минуты.

👉 Ссылка на опрос
Как анализ вашей кодовой базы может сэкономить вам время и деньги

📚Это своего рода руководство по обнаружению и предотвращению горячих точек в кодовой базе проекта. Она основана на концепциях, представленных в книге «Ваш Код как Место Преступления» Адама Торнхилла и содержит практические советы и инструменты для разработчиков.

🎯Что такое горячая точка?
Как в мире преступлений, места, где происходят проблемы в коде, часто следуют определенным паттернам. В коде это могут быть области, требующие особого внимания.

🔍 Как найти горячие точки в проекте?
Используйте инструменты, такие как CodeCity и CodeScene, для визуализации и анализа вашей кодовой базы. Это поможет выделить области с высокой сложностью или частыми изменениями.

🛡️ Превентивные меры
Чтобы избежать проблем, внедрите качественные ревью кода, парное программирование, статический анализ и обмен знаниями в команде. Эти меры помогут создать стабильный и поддерживаемый код.

Помните, что предотвращение проблем лучше, чем их исправление!
👍4
Пользовательские карты Laravel Pulse

Статья о том, как создать пользовательскую карточку в приложении Pulse для отслеживания количества запросов на каждую машину. Используя базовый компонент Livewire Pulse, мы создаем новый компонент, который отображает данные о запросах. Мы также настраиваем запись метрик через глобальный middleware и отображаем результаты в нашей кастомной карточке на дашборде Pulse. Это позволяет нам получить информацию о запросах и отобразить ее в удобном формате на дашборде.
🥰4👏1
Git. Что такое stash и зачем он нужен?

Stash в Git — это механизм, который позволяет временно сохранить изменения в рабочей директории, чтобы потом вернуться к ним позже. Обычно он используется в следующих случаях:

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

Исправление ошибок в коде: Если вы обнаруживаете ошибку, но хотите сначала завершить текущую задачу, прежде чем работать над исправлением.

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

Чистка рабочей директории: Если вы хотите временно убрать изменения из рабочей директории, чтобы они не мешали выполнению других задач.

Для использования stash в Git можно воспользоваться командой git stash. Эта команда сохраняет текущие изменения в стеке stash. Позже, когда вам потребуется, вы можете применить эти изменения с помощью команды git stash apply или git stash pop. git stash apply применяет изменения, не удаляя их из stash, в то время как git stash pop применяет изменения и сразу удаляет их из stash.

#вопросы_с_собеседований
6
ИИ для PHP: как автоматизировать модульное тестирование с помощью AI Assistant?

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

Статья приводит пример использования AI Assistant для создания модульных тестов в PHP проекте, демонстрируя, как инструмент генерирует черновой вариант теста, который можно дополнить и настроить по своему усмотрению. Также обсуждаются некоторые ограничения инструмента и перспективы его дальнейшего развития.
8🥱8👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤔 Остаться или уйти? Оптимальный срок работы на одном месте

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

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

Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?

👉 Расскажите о своём опыте в нашем новом опросе 👈
1
Фишки, которые способствуют развитию PHP

Здесь обсуждается процесс определения наиболее востребованных и ожидаемых возможностей в PHP, которые стимулируют проекты переходить на более современные версии языка. Для этого проводится аудит и линтинг 51 современного проекта на PHP 8.0 и 7.4. Затем анализируются ошибки синтаксиса, возникающие при использовании новых фишек на старых версиях PHP.

Общая совместимость с PHP 7.4 и 8.0 также была оценена. Оказалось, что около 35% проектов поддерживают совместимость с PHP 7.4, а примерно 40% — с PHP 8.0. Остальные проекты имеют определенные проблемы с совместимостью, что может занимать до 14% кодовой базы.

Наиболее часто используемые возможности в PHP 8.0 включают enum (45%), readonly свойства (35%), callable (22%), intersectional type (22%) и другие.

В PHP 7.4 самыми популярными оказались promoted properties (66%), named parameters (42%), throw as expression (27%) и mixed type (24%).

Исследование позволяет выявить, какие функции в PHP являются наиболее важными и ожидаемыми для разработчиков, и какие из них могут стимулировать переход на более современные версии языка.
👍92🥱1
#дайджест #phpdevjob

Вакансии PHP разработчиков уровня Junior

▪️PHP-программист
Москва. РусВент — производственная компания
Подробнее

▪️PHP-программист
Москва. Флюид-Лайн — поставки промышленного оборудования
Подробнее

Вакансии PHP разработчиков уровня Middle

▪️Web - разработчик
Москва. TBG Computers — крупнейший ритейлер по продаже ноутбуков
Подробнее

▪️Разработчик PHP
Москва. Восток.Софт — разработка ПО
Подробнее

Вакансии PHP разработчиков уровня Senior

▪️Senior PHP Developer
Москва. Курьерист — курьерская служба
Подробнее

▪️PHP developer
Санкт-Петербург. ОРЦ — международная компания-разработчик нестандартных платёжных решений
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
7🤔4
Моя слабая сторона это...
🎉4
Убедитесь, что режим отладки Laravel отключен в рабочей среде.

Статья обсуждает важность безопасности при разработке приложений на Laravel и как можно использовать инструменты, такие как пакет spatie/laravel-health и сервис Oh Dear, чтобы обеспечить безопасность приложения. Особое внимание уделяется угрозе, связанной с включением режима отладки (APP_DEBUG) в Laravel, что может привести к раскрытию конфиденциальной информации и отключению некоторых функций безопасности.

Предложены следующие шаги для обеспечения безопасности:

Установка Laravel Health в приложение Laravel: Пакет spatie/laravel-health позволяет отслеживать состояние здоровья вашего приложения, включая режим отладки.

Добавление проверки состояния здоровья в приложение: Это позволяет Oh Dear отправлять уведомления в случае изменения значения APP_DEBUG.

Создание конечной точки для проверки состояния здоровья в вашем приложении: Это необходимо для Oh Dear, чтобы проверить состояние вашего приложения.

Конфигурирование проверки состояния здоровья в Oh Dear: Настройка URL-адреса и секретного ключа для взаимодействия с вашим приложением.

Завершение напоминает о том, что Oh Dear также предлагает проверку запланированных задач и что использование таких инструментов помогает обнаруживать различные проблемы в работе приложения, а не только включение режима отладки.
4🥱4
Что вам известно о шаблонах, которые применяются в ORM?

В контексте Object-Relational Mapping (ORM), шаблоны (или паттерны) играют важную роль в проектировании и организации работы с базой данных. Вот несколько распространенных шаблонов, используемых в ORM:

Шаблон ActiveRecord: Этот шаблон описывает объект, который инкапсулирует как данные, так и поведение для работы с этими данными. Обычно каждая запись в базе данных представляется объектом ActiveRecord. Он обеспечивает прямое соответствие между объектами и записями в базе данных.

Шаблон Repository: Repository предоставляет абстракцию для работы с коллекциями объектов. Он предоставляет методы для поиска, сохранения, удаления и запросов к данным. Репозиторий инкапсулирует логику доступа к данным и предоставляет интерфейс для работы с этими данными.

Шаблон Identity Map: Этот шаблон обеспечивает глобальное отображение идентичности объектов в приложении. Он гарантирует, что каждый объект в приложении имеет только один экземпляр в памяти, даже если он загружен из базы данных несколько раз. Это помогает избежать проблем с непоследовательностью данных и улучшает производительность.

Шаблон Unit of Work: Этот шаблон отслеживает изменения, сделанные с объектами в рамках одной транзакции базы данных. Он обеспечивает согласованность данных и управляет коммитом или откатом изменений. Шаблон Unit of Work также может использоваться для оптимизации работы с базой данных, пакетного сохранения изменений и управления транзакциями.

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

#вопросы_с_собеседований
21👍5
Асинхронный конечный автомат с Symfony Workflows

Статья описывает применение Symfony Workflow компонента для управления сложной бизнес-логикой, используя концепцию конечного автомата (finite-state machine). Рассматривается использование компонента на примере рабочего процесса создания и обработки заказа, который включает этапы создания заказа, отправки его в службу заказов, отправки на электронную почту пользователю и отметки заказа как «отправленного» в базе данных.

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

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

Также здесь рассматривается сценарий сбоя в работе, описывая методы обработки ошибок и возможности повторного запуска процесса после временных сбоев.
10🔥3🤔2
Механизмы безопасности в Laravel

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

Здесь рассматриваются следующие механизмы безопасности:

1️⃣Предотвращение проблемы N+1.
2️⃣Защита от частично гидрированных моделей.
3️⃣Защита от опечаток в атрибутах и переименованных столбцах.
4️⃣Защита от массового присвоения.
5️⃣Строгость модели.
6️⃣Принудительное наложение полиморфного отображения.
7️⃣Мониторинг долгих событий.

Каждый из этих механизмов обсуждается в контексте его конфигурации и советов по тому, как и когда его использовать.
👍94🌚1
💬 Оцените свой профессиональный рост за последний год

❤️ — сильно вырос как специалист
👍 — не заметил сильного роста, всё стабильно
🤔 — есть ощущение, что я даже кое-что стал забывать

#интерактив
76🤔55👍53🔥2
Хранение классов с настраиваемыми параметрами в базе данных

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

Далее предлагается улучшенный подход, основанный на хранении только имени класса и JSON-закодированного массива параметров, а также использовании статического метода создания для инициализации экземпляров классов с правильными параметрами. Для разрешения пространства имен используются перечисления (enums). Данные хранятся в столбце JSON базы данных, и для их извлечения используется метод модели. В конце автор обсуждает возможные альтернативные подходы и признает, что может быть затрачено слишком много времени на решение проблемы, но находит свое решение достаточно удовлетворительным.
👍31🤔1
#дайджест новостей по PHP за неделю:

🔎Вышел PHP 8.2.16 — Это релиз с исправлением ошибок. Всем пользователям PHP 8.2 рекомендуется выполнить обновление до этой версии.

🔎Выпущен PHP 8.3.3 — Аналогично, это баг-фикс, и всем пользователям 8.3 также рекомендуется выполнить обновление

🔎Неделя Symfony № 894 (12–18 февраля 2024 г.)

🔎Новые приложения Laravel 11 включают точку проверки работоспособности — В рамках выпуска Laravel 11 новые приложения включают конечную точку работоспособности/работы. Этот маршрут определяется в новом файле bootstrap/app.php путем передачи параметра Health, который по умолчанию определен в скелете Laravel 11.

🔎Потоковые ответы JSON добавлены в Laravel 10.43 — Команда Laravel выпустила версию 10.43 с поддержкой потоковых ответов JSON, передачей имени класса для регистрации глобальной области Eloquent, новым методом Eloquent InsertOrIgnoreUsing и многим другим.
🔥6🎉2