Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter


Гео и язык канала: Россия, Русский
Категория: Технологии


Канал про современный PHP и его инструменты.
Учиться у нас: https://clc.la/proglib_academy
Обратная связь: @proglibrary_feedback_bot

По вопросам рекламы @proglib_adv
Прайс: @proglib_advertising
http://ad.proglib.io/


Гео и язык канала
Россия, Русский
Категория
Технологии
Статистика
Фильтр публикаций


#memes


Serde

Serde — это быстрая, гибкая, мощная и простая в использовании библиотека сериализации и десериализации для PHP, которая поддерживает ряд стандартных форматов. Он черпает вдохновение как из крейта Serde от Rust, так и из Symfony Serializer, хотя напрямую не основан ни на одном из них.

В настоящее время Serde поддерживает сериализацию объектов PHP в массивы PHP, файлы JSON, YAML и CSV и обратно. Он также поддерживает сериализацию в JSON или CSV через поток. Планируется дальнейшая поддержка, но по задумке ее может расширить кто угодно.


Разработка расширения для PHP на C++. Хуки встроенных функций и методов

В этой статье показано, как создать расширение для PHP на C++ на примере разработки функциональности, позволяющей перехватывать вызовы встроенных функций и методов классов в php.

Здесь подробно рассмотрен процесс создания расширения для PHP на C++. Начиная с настройки среды разработки и создания проекта, до шагов по реализации хуков и выполнения callback-функций. Затронуты все основные ключевые моменты, от встраивания хуков во встроенные PHP-функции до подмены целевых функций и обработки аргументов, исключений и результатов.


Создание одностраничного приложения с помощью HTMX и Symfony

Данная статья представляет собой учебное пособие или руководство по использованию библиотеки htmx в сочетании с Symfony для создания веб-приложения с улучшенным UX.

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




Объекты-значения в PHP 8: создание лучшего кода

Статья рассматривает использование шаблона проектирования «Value Object» для повышения качества кода.

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

🔧Value Objects могут решить эти проблемы. Предоставляется пример, где в конструкторе осуществляется валидация данных. Это позволяет устранить дублирование логики проверки в разных местах кода.

Далее описаны три основных принципа работы с Value Objects:

Неменяемость (Immutability): Value Objects не должны изменяться после создания. В PHP 8.1 введены readonly-свойства для упрощения реализации неменяемости.

Сравнимость (Comparability): Обеспечение возможности легкого сравнения объектов Value Objects для определения их идентичности или различия.

Постоянство данных (Consistency): Value Objects всегда должны представлять валидные данные, и валидация должна выполняться в конструкторе объекта.

Автор также подчеркивает важность легкости отладки (Debuggability) Value Objects, предлагая использовать метод __toString() для простых объектов и toArray() для составных объектов.


Репост из: Библиотека программиста | программирование, кодинг, разработка
📯Внимание всем отважным героям и искателям приключений!

«Библиотеки Программиста» с гордостью представляет новую захватывающую игру — «Битва с Драконом». Выберите своих персонажей и сразитесь с древним Крылатым Ужасом Бурлопиворогом в эпическом поединке!

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

💎Победителей ждет почет, уважение и награда! Итак, кто осмелится бросить вызов Бурлопиворогу? Начните свою «Битву с Драконом»!


Как вы считаете, действительно ли функциональное программирование бесполезно в PHP?


Альтернатива Nova: почему решили перейти с самописного решения на Orchid

Статья рассказывает о решении перейти от самописной административной панели к использованию Orchid — открытой административной панели для проектов на Laravel. Автор выделяет несколько преимуществ Orchid перед их предыдущим решением, а также проводит сравнение с Laravel Nova — коммерческой админ-панелью.

2k 0 16 10 5

Разработка пакетов Laravel: ключевые шаги к созданию эффективного инструмента

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

🛠️В статье рассматриваются ключевые концепции разработки пакетов, такие как ServiceProvider, Facades, и Contracts, которые обеспечивают стабильную работу приложений от тестирования до продакшна. Особое внимание уделяется 🔧ServiceProvider как точке контакта между контейнером приложения и пакетом, управляющей всеми ресурсами приложения.

⚖️Освещаются как плюсы, так и минусы использования пакетов. Среди преимуществ отмечается 📈масштабирование проектов, 🏗️улучшение структуры, 🧰инкапсуляция бизнес-логики и стимулирование 🔄повторного использования кода. Среди недостатков упоминаются возможные проблемы с зависимостями, наличие ненужных функций в широко используемых пакетах, прекращение поддержки разработчиком и несовместимость версий.

Также предоставляется подробное руководство по подготовке и разработке пакета, включая создание структуры каталогов, файлов конфигурации и классов ServiceProvider. Приводится шаг за шагом процесс инициализации файла composer.json, а также объясняется, как связать Laravel-приложение с созданным пакетом.


Зачем нужно кэширование? Какую проблему оно решает?

Зачем нужно кэширование:

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

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

Уменьшение задержек для конечных пользователей: Кэширование позволяет уменьшить время загрузки страниц для конечных пользователей, так как часть данных уже находится на клиентской стороне или близко к ней (например, в CDN — Content Delivery Network).

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

Проблемы, которые решает кэширование:

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

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

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

Оптимизация работы с внешними API: Если веб-приложение взаимодействует с внешними API, кэширование может снизить задержки, связанные с запросами к этим внешним сервисам, и повысить отказоустойчивость.

#вопросы_с_собеседований

2k 0 22 4 14

#memes


Reli

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


#хочу_спросить

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




Обработка ошибок

Статья обсуждает важность эффективного управления ошибками в программном обеспечении для обеспечения лучшего опыта пользователя.

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

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


🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

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


Xdebug в качестве интерактивной оболочки (REPL) в Phpstorm

Здесь рассказывается о том, как использовать консоль Xdebug в качестве интерактивной оболочки для PHP. Проблема заключается в отсутствии подобной интерактивной консоли в Phpstorm, подобной той, что доступна для JavaScript в инструментах разработчика браузера.

Автор предлагает использовать консоль Xdebug, которая интегрирована в Phpstorm, обеспечивая автодополнение кода прямо из проекта и предоставляя удобные функции, которых нет в других REPL-интеграциях.


Репост из: Библиотека программиста | программирование, кодинг, разработка
api-protocols.pdf
784.1Кб
💡Развитие протоколов API в 2023 году: по мотивам статьи Alex Xu в блоге Postman

В PDF-файле — обзорная демонстрация, а в статье вас ждет подробный взгляд на шесть самых популярных протоколов API с акцентом на преимущества и проблемы каждого:

1️⃣ REST
2️⃣ Webhooks
3️⃣ GraphQL
4️⃣ SOAP
5️⃣ WebSocket
6️⃣ gRPC

💬 Какой используется в вашем проекте? Делитесь в комментариях мыслями по данной теме👇

#проектирование_систем


Как установить PHP 8.3 на Ubuntu 22.04

Статья предоставляет пошаговое руководство по установке PHP 8.3 на Ubuntu 22.04 и настройке локальной среды программирования через командную строку.

Показано 20 последних публикаций.