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

Связь: @devmangx
Download Telegram
💡 PHP совет: Знаете ли вы, что в PHP можно пропустить выражение инициализации внутри традиционного цикла for, если переменная уже была инициализирована?

Например, если переменная передана в функцию в качестве параметра, её можно использовать для инициализации цикла for без дополнительного объявления.

Это небольшая синтаксическая особенность, но довольно интересное поведение языка, о котором стоит знать.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤔3
Создание приложения для управления файлами — отличный способ изучить важные концепции программирования.

В этом курсе вы создадите клон Google Drive с использованием Laravel, PHP и Vue.js.

Вы реализуете загрузку и скачивание файлов, создадите функцию поиска, интегрируете AWS и многое другое.

👉 Ссылка на курс

👉 @PHPgx | #курсы #en
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
⚙️ phpCacheAdmin v2 — это веб-админка на PHP для Redis, Memcached, APCu, OPCache и Realpath.

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

Простая установка без базы данных
Поддержка Docker
Гибкая конфигурация через config.php или ENV

Подробнее: GitHub

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
#Laravel

Новый метод withAttributes теперь доступен для отношений и локальных областей видимости.

Он добавляет WHERE-условие к запросу с указанными атрибутами и автоматически применяет их к моделям, созданным через отношение или область видимости. Очень удобно! 👍

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3🤔1
TwigStan — это статический анализатор для шаблонов Twig, основанный на PHPStan.

Он компилирует Twig-шаблоны в PHP-код, оптимизирует его и анализирует с помощью PHPStan, сообщая об ошибках с указанием исходного шаблона и номера строки

❗️Проект находится на экспериментальной стадии

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
💡 Быстрый совет по Laravel

Нужно легко подсчитать уникальные значения столбца в модели Eloquent? Вот удобный способ сделать это.

Обратите внимание, что этот метод нужно разместить в базовой модели, от которой будут наследоваться другие модели.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
This media is not supported in your browser
VIEW IN TELEGRAM
Обнаружил интерактивную игрушку — SQL Murder Mystery

Это квест, где нужно раскрыть убийство в городе SQL City с помощью SQL-запросов. Начинаешь с обрывков улик и шаг за шагом собираешь доказательства, чтобы вычислить преступника.

Если вы новичок в SQL, не беда — для вас подготовлен специальный пошаговый гид. А для опытных сыщиков сразу доступны данные для расследования.

Короче, если хотите совместить приятное с полезным и прокачать свои SQL-скиллы в увлекательной форме, рекомендую попробовать: https://mystery.knightlab.com/

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122
PHP 8.4 поставляется с удобным классом для работы с числами с плавающей запятой, который предлагает:

🔹максимальную точность
🔹объектно-ориентированный подход
🔹неизменяемые объекты
🔹удобные цепочные операции

Этот класс является частью расширения BCMath, которое обычно включено по умолчанию

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥2
💡 Быстрый совет по Laravel: Ограничение скорости выполнения задач

Когда-нибудь приходилось ограничивать частоту выполнения задач?

Будь то защита API от перегрузки или ограничение количества задач для пользователей бесплатного тарифа, Laravel позволяет легко задавать лимиты и использовать их прямо из коробки

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
Секреты стройности монолита: подходы по снятию нагрузки с БД

Статья описывает, как команда Яндекс Еды оптимизировала свой монолитный PHP-сервис, снизив нагрузку на MySQL

Основные проблемы включали высокую загрузку CPU и памяти, сложность управления изменениями в структуре базы данных и срабатывание механизма Flow Control в Galera Cluster, что приводило к задержкам и сбоям в обслуживании запросов.

Для решения этих проблем команда распределила ответственность за таблицы между командами, анализировала медленные запросы с помощью утилиты pt-query-digest и внедрила различные оптимизации, включая использование кэширования и денормализацию данных

В результате удалось значительно снизить нагрузку на базу данных и улучшить производительность системы

👉 Подробнее

➡️ @PHPgx | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥1
Общие табличные выражения (CTE) в MySQL позволяют писать более чистые и удобные для поддержки запросы, создавая временные именованные наборы результатов.

Вместо вложенных подзапросов CTE можно использовать во многих случаях

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
True Async

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

Согласно этому предложению, можно будет писать код следующего вида:

Async\run(function() {

$fiber = Async\async(function() {
sleep(1);
return "Fiber completed!";
});

// Выполнение приостанавливается, пока fiber не завершится
$result = Async\await($fiber);

echo $result . "\n";

echo "Done!\n";
});

Это похоже на async/await в JavaScript и работает через механизм Event Loop.

На данный момент для написания асинхронного кода в PHP используют генераторы, Fiber (начиная с версии 8.1), а также решения вроде Swoole, AMPHP, ReactPHP.

RFC:
https://wiki.php.net/rfc/true_async

➡️ @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍302🤯2
Только недавно узнал, что namespace можно использовать как ссылку на текущий неймспейс 🤯

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤯8👀2
🔒 Знаете ли вы, что можно получить список маршрутов, зарегистрированных пакетами в ваших Laravel-приложениях?

Вы можете сделать это, выполнив команду:

php artisan route:list --only-vendor


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

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141🤯1
Крутеший ресурс, если хочешь выучить SQL на практике и с нуля

Это интерактивные уроки прямо в браузере, без регистрации и бесплатно. Всё подается шаг за шагом: от базовых запросов до более сложных тем, таких как JOIN и агрегации

Весь процесс строится на упражнениях, так что теорию сразу применяешь на практике

Ссылка: https://sqlbolt.com/

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
💡 Совет по PHP для массовой замены строк

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

Источник этого фрагмента кода: GitHub

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍183😁1
Часто при демонстрации нашего проекта заинтересованным сторонам мы заполняем базу данных фиктивными данными с помощью библиотеки Faker для PHP.

Но иногда заинтересованным сторонам сложно воспринимать данные, так как по умолчанию библиотека Faker генерирует их в формате локали en_US.

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

В моем случае я обычно устанавливаю APP_FAKER_LOCALE в ru_RU, после чего Faker начинает генерировать данные, более приближенные к русскому формату.

#laravel #php

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍213
Одна из самых подробных и полезных шпаргалок для Backend-разработчиков на русском языке.

Всё, что нужно, собрано в одном месте: как устроен интернет, как работают ПК, базы данных, API, тестирование и куча всего ещё

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

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95🔥2👀2