#Собес #namespace #class #function
🤔 Что такое пространства имён (namespaces) в PHP?
💬 Кратко:
Пространства имён в PHP позволяют группировать классы, функции и константы, чтобы избежать конфликтов имен. Они особенно полезны при интеграции сторонних библиотек. Пространства имен создаются с помощью ключевого слова
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое пространства имён (namespaces) в PHP?
💬 Кратко:
Пространства имён в PHP позволяют группировать классы, функции и константы, чтобы избежать конфликтов имен. Они особенно полезны при интеграции сторонних библиотек. Пространства имен создаются с помощью ключевого слова
namespace.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🔥1
#Собес #git_status
🤔 Что делает команда git status?
💬 Кратко:
Команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что делает команда git status?
💬 Кратко:
Команда
git status показывает текущее состояние репозитория. Она отображает информацию о файлах, которые были изменены, добавлены в индекс или остаются незамеченными. Это помогает понять, какие шаги нужно выполнить дальше.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #errors #fatal #warning
🤔 Какие существуют типы ошибок в PHP?
💬 Кратко:
PHP выделяет следующие основные типы ошибок: фатальные (Fatal Errors), предупреждения (Warnings), уведомления (Notices), ошибки синтаксиса (Parse Errors), устаревшие (Deprecated Errors) и строгие (Strict Errors). Каждый из них сигнализирует о разных проблемах в коде, от критических до менее значительных.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Какие существуют типы ошибок в PHP?
💬 Кратко:
PHP выделяет следующие основные типы ошибок: фатальные (Fatal Errors), предупреждения (Warnings), уведомления (Notices), ошибки синтаксиса (Parse Errors), устаревшие (Deprecated Errors) и строгие (Strict Errors). Каждый из них сигнализирует о разных проблемах в коде, от критических до менее значительных.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #framework #scalability #performance
🤔 Объясните преимущества и недостатки использования фреймворка в контексте PHP.
💬 Кратко:
Фреймворки ускоряют разработку благодаря готовым инструментам, следованию стандартам и встроенным решениям для типичных задач. Они облегчают поддержку и масштабирование, но могут быть избыточными для маленьких проектов, добавлять сложности и приводить к зависимости от конкретного инструмента. Выбор фреймворка зависит от задач проекта и баланса между удобством разработки и потребностями в производительности.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Объясните преимущества и недостатки использования фреймворка в контексте PHP.
💬 Кратко:
Фреймворки ускоряют разработку благодаря готовым инструментам, следованию стандартам и встроенным решениям для типичных задач. Они облегчают поддержку и масштабирование, но могут быть избыточными для маленьких проектов, добавлять сложности и приводить к зависимости от конкретного инструмента. Выбор фреймворка зависит от задач проекта и баланса между удобством разработки и потребностями в производительности.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #infrastructure_as_code #automation #terraform
🤔 Что такое Infrastructure as Code (IaC)?
💬 Кратко:
Infrastructure as Code (IaC) — это метод управления и развертывания IT-инфраструктуры с помощью кода, а не ручной настройки серверов. Это позволяет автоматизировать, версионировать и обеспечивать единообразие среды.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое Infrastructure as Code (IaC)?
💬 Кратко:
Infrastructure as Code (IaC) — это метод управления и развертывания IT-инфраструктуры с помощью кода, а не ручной настройки серверов. Это позволяет автоматизировать, версионировать и обеспечивать единообразие среды.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#trainer #задачник
📚 Задачник PHP по уровням
Платформа полезна для тех, кто предпочитает учиться на практике и хочет получить реальный опыт решения типовых задач, с которыми сталкиваются PHP-разработчики.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Задачник PHP по уровням
Платформа полезна для тех, кто предпочитает учиться на практике и хочет получить реальный опыт решения типовых задач, с которыми сталкиваются PHP-разработчики.
Перейти к материалу
👉 База вопросов 👉 Новости
❤1
Guru PHP at YeaHub | Mikhail Savin
Всем привет!
Я PHP backend разработчик, в прошлом работал тимлидом 2-х команд.
Максимальная ЗП, которую получал с одной работы в месяц — 993к до вычета налогов. Так же совмещал 2 работы (300к+400к)
Я контрибьютил в Docker, ClickHouse, JetBrains, Laravel, Symfony, Composer и др. Подробнее можно посмотреть в моем аккаунте на ГитХаб
Я - ментор по разработке на PHP. Помогаю вкатываться как новичкам, так и опытным в разработку.
А ещё я Guru по PHP в YeaHub: отвечаю за качество контента во всей экосистеме.
А ещё подписывайтесь на другие каналы Экосистемы YeaHub
Проект YeaHub:
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝2❤1🔥1
#Собес #interface #abstraction #contract
🤔 Какова цель использования интерфейсов в PHP?
💬 Кратко:
Интерфейсы в PHP используются для создания контракта, который требует от классов реализации определённых методов, без определения того, как именно эти методы должны быть реализованы. Это помогает соблюдать принцип абстракции, улучшает организацию кода и упрощает взаимодействие между различными частями приложения. Интерфейсы также способствуют лучшей поддерживаемости и расширяемости кода.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Какова цель использования интерфейсов в PHP?
💬 Кратко:
Интерфейсы в PHP используются для создания контракта, который требует от классов реализации определённых методов, без определения того, как именно эти методы должны быть реализованы. Это помогает соблюдать принцип абстракции, улучшает организацию кода и упрощает взаимодействие между различными частями приложения. Интерфейсы также способствуют лучшей поддерживаемости и расширяемости кода.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1🔥1
mlocati/php-extension-installer
Полезная утилита, которая решает вечную боль сборки PHP-образов.
Позволяет ставить расширения одной строчкой, без
Работает с Alpine и с Debian.
Сам подтягивает системные зависимости, поддерживает PECL-пакеты и умеет кэшировать слои.
По сути — "composer install" для PHP-расширений.
https://github.com/mlocati/docker-php-extension-installer
Сравни, как было бы без него:
🚀 Пост Guru PHP: @msavin_dev
Полезная утилита, которая решает вечную боль сборки PHP-образов.
Позволяет ставить расширения одной строчкой, без
apt, apk и docker-php-ext-install.
FROM php:8.3-fpm
# Подтягиваем готовый установщик расширений из образа mlocati
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
# Одной командой ставим всё нужное
RUN set -eux; \
install-php-extensions \
intl \
pdo_pgsql \
opcache \
gd \
redis \
xdebug
Работает с Alpine и с Debian.
Сам подтягивает системные зависимости, поддерживает PECL-пакеты и умеет кэшировать слои.
По сути — "composer install" для PHP-расширений.
https://github.com/mlocati/docker-php-extension-installer
Сравни, как было бы без него:
FROM php:8.3-fpm
# Системные зависимости для intl, pdo_pgsql, gd
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
libicu-dev \
libpq-dev \
libjpeg-dev \
libpng-dev \
libwebp-dev \
libfreetype6-dev \
pkg-config \
git \
ca-certificates; \
rm -rf /var/lib/apt/lists/*
# Конфигурация и сборка расширений из исходников
RUN set -eux; \
docker-php-ext-install -j"$(nproc)" \
gd \
intl \
pdo_pgsql \
opcache
# PECL-расширения
RUN set -eux; \
pecl install redis; \
pecl install xdebug; \
docker-php-ext-enable redis xdebug
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mlocati/docker-php-extension-installer: Easily install PHP extensions in Docker containers
Easily install PHP extensions in Docker containers - mlocati/docker-php-extension-installer
❤1👍1🔥1
#Собес #route #web #api
🤔 Какие файлы маршрутов по умолчанию существуют в Laravel?
💬 Кратко:
В Laravel по умолчанию существуют четыре файла маршрутов:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Какие файлы маршрутов по умолчанию существуют в Laravel?
💬 Кратко:
В Laravel по умолчанию существуют четыре файла маршрутов:
web.php для веб-маршрутов, api.php для API-маршрутов, console.php для команд консоли и channel.php для каналов вещания событий.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#book #памятка
📚 Памятка PHP/GoLang разработчику для подготовки к собеседованиям
Это методичка(краткий справочник) по темам, знание которых может понадобиться при собеседовании на бэкендера (с уклоном в Golang/PHP) и на работе.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Памятка PHP/GoLang разработчику для подготовки к собеседованиям
Это методичка(краткий справочник) по темам, знание которых может понадобиться при собеседовании на бэкендера (с уклоном в Golang/PHP) и на работе.
Перейти к материалу
👉 База вопросов 👉 Новости
❤1
#Собес #phpunit #unit #test
🤔 Как написать юнит-тесты в PHP?
💬 Кратко:
В PHP юнит-тесты пишутся с использованием PHPUnit, который позволяет проверять корректность работы кода. Для создания тестов необходимо создать класс с методами, проверяющими функциональность программы, и использовать различные утверждения для проверки результатов. PHPUnit поддерживает создание фиктивных объектов и наборов данных для тестирования различных сценариев.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как написать юнит-тесты в PHP?
💬 Кратко:
В PHP юнит-тесты пишутся с использованием PHPUnit, который позволяет проверять корректность работы кода. Для создания тестов необходимо создать класс с методами, проверяющими функциональность программы, и использовать различные утверждения для проверки результатов. PHPUnit поддерживает создание фиктивных объектов и наборов данных для тестирования различных сценариев.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#Собес #transaction #deadlock #database
🤔 Как предотвратить взаимоблокировки в базе данных?
💬 Кратко:
Взаимоблокировки возникают, когда несколько транзакций блокируют друг друга, ожидая освобождения ресурсов. Чтобы их избежать, следует:
- Всегда обращаться к ресурсам базы данных в одном порядке.
- Сокращать время выполнения транзакций, чтобы уменьшить вероятность конфликта.
- Использовать таймауты для автоматического завершения зависших транзакций.
- Регулярно анализировать производительность базы данных и оптимизировать запросы, добавляя индексы и избегая сложных блокировок.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как предотвратить взаимоблокировки в базе данных?
💬 Кратко:
Взаимоблокировки возникают, когда несколько транзакций блокируют друг друга, ожидая освобождения ресурсов. Чтобы их избежать, следует:
- Всегда обращаться к ресурсам базы данных в одном порядке.
- Сокращать время выполнения транзакций, чтобы уменьшить вероятность конфликта.
- Использовать таймауты для автоматического завершения зависших транзакций.
- Регулярно анализировать производительность базы данных и оптимизировать запросы, добавляя индексы и избегая сложных блокировок.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
PHP-FPM status page
PHP-FPM может сам показать живую статистику по пулам и воркерам. Для этого нужно посетить страницу
Пример вывода:
Что это значит по-человечески:
* listen queue — сколько запросов ждут воркера.
* idle processes — свободные воркеры. Если всегда
* active processes — кто-то реально что-то делает.
* max children reached > 0 — пул упирался в лимит
* slow requests > 0 — смотри slowlog, код тормозит.
Как включить
В
В nginx добавь:
Перезапусти FPM и nginx, затем:
Можно и
А
📘 Документация: https://www.php.net/manual/en/fpm.status.php
🚀 Пост Guru PHP: @msavin_dev
PHP-FPM может сам показать живую статистику по пулам и воркерам. Для этого нужно посетить страницу
/fpm-statusПример вывода:
pool: www
process manager: dynamic
listen queue: 0
idle processes: 3
active processes: 2
max children reached: 0Что это значит по-человечески:
* listen queue — сколько запросов ждут воркера.
0 — отлично.* idle processes — свободные воркеры. Если всегда
0 — не хватает процессов.* active processes — кто-то реально что-то делает.
* max children reached > 0 — пул упирался в лимит
pm.max_children.* slow requests > 0 — смотри slowlog, код тормозит.
Как включить
В
www.conf (или другом пуле):pm.status_path = /fpm-status
ping.path = /ping
ping.response = pong
В nginx добавь:
location = /fpm-status {
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
allow 127.0.0.1; deny all;
}Перезапусти FPM и nginx, затем:
curl http://127.0.0.1/fpm-status
Можно и
?full — покажет все процессы с PID, временем работы и запросом. Также можно менять формат вывода статистикиА
/ping пригодится для health-check.📘 Документация: https://www.php.net/manual/en/fpm.status.php
Please open Telegram to view this post
VIEW IN TELEGRAM
www.php.net
PHP: Status Page - Manual
❤2🔥2
#Собес #transaction #pdo #mysql
🤔 Как выполнять транзакции в PHP с MySQL?
💬 Кратко:
Транзакции позволяют выполнять несколько запросов к базе данных как единое целое. Если один из запросов завершится неудачей, можно откатить изменения. В PHP транзакции реализуются через MySQLi или PDO, с использованием методов
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как выполнять транзакции в PHP с MySQL?
💬 Кратко:
Транзакции позволяют выполнять несколько запросов к базе данных как единое целое. Если один из запросов завершится неудачей, можно откатить изменения. В PHP транзакции реализуются через MySQLi или PDO, с использованием методов
beginTransaction, commit и rollBack.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍2
#Собес #ipsec #layer_3 #encryption
🤔 На каком уровне работает IPsec?
💬 Кратко:
IPsec работает на 3-м уровне модели OSI (сетевом уровне). Он обеспечивает защиту данных на уровне IP-пакетов с использованием методов шифрования и аутентификации.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 На каком уровне работает IPsec?
💬 Кратко:
IPsec работает на 3-м уровне модели OSI (сетевом уровне). Он обеспечивает защиту данных на уровне IP-пакетов с использованием методов шифрования и аутентификации.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#podcast #всё
📚 TeachMeSkills IT-школа
Это серия выпусков от "TeachMeSkills Школа программирования"
Речь пойдет об актуальные направления и технологии в IT; перспективы роста начинающих специалистов; холиварные топики из жизни разработчиков.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 TeachMeSkills IT-школа
Это серия выпусков от "TeachMeSkills Школа программирования"
Речь пойдет об актуальные направления и технологии в IT; перспективы роста начинающих специалистов; холиварные топики из жизни разработчиков.
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #debugging #xdebug #logging
🤔 Как отлаживать PHP-приложение?
💬 Кратко:
Для отладки можно использовать встроенные функции PHP, такие как
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как отлаживать PHP-приложение?
💬 Кратко:
Для отладки можно использовать встроенные функции PHP, такие как
var_dump() и error_reporting(), а также более сложные инструменты вроде Xdebug для работы с точками останова и трассировками. Логирование ошибок и профилирование кода также играют ключевую роль.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#Собес #register #boot #laravel
🤔 Что такое сервис-провайдеры в Laravel?
💬 Кратко:
Сервис-провайдеры в Laravel — это центральное место для конфигурации приложения и его сервисов. Они используются для регистрации и инстанцирования зависимостей и выполнения действий при старте приложения. Провайдеры содержат два ключевых метода:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое сервис-провайдеры в Laravel?
💬 Кратко:
Сервис-провайдеры в Laravel — это центральное место для конфигурации приложения и его сервисов. Они используются для регистрации и инстанцирования зависимостей и выполнения действий при старте приложения. Провайдеры содержат два ключевых метода:
register для регистрации сервисов и boot для выполнения кода после того, как все сервисы будут зарегистрированы.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #docker #entrypoint #caching
🤔 Какие типовые проблемы возникают при работе с Docker?
💬 Кратко:
Типичные проблемы — большие образы, утечки ресурсов, ошибки в Dockerfile, проблемы с кэшированием, конфликт портов, неправильная работа томов и зависимость от окружения. Также нередко возникают сложности с безопасностью.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Какие типовые проблемы возникают при работе с Docker?
💬 Кратко:
Типичные проблемы — большие образы, утечки ресурсов, ошибки в Dockerfile, проблемы с кэшированием, конфликт портов, неправильная работа томов и зависимость от окружения. Также нередко возникают сложности с безопасностью.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1