Библиотека пхпшника | 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
Какие способы оптимизации производительности баз данных знаете?

Существует несколько основных способов оптимизации баз данных:

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

Оптимизация запросов: Напишите запросы таким образом, чтобы они были эффективными. Используйте инструкции JOIN, WHERE и GROUP BY там, где это необходимо, чтобы снизить объем возвращаемых данных.

Кэширование: Используйте кэширование результатов запросов там, где это возможно. Например, результаты запросов к базе данных могут быть кэшированы в Redis или Memcached.

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

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

Использование транзакций: Используйте транзакции для группировки нескольких операций в одну единицу работы. Это помогает уменьшить накладные расходы на управление транзакциями и обеспечить целостность данных.

Масштабирование базы данных: При необходимости масштабируйте базу данных горизонтально или вертикально. Горизонтальное масштабирование (шардинг) позволяет распределить данные по нескольким серверам, а вертикальное масштабирование (разделение на таблицы) позволяет распределить данные по разным таблицам или базам данных.

Мониторинг и профилирование: Регулярно отслеживайте производительность запросов и операций базы данных с помощью инструментов мониторинга и профилирования. Это позволяет идентифицировать узкие места и проводить дальнейшую оптимизацию.

#вопросы_с_собеседований
👍14🌚51
Пиши код в Laravel как senior

🚀Здесь рассматриваются ключевые практики и принципы разработки во фреймворке Laravel. Начинается всё с обзора основ Laravel, 🏛️ включая его архитектуру MVC, ORM Eloquent, шаблонизатор Blade, а также компоненты, такие как миграции, сидеры и промежуточные слои.🛠️

Далее предоставляются примеры «неправильного» и «правильного» кода, демонстрируя, как следовать стандартам и соглашениям Laravel для написания чистого, эффективного и масштабируемого кода.

Также обсуждаются важность принципов DRY и использования сервисов для обработки бизнес-логики, а также предлагает советы по оптимизации и лучшим практикам, таким как использование команд Artisan, миграции базы данных, промежуточные слои и автоматизированное тестирование.
🥱19👍2👾2🌚1
Создание поддерживаемых PHP-приложений: анализ данных и анализ бизнес-процессов

Здесь обсуждается различие между традиционным подходом CRUD (Create, Read, Update, Delete) к разработке программного обеспечения и более ориентированным на бизнес процесс подходом. В традиционном подходе упор делается на технические аспекты, такие как манипуляции с данными в базе данных, в то время как в бизнес-ориентированном подходе акцент делается на описании поведения системы и ее бизнес-процессов.

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

Далее предлагается использовать более ориентированный на бизнес процесс подход, который позволяет лучше описать и понять бизнес-логику, именуя классы, методы и свойства так, чтобы они отражали бизнес-термины, а не технические детали. Это позволяет разработчикам лучше понимать и описывать бизнес-процессы, а также создавать более читаемый и понятный код.
👍21
🪨💧Hard skills и soft skills: что это и как они проверяются на техническом собеседовании

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

🔗 Читать статью
👏3🎉2🥱1🌚1
Принцип разделения интерфейса (ISP) с использованием PHP: принцип SOLID

Здесь рассматривается Принцип разделения интерфейса (ISP) в программировании. ISP подобен организации библиотеки, где каждый класс должен реализовывать только те методы, которые ему нужны, а не те, которые ему не нужны, подобно тому, как человек не должен брать книги из каждого раздела библиотеки. Нарушение этого принципа может привести к избыточности интерфейсов и затруднить поддержку и расширение кода.

Далее представлен пример кода, нарушающего принцип ISP, и показывает, как его можно исправить, разделив большой интерфейс на более мелкие, специализированные. Разделение интерфейса на более мелкие кусочки помогает классам быть более фокусированными на своих конкретных обязанностях, что повышает читаемость и управляемость кода, а также облегчает расширение и модификацию.
🎉41👍1
Логирование с помощью Monolog

В этом видео будет рассмотрен пакет Monolog для логирования PHP-приложения.

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

Эта библиотека реализует интерфейс PSR-3, который вы можете использовать в своих собственных библиотеках, чтобы обеспечить максимальную совместимость.
🥰3👍21
💬 Вы пользуетесь ИИ-инструментами для автодополнения кода (типа GitHub Copilot)?

👍 — постоянно пользуюсь
🤔 — не пробовал
🥱 — пробовал, мне не понравилось

