PHP Portal | Программирование
4.85K subscribers
408 photos
20 videos
2 files
209 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для PHP-разработчика

Связь: @devmangx
Download Telegram
Media is too big
VIEW IN TELEGRAM
Развертывание PHP-приложения с помощью docker compose в продакшн

Подробно объясняется настройка окружения, конфигурация Docker Compose для PHP-приложения и процесс его деплоя на GCP

🔜 Видео на YouTube

🔜 Статья

👉 @PHPgx | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
This media is not supported in your browser
VIEW IN TELEGRAM
Шпаргалка по современному PHP

Краткое изложение всех замечательных возможностей PHP

🔜 Здесь

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
PHP 8.4 выпущен 🤩

Все изменения можно найти на сайте

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🏆3🔥1
💻Как нам хранить числа с плавающей запятой в базе данных?

Для этого существует несколько типов данных:

MySQL: float, double, decimal
PostgreSQL: real, double, numeric

decimal и numeric — это одно и то же, как и float и real.

float (real)
Использует 4 байта памяти.
Хранится в двоичном (бинарном) формате, поэтому могут возникать небольшие неточности при выполнении арифметических операций или округлении.

double
Использует 8 байт памяти.
Хранится в двоичном формате, позволяет хранить большие числа по сравнению с float, а также обладает более высокой точностью. Однако все равно могут быть неточности.

decimal (numeric)
Использует переменное количество памяти. Например, DECIMAL(12, 6) использует 6 байт памяти.
Числа хранятся в бинарном формате отдельно для целой и дробной части, что позволяет точно хранить числа без потерь. Неточностей при вычислениях не возникает.

Вывод:

float|real:
🟢 высокая скорость вычислений;
🟢 занимает меньше памяти;
🔴 неточность.

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

double:
🟢 высокая скорость вычислений;
🟢 позволяет хранить более крупные числа и более точно, чем float;
🔴 занимает больше памяти;
🔴 неточность.

Использовать, если возможностей float недостаточно.

decimal|numeric:
🟢 высокая точность;
🔴 более низкая скорость вычислений;
🔴 занимает больше памяти (переменное количество).

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

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
This media is not supported in your browser
VIEW IN TELEGRAM
Полезно для подготовки к собеседованию на PHP-разработчика 🔥

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

🔜 Здесь

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🔥1
Сравнение Eloquent и DB Facade

Я сравнил использование Eloquent и DB facade для получения одного отчета. За месяц в базе данных примерно 27 тысяч строк. Это не так много данных, но разница заметная.

Результаты:

Использование памяти:

Eloquent: 93,6 MB
DB: 14,7 MB
Время отклика:

Eloquent: 1260 ms
DB: 320 ms
Выводы:

Для работы с большими объемами данных рекомендуется использовать DB facade, так как он использует меньше памяти и работает быстрее.
Для работы с меньшими или средними объемами данных Eloquent будет удобнее. Помимо таких удобств, как модели и отношения, код на Eloquent будет короче и понятнее.

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

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Laravel Package

Удобный каталог полезных инструментов Laravel

Ссылка: тык

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
Разработка веб-приложений на PHP 8

Автор: Колесниченко Д.
Год: 2024

📂 Скачать книгу

👉 @PHPgx | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👎1😁1
💡 SQLite имеет потрясающую функциональность для добавления функций, написанных на PHP.

А PDO, который использует Laravel, поддерживает это!

Кто-нибудь пробовал добавить такую поддержку в Laravel? Было бы очень полезно, если бы пакеты могли добавлять функции для использования 🔥

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
😂

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
😁26👍6
Интересный проект: Laravel Pulse

Инструмент для мониторинга работы Laravel приложени, что-то вроде Sentry/Flare + New Relic на минималке

Ссылка: тык

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Laravel. Полное руководство, 3-е изд.

Автор: Мэтт Стаффер
Год: 2024

📂 Скачать книгу

👉 @PHPgx | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5
💡 Laravel разработчики, упростите загрузку файлов с этим инструментом!

Используйте Storage::download(), чтобы принудительно запустить скачивание файла в браузере. Отлично подходит для защищенных файлов или генерации динамических загрузок.

Совет: Настройте имя файла и заголовки для большего контроля.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Официальный мануал по PHP освоило новый трюк: теперь вы можете запускать примеры кода на PHP прямо на сайте благодаря WASM!

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥61
💡 Всегда радует этот небольшой рефактор для простых циклов «accumulation».

Вы можете сразу же оптимизировать его с помощью встроенной в PHP функции `array_filter`. Больше ничего не требуется.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔3
Prism

Это мощный пакет Laravel для интеграции больших языковых моделей (LLM) в ваши приложения.

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

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Как генерировать случайные числа в PHP: безопасно и эффективно

