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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
🤤 Икра черная, икра красная, а профессия — программирование

Сертификат на обучение от Proglib Academy — это крутой подарок для тех, кто интересуется IT, хочет освоить новую профессию и жить в шоколаде.

Почему наши курсы — хороший презент:

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

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

🚀 Подарите возможность начать год с полезных знаний и карьерного роста → подробнее о сертификатах
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱71🌚1
Какова цель функции «array_map» в PHP и как её использовать?

Функция array_map() в PHP используется для применения заданной функции к каждому элементу массива. Она создает новый массив, содержащий результаты применения функции к каждому элементу исходного массива. Функция обратного вызова применяется к каждому элементу последовательно, и ключи сохраняются.

В этом примере функция square() применяется к каждому элементу массива $numbers с использованием array_map(), что приводит к созданию нового массива $squaredNumbers, где каждый элемент является квадратом соответствующего элемента исходного массива.

#вопросы_с_собеседований
4🔥4👍2
PHP 8.4 представил значительное обновление DOM-расширения, добавив возможность работы с элементами DOM через новый API CSS-селекторов. Эта функция, схожая с JavaScript-методами querySelector() и querySelectorAll(), упрощает выбор и обработку элементов в HTML и XML-документах.

Новый API CSS-селекторов позволяет выбрать элементы DOM с использованием знакомого синтаксиса, делая код более компактным и понятным.

Основные методы:

querySelector(): выбирает первый элемент, соответствующий заданному CSS-селектору.
$doc = new DOMDocument();
$doc->loadHTML('<div class="header">Header Content</div>');
$element = $doc->querySelector('.header');
echo $element->textContent; // Вывод: "Header Content"

querySelectorAll(): возвращает коллекцию всех элементов, подходящих под CSS-селектор.
$doc = new DOMDocument();
$doc->loadHTML('<div class="item">Item 1</div><div class="item">Item 2</div>');
$elements = $doc->querySelectorAll('.item');
foreach ($elements as $element) {
echo $element->textContent . "\n";
}
// Вывод:
// Item 1
// Item 2

Преимущества
🔸Простота синтаксиса: Использование CSS-селекторов упрощает код, избавляя от необходимости создавать сложные циклы для обхода DOM.
🔸Гибкость: Можно применять сложные селекторы, включая атрибуты, псевдоклассы и вложенные структуры.
🔸Сходство с JavaScript: Разработчики, знакомые с JavaScript, быстро адаптируются к новым методам PHP.

Ограничения
1. querySelectorAll() возвращает статический список узлов, который не обновляется при изменении DOM.
2. Поддержка сложных псевдоклассов, таких как :nth-child(), может быть ограничен
🔥22👍6👏31
🎨 Новый канал для вдохновения — UX in GIF

Мы запустили свежий канал, где делимся идеями для дизайна интерфейсов. Всё самое стильное, оригинальное и вдохновляющее теперь в одном месте.

📌 Чем полезен канал?

→ Идеи для дизайна интерфейсов.
→ Анимации, которые можно повторить или адаптировать.
→ Лёгкий способ искать вдохновение перед новым проектом.

👉 Подписывайтесь и вдохновляйтесь: UX in GIF
Please open Telegram to view this post
VIEW IN TELEGRAM
Знаете ли вы, что Laravel поставляется с методом «preventStrayRequests()», позволяющим избежать реальных запросов во время тестирования? Это удобно не только для сторонних API, но и для локальных API. В то время как ваши тесты могут пройти локально, потому что все окружение работает, они могут провалиться в CI-конвейере. Это происходит потому, что в конвейере CI обычно активен только тот сервис, который вы тестируете, поэтому выполнение фактических запросов к недоступным API приведет к неудаче вашего набора.
🎉7👾1
💬 А расскажите, над каким проектом работаете прямо сейчас?

Что это за продукт или, может быть, пэт-проект? За что вы в нём ответственны? Довольны ли вы результатом?

#интерактив
🤖 Познакомьтесь с Willow, современным квантовым чипом от Google

Менее чем за 5 минут он способен выполнить тестовое вычисление, на которое одному из самых быстрых суперкомпьютеров сегодня потребовалось бы 10 септиллионов лет (это больше, чем возраст Вселенной).

👉Подробнее
🔥9👍2😁1
🦑👨💻 Программист в «Игре в кальмара»: каковы твои шансы выжить?

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

Окажутся ли твои скрипты, алгоритмы и багфиксы полезными в критической ситуации?

👉 Пройти тест
5
💻 Эффективное проектирование программных систем

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

