Создание компонента React с помощью Symfony UX
Статья объясняет, как интегрировать React-компоненты в проект Symfony, используя компонент symfony/ux-react.
Статья объясняет, как интегрировать React-компоненты в проект Symfony, используя компонент symfony/ux-react.
DEV Community
Creating a React component using Symfony UX
Introduction I have been using Angular to build my front-ends for much time and I wanted...
🤔3👍2
Сколько в мире PHP-разработчиков?
Компания SlashData, специализирующаяся на опросах разработчиков, опубликовала отчет, оценивающий спрос на языки программирования и прогнозирующий размер сообществ разработчиков.
Согласно отчету, PHP занимает шестое место с 9,8 миллионами разработчиков по всему миру.
Компания SlashData, специализирующаяся на опросах разработчиков, опубликовала отчет, оценивающий спрос на языки программирования и прогнозирующий размер сообществ разработчиков.
Согласно отчету, PHP занимает шестое место с 9,8 миллионами разработчиков по всему миру.
🥰13👏3👍2🤔1
Приходилось ли вам приукрашивать опыт работы на собеседовании? Ловили ли вас на слове?
#интерактив
#интерактив
🥰1
4 лучших калькулятора памяти MySQL
Почему распределение памяти в MySQL имеет значение?
Распределение памяти в MySQL напрямую влияет на скорость и эффективность работы вашей базы данных, что, в свою очередь, отражается на быстродействии приложений и надежности системы.
Чем могут помочь калькуляторы памяти MySQL?
Калькуляторы памяти MySQL помогают администраторам баз данных определить оптимальные настройки памяти для их MySQL-серверов, учитывая ресурсы системы и специфику использования базы данных.
1. Калькулятор памяти от Александра Авчинникова
Этот онлайн-калькулятор имеет минималистичный интерфейс без каких-либо инструкций. Введите объём памяти вашего сервера и 12 других параметров из вашего конфигурационного файла. Полоса заполняется, визуализируя, какой процент памяти вашего сервера потребляется вашими настройками.
🟢Плюсы: Лёгкость использования, минималистичный интерфейс, отличная визуализация потребления памяти сервера.
❗Минусы: Нет рекомендаций и инструкций. При необходимости изменений конфигурации, отсутствует понимание их влияния на производительность.
2. Калькулятор памяти MySQL
Этот веб-инструмент предлагает простой интерфейс для ввода значений 13 параметров, связанных с памятью, из вашего файла my.cnf. После заполнения таблицы он предоставляет оценку максимального использования памяти MySQL, ожидаемого от вашей конфигурации.
🟢Плюсы: Показывает значение по умолчанию для каждого параметра MySQL. Удобен для быстрых проверок.
❗Минусы: Предоставляет только информацию о максимальной потребности в памяти, без каких-либо рекомендаций.
3. Калькулятор памяти Abhinavbit для MySQL
Этот калькулятор памяти MySQL — ещё один простой веб-калькулятор в аналогичном формате. Он запрашивает значения конфигурации для различных параметров. После ввода значений вы узнаете: базовую память, память на одно подключение, общее минимальное и максимальное потребление памяти.
🟢Плюсы: Простой интерфейс, показывает базовую память и память на одно подключение.
❗Минусы: Не предоставляет рекомендаций или предложений по настройке.
4. MySQLTuner
MySQL Tuner — популярный скрипт, выполняющий всестороннюю проверку состояния вашего сервера MySQL, включая использование памяти. Скрипт запускается напрямую из командной строки, что делает его быстрым в развертывании без необходимости сложной настройки.
🟢Плюсы: Легкость использования с прямыми, понятными рекомендациями. Подходит для быстрых проверок и мгновенных улучшений. Работает с различными версиями MySQL и их форками, такими как MariaDB и Percona.
❗Минусы: Ограничен анализом существующих конфигураций, а не прогнозированием будущих потребностей в памяти. Может не предоставлять углубленной настройки, касающейся конкретно памяти.
Почему распределение памяти в MySQL имеет значение?
Распределение памяти в MySQL напрямую влияет на скорость и эффективность работы вашей базы данных, что, в свою очередь, отражается на быстродействии приложений и надежности системы.
Чем могут помочь калькуляторы памяти MySQL?
Калькуляторы памяти MySQL помогают администраторам баз данных определить оптимальные настройки памяти для их MySQL-серверов, учитывая ресурсы системы и специфику использования базы данных.
1. Калькулятор памяти от Александра Авчинникова
Этот онлайн-калькулятор имеет минималистичный интерфейс без каких-либо инструкций. Введите объём памяти вашего сервера и 12 других параметров из вашего конфигурационного файла. Полоса заполняется, визуализируя, какой процент памяти вашего сервера потребляется вашими настройками.
🟢Плюсы: Лёгкость использования, минималистичный интерфейс, отличная визуализация потребления памяти сервера.
❗Минусы: Нет рекомендаций и инструкций. При необходимости изменений конфигурации, отсутствует понимание их влияния на производительность.
2. Калькулятор памяти MySQL
Этот веб-инструмент предлагает простой интерфейс для ввода значений 13 параметров, связанных с памятью, из вашего файла my.cnf. После заполнения таблицы он предоставляет оценку максимального использования памяти MySQL, ожидаемого от вашей конфигурации.
🟢Плюсы: Показывает значение по умолчанию для каждого параметра MySQL. Удобен для быстрых проверок.
❗Минусы: Предоставляет только информацию о максимальной потребности в памяти, без каких-либо рекомендаций.
3. Калькулятор памяти Abhinavbit для MySQL
Этот калькулятор памяти MySQL — ещё один простой веб-калькулятор в аналогичном формате. Он запрашивает значения конфигурации для различных параметров. После ввода значений вы узнаете: базовую память, память на одно подключение, общее минимальное и максимальное потребление памяти.
🟢Плюсы: Простой интерфейс, показывает базовую память и память на одно подключение.
❗Минусы: Не предоставляет рекомендаций или предложений по настройке.
4. MySQLTuner
MySQL Tuner — популярный скрипт, выполняющий всестороннюю проверку состояния вашего сервера MySQL, включая использование памяти. Скрипт запускается напрямую из командной строки, что делает его быстрым в развертывании без необходимости сложной настройки.
🟢Плюсы: Легкость использования с прямыми, понятными рекомендациями. Подходит для быстрых проверок и мгновенных улучшений. Работает с различными версиями MySQL и их форками, такими как MariaDB и Percona.
❗Минусы: Ограничен анализом существующих конфигураций, а не прогнозированием будущих потребностей в памяти. Может не предоставлять углубленной настройки, касающейся конкретно памяти.
👍6
История успеха автоматизированного перехода с FuelPHP на Laravel для 400k+ строк приложения
Здесь рассказывается о том, как команда мигрировала своё большое PHP-приложение с FuelPHP на Laravel с помощью инструмента автоматического рефакторинга Rector.
Здесь рассказывается о том, как команда мигрировала своё большое PHP-приложение с FuelPHP на Laravel с помощью инструмента автоматического рефакторинга Rector.
Getrector
Success Story of Automated Framework Migration from FuelPHP to Laravel of 400k+lines Application
Today, I'm very excited to talk about the full story of our successful automated framework migration how Rector saved our product by refactoring our 400k+lines PHP web application!
👍6😁2🤔1
Отслеживание чего-то, например, просмотров страниц с помощью MySQL может создать значительную нагрузку на производительность при высоком объеме трафика. Redis намного лучше справляется с этой задачей. Вы можете использовать Redis и команду планирования для поддержки синхронизации с MySQL на фиксированный интервал времени.
👍24
Как в PHP очистить память?
В PHP память очищается автоматически после окончания выполнения скрипта. Однако, есть несколько способов управлять памятью для оптимизации работы скрипта:
1. Очистка переменных: Удалив все ссылки на объект или массив, PHP автоматически освободит память, занимаемую ими. Использование функции `unset()` позволяет явно удалить переменную или ее элементы.
2. Освобождение памяти после работы с большими массивами: Для этого можно использовать функцию `unset()` или присвоить переменной пустое значение (`$var = null`), чтобы удалить ссылку на массив и освободить память.
3. Использование `unset()` после работы с объектами: Аналогично предыдущему пункту, нужно удалить ссылку на объект, чтобы очистить память. Если объект был инициализирован с помощью конструктора, то вызов `unset()` может привести к вызову деструктора объекта.
4. Использование `gc_collect_cycles()`: Функция `gc_collect_cycles()` используется для принудительного вызова сборщика мусора, который освобождает память, занимаемую неиспользуемыми объектами и циклами ссылок.
5. Управление памятью экстенсионных функций: Если используются расширения PHP, следует обратить внимание на их документацию, так как некоторые расширения могут предоставлять специальные функции для управления памятью.
Но в целом, в PHP не требуется явно очищать память, так как это автоматически выполняется сборщиком мусора. Однако, правила управления памятью в PHP важно понимать, чтобы написанный код был максимально эффективным и не вызывал утечек памяти.
#вопросы_с_собеседований
В PHP память очищается автоматически после окончания выполнения скрипта. Однако, есть несколько способов управлять памятью для оптимизации работы скрипта:
1. Очистка переменных: Удалив все ссылки на объект или массив, PHP автоматически освободит память, занимаемую ими. Использование функции `unset()` позволяет явно удалить переменную или ее элементы.
2. Освобождение памяти после работы с большими массивами: Для этого можно использовать функцию `unset()` или присвоить переменной пустое значение (`$var = null`), чтобы удалить ссылку на массив и освободить память.
3. Использование `unset()` после работы с объектами: Аналогично предыдущему пункту, нужно удалить ссылку на объект, чтобы очистить память. Если объект был инициализирован с помощью конструктора, то вызов `unset()` может привести к вызову деструктора объекта.
4. Использование `gc_collect_cycles()`: Функция `gc_collect_cycles()` используется для принудительного вызова сборщика мусора, который освобождает память, занимаемую неиспользуемыми объектами и циклами ссылок.
5. Управление памятью экстенсионных функций: Если используются расширения PHP, следует обратить внимание на их документацию, так как некоторые расширения могут предоставлять специальные функции для управления памятью.
Но в целом, в PHP не требуется явно очищать память, так как это автоматически выполняется сборщиком мусора. Однако, правила управления памятью в PHP важно понимать, чтобы написанный код был максимально эффективным и не вызывал утечек памяти.
#вопросы_с_собеседований
👍3
Читаемые end-to-end тесты для PHPStan с помощью bashunit
Статья описывает опыт использования end-to-end тестов в проекте PHPStan, который разрабатывается на языке PHP и предназначен для статического анализа кода. Основной акцент делается на том, как эти тесты реализованы с помощью bash-скриптов и GitHub Actions, а также на преимуществах такого подхода.
Статья описывает опыт использования end-to-end тестов в проекте PHPStan, который разрабатывается на языке PHP и предназначен для статического анализа кода. Основной акцент делается на том, как эти тесты реализованы с помощью bash-скриптов и GitHub Actions, а также на преимуществах такого подхода.
My developer experience
Readable end-to-end tests for PHPStan with bashunit
For a long time in the PHPStan repository, we have isolated, highly-parallel end-to-end tests which are written in bash utilizing GitHub Actions. The design and initial implementation - as far as I know - has been done by Ondřej Mirtes.
👍2
PHP 8.4: Новые функции поиска в массиве. Пишем с нуля
В PHP 8.4 планируется добавить новые функции массива: array_find, array_find_key, array_any и array_all, которые являются вспомогательными функциями для общих шаблонов проверки массива на наличие элементов, соответствующих определенному условию.
В настоящее время существует несколько функций, обрабатывающих массивы с использованием обратного вызова. Однако по-прежнему отсутствуют функции для поиска отдельного элемента, соответствующего условию, и тесно связанные функции проверки наличия элементов, соответствующих условию. Реализовать эти функции в среде пользователей относительно просто, но они часто требуются, что приводит к тому, что колесо изобретается снова и снова. Кроме того, функции такого типа реализованы и в других языках программирования, таких как Rust, JavaScript или C++.
Поэтому есть причина включить эти функции в стандартную комплектацию следующей версии PHP. Кроме того, реализация этих функций очень похожа на array_filter и относительно проста в реализации, поэтому затраты на обслуживание должны быть низкими.
В PHP 8.4 планируется добавить новые функции массива: array_find, array_find_key, array_any и array_all, которые являются вспомогательными функциями для общих шаблонов проверки массива на наличие элементов, соответствующих определенному условию.
В настоящее время существует несколько функций, обрабатывающих массивы с использованием обратного вызова. Однако по-прежнему отсутствуют функции для поиска отдельного элемента, соответствующего условию, и тесно связанные функции проверки наличия элементов, соответствующих условию. Реализовать эти функции в среде пользователей относительно просто, но они часто требуются, что приводит к тому, что колесо изобретается снова и снова. Кроме того, функции такого типа реализованы и в других языках программирования, таких как Rust, JavaScript или C++.
Поэтому есть причина включить эти функции в стандартную комплектацию следующей версии PHP. Кроме того, реализация этих функций очень похожа на array_filter и относительно проста в реализации, поэтому затраты на обслуживание должны быть низкими.
Хабр
PHP 8.4: Новые функции поиска в массиве. Пишем с нуля
В PHP 8.4 планируется добавить новые функции массива: array_find, array_find_key, array_any и array_all , которые являются вспомогательными функциями для общих шаблонов проверки массива на наличие...
👍17🥰6🔥3
Практическое логирование для PHP-приложений с помощью OpenTelemetry
Это самый полный гайд по логированию в PHP с использованием OpenTelemetry
Это самый полный гайд по логированию в PHP с использованием OpenTelemetry
Betterstack
Practical Logging for PHP Applications with OpenTelemetry | Better Stack Community
Learn how to use the OpenTelemetry framework to instrument your PHP applications with code that gathers log data for observability pipelines
👍4
#хочу_спросить
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
PHP Static Analysis Attributes
Этот пакет позволяет использовать атрибуты вместо аннотаций PHPDoc для статического анализа с помощью PHPStan.
Этот пакет позволяет использовать атрибуты вместо аннотаций PHPDoc для статического анализа с помощью PHPStan.
GitHub
GitHub - php-static-analysis/attributes: Attributes used for static analysis
Attributes used for static analysis. Contribute to php-static-analysis/attributes development by creating an account on GitHub.
👍6❤1
Что означает сложность алгоритма?
Сложность алгоритма представляет собой меру его эффективности и определяет количество ресурсов, таких как время и память, необходимых для его выполнения.
Существуют два основных типа сложности алгоритма: временная сложность и пространственная сложность.
Временная сложность алгоритма оценивает время, необходимое для его выполнения, в зависимости от размера входных данных. Обычно время выполнения алгоритма измеряется в тактах процессора или в секундах. Примеры временной сложности включают константную сложность O(1) (выполнение за постоянное время), линейную сложность O(n) (выполнение занимает время, пропорциональное размеру входных данных) и квадратичную сложность O(n^2) (выполнение занимает время, пропорциональное квадрату размера входных данных).
Пространственная сложность алгоритма оценивает объем памяти, необходимый для его выполнения, в зависимости от размера входных данных. Обычно пространственная сложность измеряется в байтах. Примеры пространственной сложности включают константную сложность O(1) (не зависит от размера входных данных), линейную сложность O(n) (потребляет память, пропорционально размеру входных данных) и квадратичную сложность O(n^2) (потребляет память, пропорционально квадрату размера входных данных).
#вопросы_с_собеседований
Сложность алгоритма представляет собой меру его эффективности и определяет количество ресурсов, таких как время и память, необходимых для его выполнения.
Существуют два основных типа сложности алгоритма: временная сложность и пространственная сложность.
Временная сложность алгоритма оценивает время, необходимое для его выполнения, в зависимости от размера входных данных. Обычно время выполнения алгоритма измеряется в тактах процессора или в секундах. Примеры временной сложности включают константную сложность O(1) (выполнение за постоянное время), линейную сложность O(n) (выполнение занимает время, пропорциональное размеру входных данных) и квадратичную сложность O(n^2) (выполнение занимает время, пропорциональное квадрату размера входных данных).
Пространственная сложность алгоритма оценивает объем памяти, необходимый для его выполнения, в зависимости от размера входных данных. Обычно пространственная сложность измеряется в байтах. Примеры пространственной сложности включают константную сложность O(1) (не зависит от размера входных данных), линейную сложность O(n) (потребляет память, пропорционально размеру входных данных) и квадратичную сложность O(n^2) (потребляет память, пропорционально квадрату размера входных данных).
#вопросы_с_собеседований
👏3😢1
WeakMaps — скрытая жемчужина в PHP
Компания работает над новой функцией для Flare и столкнулась с задачей оптимизации хранения элементов в массиве. Ранее элементы просто добавлялись в массив, и при превышении лимита удалялся самый старый элемент.
Сложность возросла, когда потребовалось создать структуру узлов (Node), где каждый узел может содержать дочерние узлы и элементы. Для нахождения нужного узла использовался MagicNodeFinder, но при удалении элементов возникли проблемы: не было способа точно определить, в каком узле находится элемент, что приводило к неэффективному обходу дерева.
Решение пришло с использованием WeakMap, нового в PHP 8.0. WeakMap позволяет хранить объекты без увеличения их ссылочного счетчика, поэтому при удалении объекта из памяти, он автоматически удаляется и из WeakMap. Это позволило легко управлять элементами в узлах без необходимости обхода дерева при удалении.
Использование WeakMap улучшило производительность и упростило код. Теперь, когда элемент удаляется из массива, он автоматически удаляется и из WeakMap узла.
Компания работает над новой функцией для Flare и столкнулась с задачей оптимизации хранения элементов в массиве. Ранее элементы просто добавлялись в массив, и при превышении лимита удалялся самый старый элемент.
Сложность возросла, когда потребовалось создать структуру узлов (Node), где каждый узел может содержать дочерние узлы и элементы. Для нахождения нужного узла использовался MagicNodeFinder, но при удалении элементов возникли проблемы: не было способа точно определить, в каком узле находится элемент, что приводило к неэффективному обходу дерева.
Решение пришло с использованием WeakMap, нового в PHP 8.0. WeakMap позволяет хранить объекты без увеличения их ссылочного счетчика, поэтому при удалении объекта из памяти, он автоматически удаляется и из WeakMap. Это позволило легко управлять элементами в узлах без необходимости обхода дерева при удалении.
Использование WeakMap улучшило производительность и упростило код. Теперь, когда элемент удаляется из массива, он автоматически удаляется и из WeakMap узла.
👍3🔥2❤1💯1
Анонимные и стрелочные функции: как использовать их вместо create_function в PHP 8
В статье рассказано, как команда проводила рефакторинг кода при переходе с PHP 7.4 на PHP 8 и на что заменили одну из самых популярных функций — create_function.
В статье рассказано, как команда проводила рефакторинг кода при переходе с PHP 7.4 на PHP 8 и на что заменили одну из самых популярных функций — create_function.
Хабр
Анонимные и стрелочные функции: как использовать их вместо create_function в PHP 8
Привет, Хабр! Меня зовут Виталий Киреев, я руководитель разработки SpaceWeb. В статье расскажу, как мы с командой проводили рефакторинг кода при переходе с PHP 7.4 на PHP 8 и на что заменили одну из...
🌚9🥱5👍4😁2
Сколько раз в неделю вы ездите в офис? Вы бы хотели перейти на удалёнку?
#интерактив
#интерактив