Библиотека пхпшника | 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
🔟 10 суровых истин, которые должен знать каждый джун

Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!

👉 Читать статью
👉 Зеркало
👍4🥰2
#дайджест новостей по PHP за неделю:

🔎PHP 8.3.4 и 8.2.17 выпущен! — Команда разработчиков PHP объявляет о немедленной доступности PHP 8.3.4. и 8.2.17. Это баг-фикс релиз.

🔎Laravel Herd выпускает v1.5.0 с новыми сервисами. — Laravel Herd v1.5 представляет новую захватывающую функцию: Services.

🔎Вышел Laravel 11 — Вот список нововведений

🔎Выпущен CakePHP 5.0.6 — Улучшения включают в себя: исправление проверки экземпляров Chronostime. Исправление дескриптора файла в stubconsoleinput и многое другое!

🔎Неделя Symfony #898 (11-17 марта 2024 г.)
6
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
💬 Open Source по-русски: путь к технологической независимости или обочина прогресса?

Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.

Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.

👉 Ссылка на опрос 👈

Прохождение займёт примерно 4 минуты
👍2🌚1
Оптимизированные файлы конфигурации в Laravel 11

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

Было решено удалить все конфигурационные файлы из стандартной установки и вместо этого предоставить возможность добавить только те файлы и опции, которые действительно нужны. Это позволяет создавать более компактные и чистые конфигурационные файлы, что может упростить процесс разработки и поддержки приложения.
🥱7👏3🌚1
Магический API Resource в Laravel

В Laravel есть удобные API ресурсы, с которыми легко и приятно работать в области трансформации данных для ответа на запрос. Но что делать когда возникает необходимость изменить их структуру в соответствии с бизнес-потребностями? Рассказывается здесь!
👍7🥱3
Назовите 3-4 нормальные формы реляционных БД.

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

Первая нормальная форма (1NF): В этой форме все атрибуты в таблице являются атомарными, то есть каждая ячейка содержит только одно значение.

Вторая нормальная форма (2NF): Вторая нормальная форма требует, чтобы каждый неключевой атрибут полностью зависел от ключа, то есть не должно быть частичной зависимости.

Третья нормальная форма (3NF): В этой нормальной форме устраняются транзитивные зависимости. Это означает, что если A зависит от B, а B зависит от C, то A не должно зависеть от C.

Бойса-Кодда нормальная форма (BCNF): Это расширение третьей нормальной формы, которое гарантирует, что каждое неключевое поле зависит только от ключа целиком, а не от его части.

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

#вопросы_с_собеседований
👍131
Laravel Zero — создание TCP-сервера

🔍 Описание задачи:
Автор начинает, описывая цель: создание TCP-сервера для участия в ежегодном CTF. 🛡️ Команда выбирает Laravel Zero для разработки консольного приложения.

🌐 Основы TCP-серверов:
Объясняется, что TCP-серверы принципиально важны, а затем описывается процесс их работы и важность создания сервера для обработки входящих соединений от клиентов.

🚀 Создание сервера:
Здесь показано, как устанавливать Laravel Zero и Swoole и создавать команду для запуска сервера. Затем описываются этапы создания TCP-сервера с использованием событий Start, Connect, Receive и Close.

🖼️ Использование Blade и Tailwind CSS:
Автор обсуждает использование шаблонов Blade для форматирования логов и ответов сервера, а также применение Tailwind CSS для стилизации консольных приложений.
👍7
Система уведомлений в ресурсах Laravel

В предыдущей статье по работе с API ресурсами в Laravel была затронута тема изменения бизнес-потребностей в области формирования внешнего вида объекта ответа на запрос к API приложения.

В этой вводится новая бизнес-потребность под названием «нотификации». Их суть в том, чтобы вместе с ответом на запрос добавлять информацию о каких-либо действиях.
😁6👍3
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

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

Здесь описывается процесс перехода с использования Webpack Encore на AssetMapper в Symfony приложениях. Начиная с описания проблем с Webpack Encore, связанных с сложностью настройки и медленным развертыванием из-за необходимости сборки ассетов при каждом деплое, статья переходит к объяснению преимуществ AssetMapper и процесса их внедрения.

Первый шаг — установка AssetMapper с помощью Composer. Затем создается файл importmap.php, который указывает, какие ассеты используются в приложении, и заполняется с помощью команд importmap:require для каждой зависимости. После этого запускается команда importmap:install, которая загружает ассеты в директорию assets/vendor/. Энтрипоинты (точки входа) также определяются в файле importmap.php, а также производятся небольшие изменения в файлах ассетов и шаблонах.

