#полезное
🏠 Создаем свой пакет на PHP
Пошаговое руководство по созданию пакета на «чистом» PHP: от структуры проекта и настройки composer.json до использования статических анализаторов, тестов, CI‑скриптов с GitHub Actions и публикации пакета на Packagist
Хабр
👉 Новости 👉 База вопросов
Пошаговое руководство по созданию пакета на «чистом» PHP: от структуры проекта и настройки composer.json до использования статических анализаторов, тестов, CI‑скриптов с GitHub Actions и публикации пакета на Packagist
Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #postgres
🤔 Что такое СТЕ (Common Table Expressions) в PostgreSQL?
💬 Кратко:
СТЕ - это временные результаты, определённые в запросе для упрощения сложных операций. Они создаются с помощью ключевого слова WITH и используются для улучшения читаемости и многократного использования промежуточных данных.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
СТЕ - это временные результаты, определённые в запросе для упрощения сложных операций. Они создаются с помощью ключевого слова WITH и используются для улучшения читаемости и многократного использования промежуточных данных.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
Pestphp
Pest v4 Is Here — Now with Browser Testing | Pest - The elegant PHP Testing Framework
Today, we're thrilled to announce Pest v4 — our biggest release yet, featuring powerful new browser testing with parallel support and full Laravel integration.
❤1
#полезное
🤯 Filament v4 официально в стабильной версии и уже в проде
Обзор фич: https://filamentphp.com/content/leandrocfe-whats-new-in-filament-v4
👉 Новости 👉 База вопросов
Обзор фич: https://filamentphp.com/content/leandrocfe-whats-new-in-filament-v4
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #postgres
🤔 Какие есть типы соединений (JOIN) в PostgreSQL?
💬 Кратко:
PostgreSQL поддерживает четыре основных типа соединений: INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL OUTER JOIN. Они используются для объединения данных из нескольких таблиц, выбирая соответствующие или все записи в зависимости от типа соединения.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
PostgreSQL поддерживает четыре основных типа соединений: INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL OUTER JOIN. Они используются для объединения данных из нескольких таблиц, выбирая соответствующие или все записи в зависимости от типа соединения.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
👋 Рост PHP впечатляет
От
Они делают код чище, безопаснее и выразительнее. Никаких побочных эффектов от указателей
👉 Новости 👉 База вопросов
От
reset() к array_key_first(), а теперь в PHP 8.5 появляются array_first() и array_last()Они делают код чище, безопаснее и выразительнее. Никаких побочных эффектов от указателей
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😇 Совет по Laravel
В email-уведомлениях нельзя использовать два
Вместо этого превратите их в ссылки через несколько вызовов
👉 Новости 👉 База вопросов
В email-уведомлениях нельзя использовать два
->action() — отобразится только последний (и ошибок при этом вы не увидите).Вместо этого превратите их в ссылки через несколько вызовов
->line()Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #postgres
🤔 Что такое таблицы с наследованием в PostgreSQL и зачем они нужны?
💬 Кратко:
В PostgreSQL таблицы могут наследовать структуру и данные другой таблицы, что полезно для разделения данных или создания иерархий. Например, можно создать таблицы для разных типов пользователей, которые наследуют общие поля из родительской таблицы.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
В PostgreSQL таблицы могут наследовать структуру и данные другой таблицы, что полезно для разделения данных или создания иерархий. Например, можно создать таблицы для разных типов пользователей, которые наследуют общие поля из родительской таблицы.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😎 Совет по Laravel
Используйте
Генерируйте файлы "на лету" и стримьте их напрямую пользователю.
Документация: https://laravel.com/docs/12.x/responses#streamed-downloads
👉 Новости 👉 База вопросов
Используйте
response()->streamDownload(), чтобы создавать загрузки без записи на диск.Генерируйте файлы "на лету" и стримьте их напрямую пользователю.
Документация: https://laravel.com/docs/12.x/responses#streamed-downloads
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😱 Появился новый пакет под названием Laravel Zap. Это планировщик событий, который отлично подходит для:
- событий и встреч,
- повторяющихся задач,
- управления доступностью,
- детекции конфликтов.
👉 Новости 👉 База вопросов
- событий и встреч,
- повторяющихся задач,
- управления доступностью,
- детекции конфликтов.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #postgres
🤔 Какие существуют типы индексов в PostgreSQLu когда их использовать?
💬 Кратко:
PostgreSQL поддерживает несколько типов индексов: B-Tree, Hash, GIN, GiST, BRIN, и SP-GiST. B-Tree подходит для поиска равенства и диапазона, Hash - только для равенства, GIN и GiST - для полнотекстового поиска, а BRIN оптимален для больших таблиц с последовательными данными.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
PostgreSQL поддерживает несколько типов индексов: B-Tree, Hash, GIN, GiST, BRIN, и SP-GiST. B-Tree подходит для поиска равенства и диапазона, Hash - только для равенства, GIN и GiST - для полнотекстового поиска, а BRIN оптимален для больших таблиц с последовательными данными.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 721. Accounts Merge
Дан список аккаунтов, в котором каждый элемент accounts[i] - это список строк, где первый элемент accounts[i][0] - это имя, а остальные элементы - это email, представляющие электронную почту аккаунта. Теперь мы хотим объединить эти аккаунты. Два аккаунта определенно принадлежат одному человеку, если у обоих аккаунтов есть какой-то общий email. Обратите внимание, что даже если два аккаунта имеют одинаковое имя, они могут принадлежать разным людям, поскольку у людей могут быть одинаковые имена. Изначально у человека может быть любое количество счетов, но все его счета обязательно должны иметь одинаковое имя. После объединения счетов верните счета в следующем формате: первый элемент каждого счета - имя, а остальные элементы - электронные письма в отсортированном порядке. Сами аккаунты могут быть возвращены в любом порядке.
Пример:
👨💻 Алгоритм:
1⃣ Создайте граф, в котором узлы представляют email-адреса, а ребра соединяют email-адреса, принадлежащие одному аккаунту.
2⃣ Пройдите по графу, чтобы найти все связанные компоненты, которые представляют объединенные аккаунты.
3⃣ Для каждой связанной компоненты, соберите email-адреса, отсортируйте их и добавьте имя пользователя в начало списка.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 721. Accounts Merge
Дан список аккаунтов, в котором каждый элемент accounts[i] - это список строк, где первый элемент accounts[i][0] - это имя, а остальные элементы - это email, представляющие электронную почту аккаунта. Теперь мы хотим объединить эти аккаунты. Два аккаунта определенно принадлежат одному человеку, если у обоих аккаунтов есть какой-то общий email. Обратите внимание, что даже если два аккаунта имеют одинаковое имя, они могут принадлежать разным людям, поскольку у людей могут быть одинаковые имена. Изначально у человека может быть любое количество счетов, но все его счета обязательно должны иметь одинаковое имя. После объединения счетов верните счета в следующем формате: первый элемент каждого счета - имя, а остальные элементы - электронные письма в отсортированном порядке. Сами аккаунты могут быть возвращены в любом порядке.
Пример:
nput: accounts = [["John","[email protected]","[email protected]"],["John","[email protected]","[email protected]"],["Mary","[email protected]"],["John","[email protected]"]]
Output: [["John","[email protected]","[email protected]","[email protected]"],["Mary","[email protected]"],["John","[email protected]"]]
function accountsMerge($accounts) {
$emailToName = [];
$graph = [];
foreach ($accounts as $account) {
$name = $account[0];
$firstEmail = $account[1];
foreach (array_slice($account, 1) as $email) {
if (!isset($graph[$firstEmail])) $graph[$firstEmail] = [];
if (!isset($graph[$email])) $graph[$email] = [];
$graph[$firstEmail][] = $email;
$graph[$email][] = $firstEmail;
$emailToName[$email] = $name;
}
}
$seen = [];
$mergedAccounts = [];
foreach ($emailToName as $email => $name) {
if (!isset($seen[$email])) {
$emails = [];
$stack = [$email];
while (!empty($stack)) {
$node = array_pop($stack);
if (!isset($seen[$node])) {
$seen[$node] = true;
$emails[] = $node;
foreach ($graph[$node] as $neighbor) {
$stack[] = $neighbor;
}
}
}
sort($emails);
$mergedAccounts[] = array_merge([$name], $emails);
}
}
return $mergedAccounts;
}Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 494. Target Sum
Вам дан массив целых чисел nums и целое число target.
Вы хотите создать выражение из nums, добавляя один из символов '+' или '-' перед каждым числом в nums, а затем объединяя все числа.
Например, если nums = [2, 1], вы можете добавить '+' перед 2 и '-' перед 1, а затем объединить их, чтобы получить выражение "+2-1".
Верните количество различных выражений, которые можно построить и которые оцениваются в target.
Пример:
👨💻 Алгоритм:
1⃣ Инициализация и вызов рекурсивной функции
Создайте переменную для хранения количества решений (count). Вызовите рекурсивную функцию calculate с начальными параметрами (nums, начальный индекс 0, начальная сумма 0, и target).
2⃣ Рекурсивная функция calculate
Если текущий индекс равен длине массива, проверьте, равна ли текущая сумма значению target. Если да, увеличьте счетчик решений. В противном случае, вызовите функцию рекурсивно дважды: добавляя и вычитая текущее значение из суммы.
3⃣ Возврат результата
После завершения всех рекурсивных вызовов верните значение счетчика решений.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 494. Target Sum
Вам дан массив целых чисел nums и целое число target.
Вы хотите создать выражение из nums, добавляя один из символов '+' или '-' перед каждым числом в nums, а затем объединяя все числа.
Например, если nums = [2, 1], вы можете добавить '+' перед 2 и '-' перед 1, а затем объединить их, чтобы получить выражение "+2-1".
Верните количество различных выражений, которые можно построить и которые оцениваются в target.
Пример:
Input: nums = [1,1,1,1,1], target = 3
Output: 5
Explanation: There are 5 ways to assign symbols to make the sum of nums be target 3.
-1 + 1 + 1 + 1 + 1 = 3
+1 - 1 + 1 + 1 + 1 = 3
+1 + 1 - 1 + 1 + 1 = 3
+1 + 1 + 1 - 1 + 1 = 3
+1 + 1 + 1 + 1 - 1 = 3
Создайте переменную для хранения количества решений (count). Вызовите рекурсивную функцию calculate с начальными параметрами (nums, начальный индекс 0, начальная сумма 0, и target).
Если текущий индекс равен длине массива, проверьте, равна ли текущая сумма значению target. Если да, увеличьте счетчик решений. В противном случае, вызовите функцию рекурсивно дважды: добавляя и вычитая текущее значение из суммы.
После завершения всех рекурсивных вызовов верните значение счетчика решений.
class Solution {
private $count = 0;
function findTargetSumWays($nums, $S) {
$this->calculate($nums, 0, 0, $S);
return $this->count;
}
private function calculate($nums, $i, $sum, $S) {
if ($i == count($nums)) {
if ($sum == $S) {
$this->count++;
}
} else {
$this->calculate($nums, $i + 1, $sum + $nums[$i], $S);
$this->calculate($nums, $i + 1, $sum - $nums[$i], $S);
}
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
LeetCode
Minimum Size Subarray Sum - LeetCode
Can you solve this real interview question? Minimum Size Subarray Sum - Given an array of positive integers nums and a positive integer target, return the minimal length of a subarray whose sum is greater than or equal to target. If there is no such subarray…
👍1
#полезное
🥱 Совет по Laravel
Используй
Отлично подходит для показа PDF или документов прямо внутри страницы.
Документация: https://laravel.com/docs/12.x/responses#file-responses
Обрати внимание: поддержка зависит от браузера и пользовательских настроек.
👉 Новости 👉 База вопросов
Используй
response()->file(), чтобы отображать файлы в браузере вместо их скачиванияОтлично подходит для показа PDF или документов прямо внутри страницы.
Документация: https://laravel.com/docs/12.x/responses#file-responses
Обрати внимание: поддержка зависит от браузера и пользовательских настроек.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #postgres
🤔 Что такое таблица в PostgreSQL и как её создать?
💬 Кратко:
Таблица в PostgreSQL — это структура, используемая для хранения данных в виде строк и столбцов. Для создания таблицы используется команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Таблица в PostgreSQL — это структура, используемая для хранения данных в виде строк и столбцов. Для создания таблицы используется команда
CREATE TABLE имя таблицы (список_ столбцов) ; .📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵 Pest v4 уже здесь. Теперь с поддержкой браузерного тестирования
Браузерные тесты, которые ощущаются как unit-тесты: готовые к использованию в Laravel, работающие на Playwright, сверхбыстрые благодаря параллельному запуску, со встроенными smoke- и визуальными регрессионными тестами
https://pestphp.com/docs/pest-v4-is-here-now-with-browser-testing
👉 Новости 👉 База вопросов
Браузерные тесты, которые ощущаются как unit-тесты: готовые к использованию в Laravel, работающие на Playwright, сверхбыстрые благодаря параллельному запуску, со встроенными smoke- и визуальными регрессионными тестами
https://pestphp.com/docs/pest-v4-is-here-now-with-browser-testing
Please open Telegram to view this post
VIEW IN TELEGRAM