Наш интенсив «Архитектуры и шаблоны проектирования» научит вас строить программные системы без боли и стресса. Вы на практике освоите основные паттерны проектирования и прокачайте свои навыки архитектора программного обеспечения.

🎄Начните свой 2025 со скидкой 35% на все курсы. Это лучшее вложении уходящего года – https://proglib.io/w/cc21e069
🥰1🎉1
Front Controller и Page Controller в PHP

Архитектурные паттерны Front Controller и Page Controller помогают структурировать работу веб-приложений, но подходят для разных сценариев.

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

Как это работает:
🔸Единая точка входа: Весь входящий трафик перенаправляется на один файл, например, index.php, с помощью настроек веб-сервера (например, .htaccess для Apache или правил маршрутизации для Nginx).
🔸Маршрутизация: Контроллер анализирует URL и определяет, какой компонент должен обработать запрос. Это может быть реализовано вручную или с использованием библиотек маршрутизации.
🔸Делегирование: На основе маршрута запрос передается соответствующему контроллеру или методу, который выполняет обработку.
🔸Формирование ответа: Контроллер формирует ответ (обычно в формате HTML или JSON) и отправляет его клиенту.

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

Каждый контроллер выполняет следующие задачи:

🔹Обработка запроса: анализирует данные, поступающие от клиента.
🔹Логика страницы: проводит проверку данных, взаимодействует с моделями или выполняет вычисления.
🔹Формирование ответа: передаёт обработанные данные в представление для генерации итогового ответа.

Оба паттерна можно комбинировать, адаптируя их под конкретные потребности приложения.
🔥5🤔4👍2🌚1
Для чего используется переменная $_REQUEST?

Переменная $_REQUEST является суперглобальным массивом, который используется для сбора данных из HTML-форм или URL-адресов. Это комбинация массивов $_GET, $_POST и $_COOKIE. Собранные данные могут быть параметрами, переданными через методы HTTP GET или POST.

Вот разбор того, что представляет собой каждый из этих методов:

$_GET: Данные, отправленные через строку запроса URL. Они видны всем и имеют ограничение на объем передаваемых данных.

$_POST: Данные, отправленные через HTTP POST-запрос, обычно из HTML-формы с использованием метода POST. Эти данные не видны в URL-адресе и могут передавать больший объем данных по сравнению с $_GET.

$_COOKIE: Данные, хранящиеся в файлах cookie браузера пользователя.

$_REQUEST позволяет получать доступ к данным независимо от того, как они были отправлены, будь то запрос GET (параметры URL), запрос POST (отправка формы) или cookie. Однако полагаться исключительно на $_REQUEST иногда может привести к проблемам с безопасностью, поскольку он объединяет различные источники пользовательского ввода. Обычно рекомендуется использовать явно $_GET, $_POST или $_COOKIE в зависимости от предполагаемого использования и источника данных, поскольку это обеспечивает большую ясность и безопасность.
😁10👍21
Swagger — это широко используемый инструмент для документирования и тестирования API, который легко интегрируется с такими популярными веб-фреймворками, как Laravel, Spring Boot, CodeIgniter и ExpressJS.

В этой статье рассматривается интеграция Swagger с CodeIgniter.
👍2🤩1
Знаете ли вы, что для отслеживания медленных запросов можно использовать параметр whenQueryingForLongerThan? Вы можете установить порог в миллисекундах. Если запрос превысит порог, вы можете отправить уведомления или выпить кофе с тем, кто создал запрос 😂.
😁19👍5🤩3
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍1
Создание типозащищенной функции pipe() в PHP

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

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

Хотя реализация в PHP сложнее и менее изящна, чем в Scala, она может быть полезна для разработчиков, которым нравится функциональный стиль программирования и необходимость писать чистый и логичный код.
👍7🌚2
#дайджест #PHPdevjob

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

▪️ Junior PHP-разработчик
Гибрид (Москва), Издательство МОЗАИКА-СИНТЕЗ
Подробнее

▪️ Junior backend разработчик (PHP, laravel)
Офис (Санкт-Петербург), НаПоправку
Подробнее

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

▪️ Backend-разработчик PHP (Middle)
Удалёнка, Simtech Development
Подробнее

▪️ Middle/Senior PHP-разработчик (Laravel)
Офис (Москва, Ростов-на-Дону) / Удалёнка, A3F Group
Подробнее

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

▪️ Senior PHP Developer
Удалёнка, BORK
Подробнее

▪️ Team Lead PHP Backend Developer (МК+ОТА/ЦТ)
Удалёнка / Офис (Санкт-Петербург), Bnovo
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
🤔5😁3👍21🔥1
Давайте признавайтесь в комментариях — что вам подарили? 👇
😁3