Здесь также говорится о переходе с Sass на чистый CSS и упоминается использование Tailwind CSS. Изменения в CI/CD процессе также описываются, а в заключении авторы отмечают значительное упрощение и улучшение производительности после перехода на AssetMapper.
🔥5👍1
#дайджест #phpdevjob

Вакансии PHP разработчиков уровня Junior

▪️PHP-разработчик
Новомосковск. Экспресс РМС — спектр услуг для интернет-магазинов и компаний дистанционной торговли
Подробнее

▪️PHP-разработчик
Москва. Д-проджект — проектирование и разработкa интернет-систем
Подробнее

Вакансии PHP разработчиков уровня Middle

▪️PHP программист
Санкт-Петербург. СОФТПАРТ — разработкa веб-сервисов для сферы торговли автозапчастями
Подробнее

▪️PHP-разработчик
Удаленка. Офис в Екатеринбурге. Электронные платформы — EdTech стартап
Подробнее

Вакансии PHP разработчиков уровня Senior

▪️Веб-разработчик
Москва. Стройтерминал — разработка ПО
Подробнее

▪️PHP-разработчик
Удаленка. Офис в Санкт-Петербурге. ЭБС Лань — технологическая компания
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
4
Какими площадками/соцсетями вы активно пользуетесь кроме Telegram'а?
Anonymous Poll
28%
инстаграм
6%
фейсбук
27%
вк
13%
линкед
8%
твиттер
7%
VC
37%
Хабр
10%
реддит
74%
ютуб
2
Реализация маршрутизации с использованием атрибутов PHP

Здесь представлен экспериментальный пример реализации маршрутизации с использованием атрибутов PHP. Проект управляется с помощью Composer для управления зависимостями.

В приложении определены два маршрута: CreateUser (для создания пользователя) и RetrieveUser (для получения информации о пользователе). Каждый маршрут представлен в виде отдельного класса, который расширяет базовый класс RouterBase.

Для управления маршрутами используется класс RouterHandler, который регистрирует маршруты из соответствующих файлов и обрабатывает запросы, соответственно подбирая соответствующий маршрут на основе URI и метода запроса.

Также представлен класс Route, который представляет собой атрибут, содержащий метод и конечную точку маршрута. Этот атрибут применяется к методам в классах маршрутов для определения их характеристик.

В итоге, для добавления нового маршрута в приложение необходимо создать новый класс маршрута с методом index() и применить к нему атрибут Route с указанием метода и конечной точки маршрута.

Общий подход позволяет легко добавлять и управлять маршрутами в приложении с помощью атрибутов, что делает код более чистым и модульным.
😁5
Можно ли компоновать traits в trait?

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

В приведенном примере трейт TraitC использует (use) два других трейта (TraitA и TraitB) и предоставляет дополнительный метод methodC. Класс Example затем использует трейт TraitC, что позволяет ему наследовать все методы из TraitA, TraitB и TraitC.

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

#вопросы_с_собеседований
👍8🤔7👏3
⚡️Proglib запускает каналы про нейросети

По каждому направлению отдельно! А именно:

Библиотека нейрозвука — здесь все, связанное с транскрибацией, синтезом речи, ИИ-музыкой
Библиотека нейротекста — классические ИИ-помощники вроде ChatGPT, Gemini, Bing
Библиотека нейровидео — здесь пишем про нашумевшую Sora AI, а также про Runway ML, дипфейки и другие видеотехнологии
Библиотека нейрокартинок — генерируем изображения и рассказываем про Midjourney, DALL-E, Stable Diffusion
⭐️Библиотека робототехники и беспилотников — наконец, тут мы рассказываем не столько про ИИ, сколько про роботов, беспилотные технологии и интернет вещей

И все это — максимально подробно: с пошаговыми инструкциями, промтами, инструментами и лайфхаками.

Подписывайтесь!
1👍1
Как измерить производительность в приложениях Laravel

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

Здесь представлены инструменты такие как ab (Apache Benchmark) и jmeter для быстрой оценки производительности, а также более сложные инструменты, такие как Inspector и Laravel Telescope, которые предоставляют более подробную информацию о внутренних процессах приложения.

Также обсуждается OpenTelemetry для ручного профилирования кода и XDebug с qcachegrind для низкоуровневого анализа производительности. Он подчеркивает, что каждый инструмент имеет свои преимущества и ограничения, и что выбор инструмента зависит от конкретной ситуации и целей измерения производительности.
1