#интерактив
🤔94👍91🥱36👾3
Пять инструментов, которые сделают вашу работу в командной строке более продуктивной

Здесь представлены пять инструментов командной строки, которые способны сделать работу более эффективной:

1️⃣Fast Node Manager (FNM): Управление версиями Node.js для эффективного переключения между проектами без необходимости помнить используемую версию Node.js. FNM автоматически устанавливает версию Node.js, указанную в файле .nvmrc, и позволяет установить новые версии Node.js из командной строки.

2️⃣ZSH-Autosuggestions: Предложения команд на основе истории ввода, что ускоряет выполнение команд без необходимости полного набора. Установка производится через zsh-autosuggestions и может быть настроена в файле ~/.zshrc.

3️⃣Zoxide: Интеллектуальная команда cd, запоминающая часто посещаемые директории, позволяющая быстро переходить к ним с помощью небольшого количества нажатий клавиш. Установка зависит от операционной системы и производится в файле ~/.zshrc.

4️⃣fzf (Fuzzy Finder): Универсальный инструмент для размытого поиска по выводу других команд, таких как zoxide или vim. Поддерживает быстрый доступ к истории команд, поиск и убийство процессов и другие функции.

5️⃣fzf-tab: Заменяет стандартное меню выбора завершения команды в zsh на fzf, что упрощает навигацию по файловой системе и другие задачи. Установка производится как плагин для Oh My Zsh или напрямую.

Каждый инструмент представлен с кратким описанием его возможностей, установки и настройки.
👍3🥰1
#дайджест новостей по PHP за неделю:

🔎Выпущена версия CakePHP 4.5.4 — Улучшения: Исправлен Hash::insert() и пути, содержащие {s} и условия, а также данные, в которых все значения после {s} не являются массивами.

🔎Вышел Symfony 7.0.5 — Вот список наиболее важных изменений с версии 7.0.4.

🔎Неделя Symfony № 896 (26 февраля — 3 марта 2024 г.)
Никогда не используйте функцию «empty»

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

Рекомендуется использовать другие методы проверки, такие как count($var) === 0 или sizeof($var) === 0.
Вместо использования empty, рекомендуется использовать конкретные условия для проверки различных значений.

Если нужно проверить несколько переменных одновременно, можно объединить условия или создать закрытый метод с явным именем.
🤔14👍6🥱6😁1
«Как мы приготовили массу блюд c помощью одного ингредиента: GraphQL»

Эта статья о базовой структуре, производительности, безопасности и гибкости GraphQL и будет интересна архитекторам, интеграторам, аналитикам и разработчикам, которые не ограничиваются рассмотрением информационных систем только с точки зрения «кода», а учитывают полный жизненный цикл системы, включая поддержку, развитие, систему управления знаниями и многое другое.
1
Основные плагины для пользователей PHPStorm

Это обзор нескольких полезных плагинов для PhpStorm:

1️⃣Nord Theme: Этот плагин предлагает стильную тему оформления для PhpStorm, созданную на основе палитры Nord, которая представляет собой арктические синие оттенки, обеспечивающие чистый и элегантный внешний вид редактора.

2️⃣Laravel Idea: Этот премиум-плагин предоставляет ряд продуктивных функций для разработки Laravel-приложений в PhpStorm, включая автозаполнение маршрутов, поддержку моделей Eloquent, подсказки для правил валидации и генерацию кода.

3️⃣.env Files Support: Плагин обеспечивает поддержку файлов .env, позволяя автозаполнять переменные окружения и легко перемещаться между их использованием в коде и объявлением в файле .env.

4️⃣EditorConfig: Этот плагин помогает обеспечить согласованный стиль кода для разработчиков, работающих над одним проектом, поддерживая конфигурацию кодирования через файл .editorconfig.

5️⃣Collector — A Collection Plugin: Плагин добавляет поддержку коллекций Laravel и предоставляет ряд удобных рефакторингов для улучшения работы с ними.

6️⃣Codeium: AI Autocomplete and Chat: Этот бесплатный плагин предлагает функцию автозаполнения кода с использованием искусственного интеллекта и доступен для различных редакторов, включая PhpStorm.

7️⃣IntelliVue: Данный плагин обеспечивает поддержку Vue.js Single File Components в PhpStorm, добавляя дополнительную функциональность и удобные инструменты для работы с ними.
🥱13👍31