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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🛡️ 8 способов защиты от манипуляций на работе

Столкнулись с эмоциональным давлением на работе? Рассказываем, как действуют манипуляторы, и как обезопасить себя.

🔗 Читать статью
🔗 Зеркало
👍3🥱31😁1
#хочу_спросить

Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
2👾2👍1
Библиотеки и инструменты PHP

Этот впечатляющий список библиотек, инструментов и проверок для PHP предлагает разнообразные решения для различных аспектов разработки, начиная от работы с деньгами и временем, и заканчивая инструментами для тестирования, статического анализа и обеспечения безопасности. Независимо от того, создаете ли вы масштабируемый микросервис, ищете уязвимости в коде или оптимизируете работу CI-пайплайна, этот список имеет все необходимое.
👍81
Что такое денормализация? Для чего она нужна?

Денормализация – это процесс организации реляционной базы данных, при котором избегается нормализация для повышения эффективности чтения данных.

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

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

#вопросы_с_собеседований
👍82
Люди, которые говорят: «PHP небезопасен», - неправы

Несмотря на распространенность PHP, по-прежнему существует множество недопониманий и мифов о безопасности этого языка.

В этой статье разбираются наиболее распространенные заблуждения и убедительные аргументы в пользу того, что PHP остается надежным и безопасным выбором для современных веб-приложений.
👍10👾21😁1
Какой длины должны быть классы — когда «чистый» код на самом деле не так уж и хорош

🔎
Это история о разработчике, который искал новую работу и наткнулся на вакансию компании, которая обещала ценить "чистый код", но с ограничением в 100 строк на класс.

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

Жесткие ограничения могут привести к ухудшению архитектуры программы и отвлечению разработчиков от создания качественных компонентов в пользу удовлетворения формальных требований.
👍6
Какие фронтенд технологии вам нравятся/предпочитаете использовать как PHP-разработчик? (JS-фреймворки, библиотеки и т.д.)
3
Ответьте на 3 вопроса, чтобы получить демо-доступ к курсу «Алгоритмы и структуры данных»

⚡️Получить демо, ответив на 3 вопроса – https://proglib.io/w/979a2896

В бесплатной части вас ждут:

1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов

2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ

3. Практические задания после лекций

4. Ссылки на дополнительные материалы для самостоятельного изучения

Переходите и начинайте учиться уже сегодня!
🥱21👍1🌚1
📝 В статье обсуждаются различные подходы к моделированию операторов MongoDB в PHP для создания агрегационных конвейеров. Цель - найти лучший опыт разработчика при работе с зарезервированными ключевыми словами и сохранении читаемости кода. Рассматриваются несколько методов, включая функции с пространством имен, добавление суффиксов к именам функций, использование статических методов классов и хранение замыканий в переменных.

🌐 Первый метод: Функции в пространстве имен

Статья начинается с функций в пространстве имен, например MongoDB\Operator\eq для оператора $eq, но сталкивается с проблемами зарезервированных ключевых слов в PHP. Чтобы избежать конфликтов, рассматриваются варианты добавления префиксов, суффиксов или использования смайликов в именах функций.

🔠 Второй метод: Статические методы классов

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

🌀 Третий метод: Замыкания в переменных

В заключение идут замыкания, сохраненные в переменных, что позволяет использовать синтаксис, очень похожий на MongoDB, и при этом избегать конфликтов имен.
👍41
💻 20 лучших ноутбуков для программиста в 2023 году

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

На карточках перечислили самые производительные. Но для кодинга есть и другие важные параметры — остальные подборки смотрите в нашей статье.
😁13🥱4👍2
Еще один #дайджест новостей по PHP за неделю:

🔎PhpStorm 2023.3 EAP #4 — В этой сборке значительно переработали настройки пути включения PHP и реализовали возможность исключения каталогов и файлов из индексированных библиотек.

🔎Плагин Pest теперь поддерживается JetBrains. — Плагин Pest будет поставляться в комплекте с PhpStorm, начиная с версии 2023.3. Он будет разработан JetBrains, но исходный код останется открытым.

🔎Появились обучающие скринкасты Livewire. — Laravel Livewire недавно представил новую серию скринкастов, призванных сделать ваше изучение Livewire проще, чем когда-либо.

🔎Выпущена Symfony 7.0.0-BETA1 — Только что выпущена Symfony 7.0.0-BETA1. Здесь список наиболее важных изменений с версии 6.3.

🔎Неделя Symfony #877 (16–22 октября 2023 г.) — На этой неделе Symfony выпустила первую бета-версию Symfony 6.4 и первую бета-версию Symfony 7.0, чтобы вы могли протестировать их в своих собственных приложениях перед их окончательными выпусками.
👍4
PHP-соединения и транзакции

🟠Первая часть представляет подход к открытию соединений с базой данных через создание класса, который хранит конфигурационные данные в отдельном ini-файле. Идея заключается в том, что вместо того, чтобы включать чувствительные данные (например, хост, пользователь, пароль) напрямую в исходный код при подключении к базе данных, эти данные хранятся в отдельном конфигурационном файле (config.ini).

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

Она также рассматривает состояния транзакций (активное, частично подтвержденное, подтвержденное, неудавшееся и завершенное состояние). Важность аббревиатуры ACID (Atomicity, Consistency, Isolation, Durability) также подчеркивается.
🥱4👍2
Как настроить действительно быструю локальную среду разработки Laravel для Windows с красивыми URL-адресами (без Docker)

Эта статья представляет собой руководство по настройке быстрого и гибкого окружения разработки Laravel на Windows с использованием Windows Subsystem for Linux (WSL) и нативных установок PHP, MySQL и Nginx.

В статье представлены следующие шаги:

1️⃣Установка WSL на Windows 10 или Windows 11.
2️⃣Установка PHP в WSL с помощью apt.
3️⃣Установка Composer для управления зависимостями в Laravel.
4️⃣Установка MySQL в WSL.
5️⃣Создание нового проекта Laravel и настройка базы данных.
6️⃣Установка и настройка Nginx в WSL для обработки запросов к Laravel приложению.
7️⃣Применение настроек безопасности и оптимизация производительности, включая изменение пользователя и группы для Nginx и PHP-FPM.

Если верить автору, использование этой конфигурации позволило увеличить производительность на сложных операциях с 13 секунд до 1.5 секунды, что составляет увеличение в 800%. Это решение позволяет достичь быстрых времен ответа и более гибких настроек для разработки Laravel приложений под Windows.
https://getcomposer.org/installer
🥱16👍6
Одноразовые тесты

Проблема: Дублирование Middleware


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

Решение: Автоматизация сравнения Middleware

🚀 Использование php artisan route:list --json -v для получения данных о маршрутах и их middleware в формате JSON.
🔍 Сравнение данных до и после изменений с использованием утилиты для сравнения JSON.
🧐 Выявление различий в middleware и обнаружение несоответствий.

Результат: Безопасные Изменения и Уверенность

🎉 548 удалений и 359 добавлений в 111 файлах без ручного тестирования.
🛠️ Избежание ошибок благодаря точному выявлению изменений в middleware.
💪 Возможность внести изменения в проект с уверенностью, что автоматические тесты обнаружат проблемы.
8🤔4👍3