Контроль времени обработки кода в PHP с помощью Time Warden
Time Warden — это легкая PHP-библиотека, позволяющая отслеживать время обработки задач и предпринимать действия при превышении заданных порогов времени выполнения.
Эта библиотека имеет отличную документацию в readme проекта, которая вкратце предлагает следующие возможности:
🔸Мониторинг времени обработки критических задач при разработке и отладке
🔸Реактивные действия при превышении времени (миллисекунды, секунды, минуты и часы)
🔸Отладочный вывод времени выполнения
🔸Измерение времени выполнения отдельной задачи и групп задач
🔸Библиотека, не зависящая от фреймворка, которую можно использовать с Laravel, Symfony, автономно и т.д.
🔸PHP 8.2+
Time Warden — это легкая PHP-библиотека, позволяющая отслеживать время обработки задач и предпринимать действия при превышении заданных порогов времени выполнения.
Эта библиотека имеет отличную документацию в readme проекта, которая вкратце предлагает следующие возможности:
🔸Мониторинг времени обработки критических задач при разработке и отладке
🔸Реактивные действия при превышении времени (миллисекунды, секунды, минуты и часы)
🔸Отладочный вывод времени выполнения
🔸Измерение времени выполнения отдельной задачи и групп задач
🔸Библиотека, не зависящая от фреймворка, которую можно использовать с Laravel, Symfony, автономно и т.д.
🔸PHP 8.2+
❤5👍2🔥2
Краткая база для всех, кто работает с Linux.
В этом видео мы разыгрываем 3 крутые книги по Linux:
- Внутреннее устройство Linux. 3-е изд. | Кетов Дмитрий
- Unix и Linux: руководство системного администратора | Хейн Трент Р., Макин Дэн
- Командная строка Linux. Полное руководство. 2-е межд. изд. | Шоттс Уильям
Подписывайтесь на канал, оставляйте осмысленный комментарий под видео и выигрывайте эти крутые книги!
https://www.youtube.com/watch?v=FP8UwvEe3Cs
@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥2
https://uproger.com/luchshie-vvodnye-kursy-i-knigi-po-php-dlya-izucheniya-yazyka-s-nulya-v-2024-godu/
@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤5🔥4
💡 Совет по Laravel
Знаете ли вы, что метод
Знаете ли вы, что метод
whereAny(),
может осуществлять поиск по нескольким столбцам, используя логику OR.
@phpshka👍17🔥4❤3👎1
💡 Совет по Laravel
Создайте свой собственный метод
@phpshka
Создайте свой собственный метод
Blade Directive
! Это очень просто - просто добавьте свой собственный метод в app/Providers/AppServiceProvider.php.@phpshka
👍8❤2🔥1
🎓 Архив открытых курсов прямо в телеграм!
Вот огромная база материалов, которая пополлняется каждый день!
>Python (96гб видео)
>PHP (196гб видео)
>C# (45гб курсов)
>Английский (101гб курсов)
>Java (23гб видео)
>PHP (43гб видео)
>Мобильная разработка (22гб курсов)
>Go ( 132гб видео)
>Rust (35 гб видео)
>SQL (43гб видео)
>MySQL (31гб видео)
>Другое (234гб видео)
⛓ Крутейший Архив на 20241Гб: Курсов, книг, шпаргалок, стаетй, лекция ресурсы — всё собрано в одном месте: @datacours
Вот огромная база материалов, которая пополлняется каждый день!
>Python (96гб видео)
>PHP (196гб видео)
>C# (45гб курсов)
>Английский (101гб курсов)
>Java (23гб видео)
>PHP (43гб видео)
>Мобильная разработка (22гб курсов)
>Go ( 132гб видео)
>Rust (35 гб видео)
>SQL (43гб видео)
>MySQL (31гб видео)
>Другое (234гб видео)
⛓ Крутейший Архив на 20241Гб: Курсов, книг, шпаргалок, стаетй, лекция ресурсы — всё собрано в одном месте: @datacours
🔥5👎3❤1
Что такое простая фабрика?
Простая фабрика (Simple Factory) — это порождающий шаблон проектирования, который предоставляет интерфейс для создания объектов в зависимости от переданного типа или параметра. В контексте PHP, простая фабрика может быть использована для создания экземпляров классов без явного указания конкретного класса в коде.
Простая фабрика обычно содержит метод, который принимает параметр (например, строку или число), определяющий тип создаваемого объекта, и затем возвращает экземпляр соответствующего класса. Это упрощает процесс создания объектов и позволяет легко изменять создаваемый тип объекта без изменения кода, где объект используется.
#вопросы_с_собеседований
Простая фабрика (Simple Factory) — это порождающий шаблон проектирования, который предоставляет интерфейс для создания объектов в зависимости от переданного типа или параметра. В контексте PHP, простая фабрика может быть использована для создания экземпляров классов без явного указания конкретного класса в коде.
Простая фабрика обычно содержит метод, который принимает параметр (например, строку или число), определяющий тип создаваемого объекта, и затем возвращает экземпляр соответствующего класса. Это упрощает процесс создания объектов и позволяет легко изменять создаваемый тип объекта без изменения кода, где объект используется.
#вопросы_с_собеседований
👍12❤2🥱1
Ошибка Go-новичка: использовать Redis не на всю катушку
А чтобы уметь на всю — приходите на бесплатный вебинар «Gони, Redis, Gони!» от Слёрма.
31 июля встречаемся с Виталием Лихачёвым, Ex-Avito Senior Software Engineer и SRE в booking.сom, чтобы поговорить про все варианты эксплуатации Redis, которые давно вышли за пределы key-value storage.
Обсудим:
▶ Вторичные индексы, распределенные блокировки, полнотекстовый поиск
▶ Паттерны использования Redis с примерами на Golang
▶ Работу Redis со стороны эксплуатации
Также в программе — ответы на ваши вопросы и подарки самым активным слушателям 🎁
🗓 31 июля в 19:00 по Москве
➡️ Регистрация на вебинар — с помощью бота
А чтобы уметь на всю — приходите на бесплатный вебинар «Gони, Redis, Gони!» от Слёрма.
31 июля встречаемся с Виталием Лихачёвым, Ex-Avito Senior Software Engineer и SRE в booking.сom, чтобы поговорить про все варианты эксплуатации Redis, которые давно вышли за пределы key-value storage.
Обсудим:
Также в программе — ответы на ваши вопросы и подарки самым активным слушателям 🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Redis намного лучше справляется с этой задачей.
Вы можете использовать Redis и команду планирования для поддержки синхронизации с MySQL на фиксированный интервал времени.
@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3❤🔥2
Алгоритмы в PHP: Deque (и круговые буферы + связанные списки)
PHP массивы хорошо подходят для многих задач, но операции добавления элементов в начало массива (array_unshift) являются медленными, поскольку требуют сдвига всего массива. Решение для этого проблемы — использование deque (двусторонней очереди).
Очереди и стеки
В программировании, очереди и стеки играют важную роль:
Очередь (FIFO): первый пришел — первый ушел. Работает как очередь в магазине.
Стек (LIFO): последний пришел — первый ушел. Работает как стопка тарелок.
Двусторонняя очередь (Deque)
Deque позволяет добавлять и удалять элементы с обоих концов с эффективностью O(1). Обычно реализуется на основе связанных списков или кольцевого буфера и идеально подходит для реализации функций отмены (undo).
Реализация кольцевого буфера
Для улучшения производительности можно использовать кольцевой буфер, что минимизирует затраты на операции добавления и удаления элементов. Кольцевой буфер использует два курсора (head и tail), что позволяет добавлять и удалять элементы с обоих концов массива.
Добавление элемента в начало буфера
🔸Проверить, заполнен ли буфер.
🔸Если курсор уже в начальной позиции, переместить его в конец массива.
🔸Иначе, декрементировать курсор.
🔸Добавить элемент в массив.
Добавление элемента в конец буфера
🔸Проверить, заполнен ли буфер.
🔸Если курсор уже в конце массива, переместить его в начало.
🔸Иначе, инкрементировать курсор.
🔸Добавить элемент в массив.
PHP массивы хорошо подходят для многих задач, но операции добавления элементов в начало массива (array_unshift) являются медленными, поскольку требуют сдвига всего массива. Решение для этого проблемы — использование deque (двусторонней очереди).
Очереди и стеки
В программировании, очереди и стеки играют важную роль:
Очередь (FIFO): первый пришел — первый ушел. Работает как очередь в магазине.
Стек (LIFO): последний пришел — первый ушел. Работает как стопка тарелок.
Двусторонняя очередь (Deque)
Deque позволяет добавлять и удалять элементы с обоих концов с эффективностью O(1). Обычно реализуется на основе связанных списков или кольцевого буфера и идеально подходит для реализации функций отмены (undo).
Реализация кольцевого буфера
Для улучшения производительности можно использовать кольцевой буфер, что минимизирует затраты на операции добавления и удаления элементов. Кольцевой буфер использует два курсора (head и tail), что позволяет добавлять и удалять элементы с обоих концов массива.
Добавление элемента в начало буфера
🔸Проверить, заполнен ли буфер.
🔸Если курсор уже в начальной позиции, переместить его в конец массива.
🔸Иначе, декрементировать курсор.
🔸Добавить элемент в массив.
Добавление элемента в конец буфера
🔸Проверить, заполнен ли буфер.
🔸Если курсор уже в конце массива, переместить его в начало.
🔸Иначе, инкрементировать курсор.
🔸Добавить элемент в массив.
👍14❤3😱1
⚡️Лучший способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
Машинное обучение: www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cpluspluc
Devops: www.tg-me.com/devOPSitsec
АНАЛИЗ Данных: www.tg-me.com/data_analysis_ml
Хакинг: www.tg-me.com/linuxkalii
Linux: www.tg-me.com/linuxacademiya
Базы данных: www.tg-me.com/sqlhub
C#: www.tg-me.com/csharp_ci
Golang: www.tg-me.com/Golang_google
Java: www.tg-me.com/javatg
React: www.tg-me.com/react_tg
Javascript: www.tg-me.com/javascriptv
Мобильная разработка: www.tg-me.com/mobdevelop
Docker: www.tg-me.com/+0WdB4uvOwCY0Mjdi
Python: www.tg-me.com/pythonl
Rust: www.tg-me.com/rust_code
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Big Data: www.tg-me.com/bigdatai
Собеседования МЛ: www.tg-me.com/machinelearning_interview
Python подготовка с собесу: www.tg-me.com/python_job_interview
МАТЕМАТИКА: www.tg-me.com/data_math
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
C++ папка: https://www.tg-me.com/addlist/CdBs5DLepLJmZjY6
C# папка: https://www.tg-me.com/addlist/u15AMycxRMowZmRi
Java папка: https://www.tg-me.com/addlist/ZM3J6oFNAnRlNWU6
FRONTEND папка: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
Linux папка: https://www.tg-me.com/addlist/w4Doot-XBG4xNzYy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
Арихив бесплатных ит-курсов: https://www.tg-me.com/+-YDHdeS5EEs3MDNi
Машинное обучение: www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cpluspluc
Devops: www.tg-me.com/devOPSitsec
АНАЛИЗ Данных: www.tg-me.com/data_analysis_ml
Хакинг: www.tg-me.com/linuxkalii
Linux: www.tg-me.com/linuxacademiya
Базы данных: www.tg-me.com/sqlhub
C#: www.tg-me.com/csharp_ci
Golang: www.tg-me.com/Golang_google
Java: www.tg-me.com/javatg
React: www.tg-me.com/react_tg
Javascript: www.tg-me.com/javascriptv
Мобильная разработка: www.tg-me.com/mobdevelop
Docker: www.tg-me.com/+0WdB4uvOwCY0Mjdi
Python: www.tg-me.com/pythonl
Rust: www.tg-me.com/rust_code
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Big Data: www.tg-me.com/bigdatai
Собеседования МЛ: www.tg-me.com/machinelearning_interview
Python подготовка с собесу: www.tg-me.com/python_job_interview
МАТЕМАТИКА: www.tg-me.com/data_math
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
C++ папка: https://www.tg-me.com/addlist/CdBs5DLepLJmZjY6
C# папка: https://www.tg-me.com/addlist/u15AMycxRMowZmRi
Java папка: https://www.tg-me.com/addlist/ZM3J6oFNAnRlNWU6
FRONTEND папка: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
Linux папка: https://www.tg-me.com/addlist/w4Doot-XBG4xNzYy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
Арихив бесплатных ит-курсов: https://www.tg-me.com/+-YDHdeS5EEs3MDNi
👍3❤2🔥1
AppMonitor: Удобный инструмент для мониторинга приложений на Android
Представляем вам AppMonitor — универсальное приложение для Android, которое позволит вам следить за активностью и производительностью приложений на вашем устройстве. Это идеальный инструмент для разработчиков, тестировщиков и пользователей, желающих получить больше информации о том, что происходит на их смартфоне.
Основные возможности:
-Мониторинг использования памяти и процессора для каждого приложения в реальном времени
-Подробные отчеты о потреблении ресурсов и активности приложений
-Оповещения о высоком потреблении ресурсов и потенциальных проблемах
-Исторические данные и графики для анализа долгосрочных трендов
Как использовать AppMonitor:
Установите AppMonitor из Google Play Store.
-Откройте приложение и предоставьте необходимые разрешения для мониторинга.
-Наблюдайте за активностью и производительностью приложений в режиме реального времени.
-Используйте отчеты и оповещения для оптимизации работы вашего устройства и приложений.
Преимущества использования AppMonitor:
-Оптимизация производительности: выявляйте приложения, которые потребляют слишком много ресурсов.
-Улучшение стабильности устройства: предотвращайте сбои и проблемы, связанные с перегрузкой системы.
-Анализ использования: получайте подробные данные для оценки и улучшения работы ваших приложений.
С AppMonitor вы получите полный контроль над производительностью ваших приложений и сможете оптимизировать работу вашего Android-устройства!
🗄 GitHub
@android_its
Представляем вам AppMonitor — универсальное приложение для Android, которое позволит вам следить за активностью и производительностью приложений на вашем устройстве. Это идеальный инструмент для разработчиков, тестировщиков и пользователей, желающих получить больше информации о том, что происходит на их смартфоне.
Основные возможности:
-Мониторинг использования памяти и процессора для каждого приложения в реальном времени
-Подробные отчеты о потреблении ресурсов и активности приложений
-Оповещения о высоком потреблении ресурсов и потенциальных проблемах
-Исторические данные и графики для анализа долгосрочных трендов
Как использовать AppMonitor:
Установите AppMonitor из Google Play Store.
-Откройте приложение и предоставьте необходимые разрешения для мониторинга.
-Наблюдайте за активностью и производительностью приложений в режиме реального времени.
-Используйте отчеты и оповещения для оптимизации работы вашего устройства и приложений.
Преимущества использования AppMonitor:
-Оптимизация производительности: выявляйте приложения, которые потребляют слишком много ресурсов.
-Улучшение стабильности устройства: предотвращайте сбои и проблемы, связанные с перегрузкой системы.
-Анализ использования: получайте подробные данные для оценки и улучшения работы ваших приложений.
С AppMonitor вы получите полный контроль над производительностью ваших приложений и сможете оптимизировать работу вашего Android-устройства!
🗄 GitHub
@android_its
❤5👍3🔥2
Domain Watchdog — это автономное приложение, использующее протокол RDAP для сбора и мониторинга общедоступной информации о доменных именах.
Приложение отслеживает историю доменов с момента их создания до выпуска в публичное пользование и автоматически покупает их, как только они становятся доступными после истечения срока регистрации.
Кроме того, инструмент обеспечивает детальный мониторинг доменов и организаций, которые ими управляют, предоставляя полную историю изменений владельцев и продлений.
Данные хранятся в SQL-базе данных, что позволяет избежать дублирования информации и оптимизировать использование пространства.
С учётом планов ICANN перейти на протокол RDAP вместо WHOIS к 2025 году, Domain Watchdog разрабатывается с учётом этого нового стандарта.
Пользователи могут создавать списки для отслеживания доменов, получать уведомления о любых изменениях и автоматически инициировать покупку через подключенные API-коннекторы.
▪Github
▪Demo
@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥2
В Laravel есть локальные и глобальные запросные области (query scopes), которые позволяют определять ограничения в запросах Eloquent, делая их повторно используемыми и более читаемыми.
Локальные области запросов необходимо применять вручную, а глобальные области запросов автоматически применяются ко всем запросам модели.
Please open Telegram to view this post
VIEW IN TELEGRAM
Laravel News
Learn to master Query Scopes in Laravel - Laravel News
In this article, we're going to take a look at local query scopes and global query scopes
👍7❤2
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
МАШИННОЕ ОБУЧЕНИЕ: www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cppsobes
Python: www.tg-me.com/pro_python_code
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/devOPSitsec
АНАЛИЗ Данных: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/javatg
Базы данных: www.tg-me.com/sqlhub
Linux: www.tg-me.com/linuxacademiya
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Docker: www.tg-me.com/DevopsDocker
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
Собеседования МЛ: www.tg-me.com/machinelearning_interview
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
МАШИННОЕ ОБУЧЕНИЕ: www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cppsobes
Python: www.tg-me.com/pro_python_code
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/devOPSitsec
АНАЛИЗ Данных: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/javatg
Базы данных: www.tg-me.com/sqlhub
Linux: www.tg-me.com/linuxacademiya
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Docker: www.tg-me.com/DevopsDocker
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
Собеседования МЛ: www.tg-me.com/machinelearning_interview
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
❤1👍1
bookstack - платформа для документации c приятным и простым интерфейсом.
Для новичков опыт использования должен показаться интуитивно понятным, и для участия в создании контента в BookStack потребуются только базовые навыки обработки текста.
На базе Laravel, что открывает огромные возможности для интеграции и расширения огромным количеством готовых модулей в случае необходимости.
https://github.com/BookStackApp/BookStack
#doc #wiki
Для новичков опыт использования должен показаться интуитивно понятным, и для участия в создании контента в BookStack потребуются только базовые навыки обработки текста.
На базе Laravel, что открывает огромные возможности для интеграции и расширения огромным количеством готовых модулей в случае необходимости.
https://github.com/BookStackApp/BookStack
#doc #wiki
GitHub
GitHub - BookStackApp/BookStack: A platform to create documentation/wiki content built with PHP & Laravel
A platform to create documentation/wiki content built with PHP & Laravel - BookStackApp/BookStack
👍8❤3🔥3