В PHP есть множество способов создать случайное число, но важно выбирать метод в зависимости от задачи. Давайте разберем основные подходы.

1️⃣ Для базовых задач: rand() и mt_rand()

Если вам нужно случайное число для простых сценариев, например, выбора победителя в игре, используйте:
$randomNumber = rand(1, 100); // Число от 1 до 100


Или его более быстрый аналог:
$randomNumber = mt_rand(1, 100);


⚠️ Предупреждение: Эти функции не подходят для криптографически безопасных операций, таких как генерация токенов или паролей.

2️⃣ Для безопасности: random_int()
Начиная с PHP 7, для безопасной генерации случайных чисел появился random_int():
$safeRandomNumber = random_int(1, 100);


🔸Эта функция использует криптографически безопасные источники энтропии.
🔸Рекомендуется для задач, где важно исключить предсказуемость (например, сессии, API-ключи).

3️⃣ Генерация взвешенных случайных чисел

Если вы хотите дать некоторым значениям больше шансов на выбор, воспользуйтесь алгоритмом взвешенной случайности. Например:
$options = ['A' => 1, 'B' => 2, 'C' => 3]; // Шансы: A - 1, B - 2, C - 3
$totalWeight = array_sum($options);

$random = random_int(1, $totalWeight);
foreach ($options as $key => $weight) {
if ($random <= $weight) {
echo "Выбрано: $key";
break;
}
$random -= $weight;
}


Вывод
🔸Используйте random_int() для критичных задач.
🔸Простые rand() или mt_rand() подойдут для игр и тестов.
🔸Добавьте взвешенность, если некоторым значениям нужно придать больший приоритет.

Генерируйте случайные числа правильно и безопасно! 🎹

👉 @PHPgx | #заметки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍181
Dead code detector

Библиотека для обнаружения неиспользуемого кода с помощью расширения PHPStan. Обнаруживает мертвые циклы, поддерживает такие библиотеки, как Symfony, Doctrine, PHPUnit и др. Может автоматически удалять неиспользуемый PHP-код.

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Работа с датой и временем в PHP: просто и эффективно

Дата и время — одни из самых востребованных инструментов в веб-разработке. PHP предлагает множество встроенных функций и классов для работы с ними. Давайте разберем основные.

1️⃣Получение текущей даты и времени

Самый простой способ узнать текущее время:
echo date('Y-m-d H:i:s'); // Текущая дата и время в формате "2024-12-06 12:34:56"


Используя date(), можно кастомизировать формат. Примеры:
🔹Y — год (4 цифры)
🔹m — месяц
🔹d — день
🔹H — часы (24 часа)
🔹i — минуты
🔹s — секунды

2️⃣ Работа с объектами DateTime

Класс DateTime предлагает больше возможностей, чем простая функция date():
$now = new DateTime();
echo $now->format('Y-m-d H:i:s'); // Текущая дата и время

Установить дату и время вручную:
$date = new DateTime('2023-01-01 10:00:00');
echo $date->format('d-m-Y H:i'); // 01-01-2023 10:00


3️⃣ Вычисление разницы между датами

Чтобы узнать разницу между двумя датами, используйте метод diff():
$start = new DateTime('2023-01-01');
$end = new DateTime('2024-12-06');

$interval = $start->diff($end);
echo $interval->format('%y лет, %m месяцев, %d дней'); // "1 лет, 11 месяцев, 5 дней"


4️⃣ Добавление или вычитание времени

Добавлять или вычитать дни, месяцы и годы можно с помощью modify():
$date = new DateTime('2024-12-06');
$date->modify('+10 days'); // Добавляем 10 дней
echo $date->format('Y-m-d'); // 2024-12-16

$date->modify('-2 months'); // Вычитаем 2 месяца
echo $date->format('Y-m-d'); // 2024-10-16


5️⃣ Учет часовых поясов

Работать с разными часовыми поясами тоже легко:
$date = new DateTime('now', new DateTimeZone('America/New_York'));
echo $date->format('Y-m-d H:i:s'); // Дата и время в Нью-Йорке

Сменить часовой пояс:
$date->setTimezone(new DateTimeZone('Asia/Tokyo'));
echo $date->format('Y-m-d H:i:s'); // Дата и время в Токио


6️⃣ Преобразование строк в дату

Используйте DateTime::createFromFormat(), чтобы разобрать строку:
$date = DateTime::createFromFormat('d.m.Y', '06.12.2024');
echo $date->format('Y-m-d'); // 2024-12-06


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

Если хотите подробнее разобраться с календарями или локализацией даты, дайте знать💙

👉 @PHPgx | #заметки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍165🌚2
Подборка шпаргалок по работе с Git: на заметку разработчику

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1👀1