Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.34K 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
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
Версионная миграция структуры базы данных через PHP атрибуты

Исчерпывающий гайд, который описывает подход к созданию миграций и определения структуры базы данных в фреймворке Laravel с использованием классов моделей, атрибутов PHP и специальных команд. Автор предлагает использовать атрибуты PHP для определения полей, индексов, отношений и других характеристик таблицы внутри класса модели. Вместе с этим он представляет механизм миграций, который позволяет легко вносить изменения в структуру базы данных.
🥱5👍2🤔2👾1
Объекты значений в PHP 8: расширенное использование

Этот материал является частью цикла статей про объекты-значения, как и вчерашний пост. Он занимается пониманием и использованием объектов-значений (Value Objects), классифицируя их на три основных типа: Простые, Сложные и Композитные.

1️⃣Простые объекты-значения: Они инкапсулируют единственное значение, представляя основные концепции в предметной области. В статье используется пример объекта-значения Age, включая рекомендации, такие как соблюдение принципа единственной ответственности, неизменяемость, валидация, строковое представление и метод для проверки равенства.

2️⃣Сложные объекты-значения: Они обрабатывают более сложные структуры или несколько атрибутов, моделируя более богатые концепции в предметной области. Статья иллюстрирует это на примере объекта-значения Coordinates, представляющего географические координаты. Здесь акцент делается на структурированном представлении, валидации, значимом строковом представлении и методе для проверки равенства.

3️⃣Композитные объекты-значения: Они объединяют несколько простых или сложных объектов-значений в единый комплексный объект, представляя более сложные концепции в предметной области. Примером служит композитный объект-значение Address, состоящий из улицы, города и почтового индекса. Здесь рекомендации включают композицию, абстракцию, значимое строковое представление и метод для проверки равенства.

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

Кроме того, рассмотрены альтернативы исключениям, представляя концепцию Either и объединенные типы (Union Types) в PHP 8.0 для обработки ошибок. Оба подхода предоставляют гибкость управления результатами, где Either предлагает структурированный метод, а объединенные типы соответствуют философии «позвольте ему быстро завершиться».
👍6
Для чего используется функция header()?

Функция header() в PHP используется для отправки HTTP-заголовков из сервера в браузер.

Основные случаи использования функции header() в PHP включают:

1. Установка статуса и заголовков ответа сервера:
В этом примере функция header() устанавливает статус ответа на «200 OK» и тип содержимого на «application/json».

2. Управление кешированием:
В этом примере функция header() устанавливает заголовки, которые предотвращают кеширование страницы в браузере.

3. Перенаправление пользователя на другую страницу:
В этом примере функция header() выполняет перенаправление пользователя на указанный URL.

4. Установка cookie:
В этом примере функция header() устанавливает cookie с именем «name» и значением «value», а также указывает срок и путь доступа к cookie.

Важно отметить, что функция header() должна быть вызвана до вывода любого другого содержимого на страницу, чтобы гарантировать успешное отправление заголовков.

#вопросы_с_собеседований
👍14🥱7🔥41
Восхождение на Эверест в шлепанцах: путь в PHP в качестве разработчика Python

Описывается опыт решения задачи изучения и реализации PHP для проекта печатающего API с использованием помощника по кодированию на искусственном интеллекте по имени Cody. Задача заключалась в том, чтобы в ограниченные сроки перевести функциональный API из Python в PHP.

Внимание акцентируется на эффективности использования Коди для генерации каркаса кода PHP на основе выбранных сегментов кода Python. Автор хвалит функцию автозаполнения, исправления кода и общую скорость процесса кодирования при использовании Коди. В статье также затрагивается предпочтение автора Коди перед ChatGPT-4 из-за его способности навигации и ответа на вопросы относительно всего кодовой базы, предоставляя контекст и понимание.
👍52
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤘 Особенности работы в ИТ: информация из первых рук

👨‍💻 Недавно мы проводили среди вас опрос, а теперь делимся интересными выводами обо всех аспектах работы в ИТ.

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

💬 Пишите в комментариях другие темы, о которых вам хотелось бы узнать👇
👍5😁4🥱21
Юнит-тесты в Laravel на примере

Рассматривается опыт тестирования программного обеспечения, призывая читателей попробовать его сами, изучив тесты в известных открытых проектах. В фокусе — модульное тестирование FileSystems в Laravel. Обсуждаются особенности теста, использующего PHPUnit и Mockery framework для создания мок-объектов. Подробно описываются ключевые моменты, такие как создание временной директории, инициализация объекта Filesystem, тестирование операций с файлами и директориями, работа с LazyCollection, проверка исключений, добавление макросов, а также другие аспекты. Автор выражает надежду, что материал поможет читателям улучшить навыки в тестировании программного обеспечения.
👍41🔥1
#дайджест #phpdevjob

Вакансии недели для Москвы 👨🏻‍🏫

Middle PHP-разработчик в КСК ЭКСПЕРТ
Москва. Разработка ПО.
Подробнее

Middle+ PHP backend developer в Чек-Ап Онлайн
Москва. IT платформа управления бизнесом.
Подробнее

PHP / Laravel Developer в KingBoost
Москва. Разработка ПО.
Подробнее

PHP developer в КОМПОТ
Москва. Разработка и поддержка IT-проектов для крупных компаний.
Подробнее

PHP-программист в SVK.Digital
Москва. Разработка цифровых продуктов.
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
6🤔2👍1