Библиотека пхпшника | 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
Принцип разделения интерфейса (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
Подмена функций стандартной библиотеки PHP с помощью xepozz/internal-mocker

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

Для решения этой проблемы автор предлагает использовать библиотеку xepozz/internal-mocker, которая позволяет подменять функции на лету. Библиотека позволяет создать свою собственную функцию, которая будет эмулировать стандартную функцию, например, time(), и при этом сохранять её функциональность. Таким образом, можно подменять функции для тестирования или других целей.
🔥5👾4🥱1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Создание PHP SDK для Replicate AI

Здесь описывается процесс создания SDK (набора инструментов разработки программного обеспечения) на PHP для работы с API Replicate AI. Автор начинает с объяснения, что такое SDK и зачем оно нужно, а затем переходит к анализу документации API Replicate и определению ресурсов, с которыми нужно работать: Models (модели), Versions (версии) и Predictions (предсказания). Далее автор предлагает структуру SDK и предлагает реализацию основного класса «Client» и ресурса «Model». Он подчеркивает важность использования хорошего опыта разработчика при создании SDK и приводит примеры вызовов методов API через SDK. Кроме того, обсуждаются вопросы аутентификации и обработки ошибок. Автор заключает статью обещанием опубликовать репозиторий SDK на GitHub после его завершения и тестирования.
1
🗺️ Где составить дорожную карту: ТОП-10 сервисов

Сервисы, которые подойдут для составления карьерной карты и не только.

Читать статью

#гайд
🥱32
🧨 Из грязи в князи: вкатился с нуля в IT за границей

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

‼️ Если вы готовы рассказать свою историю — напишите нам на [email protected]
🥱8👍3
Laravel Setting Pro

Пакет Laravel Setting Pro упрощает управление настройками приложения в Laravel и предоставляет эти ключевые функции:

Гибкое хранилище: выберите между файловым хранилищем или БД в соответствии с потребностями вашего приложения.

Гибкая база данных: выберите между MySQL или MongoDB или создайте собственное соединение DB для настройки.

Кэширование: повышение производительности с помощью автоматического кэширования настроек. Вы можете выбрать между файлом или redis или создать собственный драйвер кэша.

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

Триггеры события: ответ на настройку изменений в режиме реального времени, используя события Laravel.

Глобальная вспомогательная функция и фасад: доступ и манипуляция настройками в любом месте вашего приложения Laravel с простой функцией настройки или настройкой фасада (даже в файлах конфигурации).

И многое другое!

Этот пакет предназначен для разработчиков, которые ищут эффективный и интуитивно понятный способ обработки настроек приложения. Он предлагает необходимые инструменты, сохраняя при этом процесс простым и обслуживаемым.
🥱6👍41🌚1
Куда делась 6 версия PHP?

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

11 марта 2010 команда разработчиков приняла решение об отмене выпуска PHP 6 в текущем его виде. В результате транк с PHP 6 был перенесён в бранч, а в транке образовалась новая версия — 5.4, в которую разработчики перенесли все наработки из PHP 6, кроме юникода.

#вопросы_с_собеседований
👍8
🕹️ Композиция против Наследования:

Проводится аналогия между тем, как в Тетрисе составляются фигуры, чтобы создать линии, и тем, как объекты комбинируются в разработке программного обеспечения.
Объясняется, как композиция способствует гибкости и модульности, в то время как наследование может привести к Проблеме Хрупкого Базового Класса и сильной связанности.

🔧 Принцип Одной Ответственности (SRP):

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

💉 Внедрение Зависимостей:

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

🌟 Принципы SOLID:

Тут также кратко затрагиваются принципы SOLID, упоминая Принцип Одной Ответственности и Внедрение Зависимостей, и намекают на то, что они будут рассмотрены более подробно в будущем контенте.

👀 Взгляд на Наследование:

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