Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.35K photos
20 videos
26 files
4.04K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Система уведомлений в ресурсах 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
Проблема с датами

В этом небольшом видео поднимается проблема временных интервалов в программировании

Вопрос: Мы имеем временной промежуток с 20 декабря по 25 декабря. Будет ли в этот интервал входить 25 декабря 10:00 утра?
Ответ: в PHP по стандарту нет!

Почему так вышло и как с этим работать смотрите здесь
👍4
#хочу_спросить

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

Встроенный языковой модуль PHP для веб-сервера Nginx. Согласно тестам, в настоящее время это самый быстрый способ запустить PHP — быстрее, чем Swoole, Roadrunner и Frankenphp.
🤔18😁2
😎 Покупайте сейчас — учитесь, когда удобно!

До 1 апреля мы снизили цены на все наши курсы, чтобы вы могли сформировать свой карьерный трек и например подготовится и поступить в ШАД.

👀 Советуем обратить внимание на наши самые популярные курсы:
Математика для Data Science
Алгоритмы и структуры данных

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

📚А если вы не уверенны, подойдет ли вам курс, то вы можете оставить заявку на вводные занятия. И наш менеджер пришлет вам всю необходимую информацию, где вы познакомитесь с преподавателями и форматом обучения — https://proglib.io/w/47905349
1
Как интегрировать компонентную архитектуру в Symfony?

Здесь рассказывается о важности эффективного взаимодействия между front-end и back-end разработчиками в проектах, а также о том, как применение компонентной архитектуры может помочь в этом.

В начале подчеркивается, что неправильное понимание пользовательской истории (User Story) может привести к потере до трёх дней разработки из-за недопонимания. Также отмечается, что использование разных языков программирования может требовать создания API для облегчения коммуникации, что также является затратным процессом.

Основной акцент делается на причинах, по которым front-end разработчики могут быть неохотны работать с Twig (шаблонизатор для Symfony), что может привести к разрыву в коммуникации между front-end и back-end разработчиками.

Далее рассматривается компонентная архитектура, которая является фундаментальной для многих современных фронтенд-фреймворков, таких как Svelte, React и Vue.

Она определяется четырьмя основными принципами:

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

Независимость: Чтобы компонент можно было бесконечно использовать, он не должен зависеть от контекста. Он должен функционировать идентично, когда размещен на другой странице.

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

Состояния: Компонент может иметь несколько состояний, например, активное, загружающееся и отключенное. Состояния позволяют изменять внешний вид компонента в зависимости от его текущего состояния.

Также приводятся примеры того, как использовать архитектуру компонентов с помощью Symfony и шаблонизатора Twig. Она объясняет, как создавать компоненты, как использовать свойства для настройки компонентов и как комбинировать компоненты для создания более сложных интерфейсов. Также упоминаются способы управления состояниями компонентов с помощью библиотек Stimulus и LiveComponents.
🔥4👍21
💸👨‍💻 Тебе повезло, ты богатый айтишник

Как показали результаты нашего исследования, даже с профильным образованием найти первую работу в ИТ бывает нелегко. Большинству свитчеров первый оффер дается еще сложнее: огромный объем необходимых знаний и навыков нужно получить как можно быстрее.

Многие учатся (самостоятельно или на курсах) без отрыва от основной работы. Самые отчаянные вайтишники бросают работу и начинают учиться, живя на скромные сбережения. Герой этой истории, фронтендер Олег, начинал именно так. Под катом — его история.

👉 Читать статью
👉 Зеркало
😁5🌚3
💪 Что не так с MVP: как создать конкурентоспособный продукт

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

👉 Читать статью
👉 Зеркало
🔥4
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📈 По просьбе подписчиков «Библиотеки программиста» мы провели опрос и выяснили, что у большинства айтишников зарплата в 2023 году выросла.

⚡️ Как выглядит доход среднего айтишника и какие факторы окажут влияние на динамику ИТ-зарплат в 2024 году — расскажем в статье на VC.

👉 Читать

P. S. Свои предложения для исследований пишите в комменты👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🌚2