Библиотека пхпшника | 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
🧠🧩 Зачем айтишнику психолог?

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

🔗 Читать статью
🔗 Зеркало
🎉5🌚4
Чему вы бы хотели научиться за эти праздники?
😁11🎉2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
CI/CD Workflow: упрощенный гайд от ByteByteGo (Alex Xu)

CI/CD — это методология, которая позволяет автоматизировать процесс разработки и доставки ПО в продакшн.

Будь вы разработчиком, специалистом по DevOps, тестировщиком или занимаетесь любой современной ролью в ИТ, CI/CD пайплайны стали неотъемлемой частью процесса разработки.

#инфографика
👍4👏2
PHPCTL

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

Установка phpctl проста: необходимо склонировать репозиторий и выполнить установочный скрипт. Инструмент предоставляет разнообразные команды, включая php, composer, phpunit, php-cs-fixer и phpstan. Кроме того, существует команда phpctl init для инициализации конфигураций для различных инструментов, таких как PHPUnit.

Преимуществом этого инструмента являются удобство и стандартизация, которые приносит использование контейнеров в разработке на PHP, облегчая управление зависимостями и обеспечивая согласованность между разными окружениями.
👍133🤔3🥱1
Gemini API

PHP-клиент Gemini API позволяет использовать генеративные модели искусственного интеллекта Google, такие как Gemini Pro и Gemini Pro Vision.
👏3😁2
🚀в Docker Desktop версии 4.19.0+ добавили новую команду под названием «docker init». Она автоматизирует создание необходимых Docker-файлов, файлов Compose и .dockerignore для проектов с целью устранения ручной конфигурации. Преимущества включают быстрые эксперименты, улучшенное обучение и безшовную интеграцию с стандартизированными рабочими процессами.

🛠️Команда docker init, представленная в Docker Desktop версии 4.18, автоматически создает Docker-ресурсы для проектов, включая файлы .dockerignore, Dockerfile и docker-compose.yaml. Она поддерживает различные платформы приложений, такие как Go, Node, Python, и в последнем релизе добавлена поддержка PHP.

👩‍💻Здесь предоставляется пошаговое руководство по настройке базовой среды Apache + PHP с использованием Composer на macOS, а затем демонстрируется использование docker init для контейнеризации PHP-приложения. Dockerfile и docker-compose.yaml генерируются автоматически, обеспечивая быстрое и эффективное создание контейнеров.

Команда docker init предлагает выбрать платформу приложения, версию, относительный каталог и предпочтительный порт. Она также предупреждает, если Docker-файлы уже существуют, и предлагает их перезаписать. Сгенерированные Docker-файлы включают этапы установки зависимостей приложения, определенных в Composer, и запуска приложения с минимальными зависимостями времени выполнения.
👍20🥱1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

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

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

🌐Laravel Octane использует подход жизненного цикла приложения, запуская его один раз и храня его в памяти для быстрого ответа на запросы. Основной мощью Octane является использование серверов приложений, таких как Swoole, OpenSwoole, Roadrunner и FrankenPHP.🚀

🤖FrankenPHP — это сервер приложений, созданный специально для PHP, предлагающий продвинутые функции, такие как поддержка PHP 8.3, режим работников, поддержка современных форматов сжатия, поддержка HTTPS, HTTP/2 и HTTP/3, автоматическая генерация, обновление и отзыв сертификатов HTTPS, а также плавная перезагрузка.

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

Это поможет значительно улучшить время ответа благодаря запуску приложения один раз и его хранению в памяти для последующих запросов. Это обеспечивает эффективную обработку входящих запросов и значительное сокращение времени ответа, особенно после того, как все работники ответили на первоначальные запросы.
👍4😁4🥱31🎉1
Расскажите про функции defined и get_defined_constants

defined():
Функция defined() используется для проверки существования константы с заданным именем. Она возвращает true, если константа существует, и false, если нет.

get_defined_constants():
Функция get_defined_constants() возвращает ассоциативный массив, содержащий все определенные константы в текущем скрипте. Этот массив имеет два уровня: глобальные константы и локальные (если они определены внутри функции).

#вопросы_с_собеседований
👍10😁4👾2🔥1
Работа с десятичными дробями в приложениях PHP

📝 Статья обсуждает соображения и преимущества использования объектов значений с десятичными значениями в PHP-приложениях, особенно при взаимодействии с базами данных и ORM.

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

📘 Представлена библиотека php-collective/decimal-object, предоставляющая простой API для работы с десятичными значениями с поддержкой типизации и автодополнения.

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

🔄 Обсуждение расширяется на интеграцию десятичных объектов значений с популярными PHP-фреймворками и ORM, такими как CakePHP, Symfony и Laravel.

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

🔄 Рассматриваются аспекты неизменяемости, локализации и производительности с подчерком преимуществ использования объектов значений для улучшения читаемости кода.
🔥3👍1🌚1
Многоуровневое логирование: Руководство по структурированному и последовательному ведению логов

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

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

Далее была представлена Elastic Common Schema (ECS) как открытая спецификация для стандартизации логов. Документация ECS была подробно рассмотрена, и автор поделился примером реализации ECS в PHP с использованием пакета PECS (PHP Elastic Common Schema).

PECS предоставляет абстракцию и соглашение для реализации ECS в PHP, предоставляя генератор классов на основе JSON-конфигурации ECS. Также была представлена интеграция PECS с Monolog, что облегчает работу с Symfony и Laravel.
👍1
Разговор на собеседовании часто сопровождается некоторым напряжением, но иногда вопросы могут звучать настолько необычно, что создается впечатление настоящего шоу абсурда. Расскажите о самых неудобных и странных вопросах, которые вам когда-либо задавали на собеседованиях. 🤔
🎅 Новый год — отличное время для старта!

🎄Новый год начинается с подарков, а лучший подарок для себя — новые знания! Потому что ну а когда начинать учиться новому, если не в новом году. Выбирайте курс, оставляйте заявку и менеджер вас проконсультирует — https://proglib.io/w/b963d80d

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

Конечно, советуем обратить внимание на наши самые популярные курсы:
Математика для Data Science — 19 490 ₽ (вместо 29 990 ₽)
Алгоритмы и структуры данных — 23 390 ₽ (вместо 35 990 ₽)

🔥 Все цены на сайте уже включают скидку 35%, поэтому не упустите возможность зайти на курс по самой выгодной цене.

☺️ Доступ бессрочный, поэтому учиться вы сможете в своем темпе.

👉 Если вы сомневаетесь в пользе обучения для своего профессионального трека, оставляете заявку. Менеджер поможет разобраться с этим и любым другим вопросом — https://proglib.io/w/b963d80d

🫶 Всех с наступающим новым годом!
Первый #дайджест новостей по PHP в этом году:

🔎Вышел Laravel 10.39 — На этой неделе команда Laravel выпустила версию 10.39 с циклической почтовой программой, динамическим максимальным количеством попыток для заданий в очереди и многим другим.

🔎Выпущена Symfony 7.0.2 — Вот список наиболее важных изменений со времен версии 7.0.1.

🔎Неделя Symfony #887 (25-31 декабря 2023 г.)

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

🔎Выпущена версия CakePHP Audit-stash 4.0.0. — Что изменилось: исправлены неработающие тесты на локальном компьютере и добавлен конвейер действий GH от cnizzardini
5😁2
Объекты-значения в PHP 8: Сущности

🧱 Value Objects (Объекты Значений):
Value Objects — незаслуженно недооценные герои нашего кода, приносящие неизменяемость и предсказуемость в наши приложения. Они инкапсулируют небольшие кусочки данных, обеспечивая постоянство их состояния. Такая предсказуемость упрощает наш код и способствует общей стабильности системы.

👥 Entities (Сущности):
В отличие от Value Objects, Entities обладают уникальной идентичностью, позволяя им изменять свое состояние и сохранять свою индивидуальность. Давайте глубже погрузимся в качества, которые определяют сущность в наших PHP-приложениях.

Основные характеристики Entities включают:

1️⃣Идентичность: У Entities есть уникальный идентификатор, который является ключевым для сценариев, где важны устойчивость и изменяемость.
2️⃣Изменяемость: В отличие от Value Objects, Entities могут изменять свое состояние в течение жизненного цикла, приспосабливаясь к различным сценариям.
3️⃣Устойчивость за пределами одной транзакции: Entities сохраняются за пределами одной транзакции, обеспечивая их долговечность через взаимодействие с системой. В статье рекомендуется использование шаблона Repository для хранения и извлечения Entities.

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

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