Forwarded from Пых (Валентин Удальцов)
Упрощаем тесты с участием файлов
Представим, что мы написали функцию
Первая мысль — написать несколько CSV-файликов, положить их рядом с тестом, а в самом тесте сравнить результат их парсинга с ожидаемыми значениями. Очень просто, но неудобно: тест разбросан по нескольким файлам, сложно читать и вносить изменения.
Вторая мысль — mikey179/vfsstream. Это пакет, который позволяет налету в памяти создавать файловую систему и взаимодействовать с ней как с реальной. Круто, но для тестирования нашей простенькой функции слишком мощно.
А теперь третий вариант, оптимальный. В PHP есть data stream wrapper (а-ля RFC 2397), который позволяет инлайнить содержимое файла прямо в "путь". Формула проста:
https://www.php.net/manual/ru/wrappers.data.php
Представим, что мы написали функцию
parseCSVFile, которая принимает путь до CSV-файла и возвращает распарсенные данные в удобном нам формате. Как её протестировать?Первая мысль — написать несколько CSV-файликов, положить их рядом с тестом, а в самом тесте сравнить результат их парсинга с ожидаемыми значениями. Очень просто, но неудобно: тест разбросан по нескольким файлам, сложно читать и вносить изменения.
Вторая мысль — mikey179/vfsstream. Это пакет, который позволяет налету в памяти создавать файловую систему и взаимодействовать с ней как с реальной. Круто, но для тестирования нашей простенькой функции слишком мощно.
А теперь третий вариант, оптимальный. В PHP есть data stream wrapper (а-ля RFC 2397), который позволяет инлайнить содержимое файла прямо в "путь". Формула проста:
data://{MIME-тип},{Содержимое}. В итоге тест будет выглядеть так:$csv = <<<'CSV'
data://text/csv,PHP Version,2022-01,2022-07,2023-01,2023-07
8.0,23.9%,20.6%,16.2%,12.3%
8.1,9.1%,24.5%,38.8%,39.3%
8.2,0.0%,0.0%,4.7%,17.2%
CSV;
$expected = [...];
$parsed = parseCSVFile($csv);
self::assertSame($expected, $parsed);
https://www.php.net/manual/ru/wrappers.data.php
Forwarded from Пятиминутка PHP
Зацените что нашел на просторах телеграмм чатов: PHPoC (PHP on Chip) – аппаратная платформа, объединяющая микроконтроллеры со встроенным PHP интерпретатором https://voltiq.ru/cat/devboards/phpoc/
Forwarded from Инструменты программиста
ZenStack — TypeScript-инструмент для «усиления» Prisma ORM
Достигается это за счёт мощного слоя контроля доступа, что и раскрывает его полный потенциал
При этом ZenStack предлагает интерактивный опыт работы с Markdown, автоматически генерирует CRUD API и фронтенд-хуки, обеспечивая высокий уровень безопасности
Стоимость: #бесплатно (но есть платные тарифы)
#разработка #БД #TypeScript
Достигается это за счёт мощного слоя контроля доступа, что и раскрывает его полный потенциал
При этом ZenStack предлагает интерактивный опыт работы с Markdown, автоматически генерирует CRUD API и фронтенд-хуки, обеспечивая высокий уровень безопасности
Стоимость: #бесплатно (но есть платные тарифы)
#разработка #БД #TypeScript
Element.animate() - анимация на чистом JS
Метод animate() интерфейса Element это быстрый способ создания анимации, которая сразу применяется к элементу и проигрывает анимацию. Метод возвращает созданный экземпляр класса Animation.
👉 https://wp-kama.ru/note/element-animate
Метод animate() интерфейса Element это быстрый способ создания анимации, которая сразу применяется к элементу и проигрывает анимацию. Метод возвращает созданный экземпляр класса Animation.
👉 https://wp-kama.ru/note/element-animate
Лучшие практики проектирования Web API от команды Microsoft
👉 https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-design
👉 https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-design
Docs
Web API Design Best Practices - Azure Architecture Center
Learn how to apply best practices for designing RESTful web APIs that support platform independence and loose coupling for service evolution.
👍2
Замена облака на локалку для вакуумных пылесосов
Hypfer/Valetudo: Cloud replacement for vacuum robots enabling local-only operation
https://github.com/Hypfer/Valetudo
Hypfer/Valetudo: Cloud replacement for vacuum robots enabling local-only operation
https://github.com/Hypfer/Valetudo
GitHub
GitHub - Hypfer/Valetudo: Cloud replacement for vacuum robots enabling local-only operation
Cloud replacement for vacuum robots enabling local-only operation - Hypfer/Valetudo
Forwarded from Инструменты программиста
Hackreels — анимируйте ваш код в HD-качестве
Hackreels представляет из себя платформу, предназначенную для анимации вашего кода в высоком разрешении, что делает его визуально привлекательным для публикации в Сети
Инструмент может похвастаться рядом функций, включая подсветку синтаксиса, автоматическое сравнение кода и настройки, такие как регулировка отступов или радиуса скругления
Стоимость: #бесплатно (но есть платные тарифы)
#code #web
Hackreels представляет из себя платформу, предназначенную для анимации вашего кода в высоком разрешении, что делает его визуально привлекательным для публикации в Сети
Инструмент может похвастаться рядом функций, включая подсветку синтаксиса, автоматическое сравнение кода и настройки, такие как регулировка отступов или радиуса скругления
Стоимость: #бесплатно (но есть платные тарифы)
#code #web
🔥2
Forwarded from Инструменты программиста
NeoBrutalismCSS — новый взгляд на веб-дизайн
Данный CSS-фреймворк воплощает эстетику необрутализма в веб-разработке, предлагая простой и минималистичный подход к стилизации ваших веб-проектов
Инструмент создан с акцентом на простоту, позволяя избавиться от сложности изучения множества имён классов, как в других фреймворках
Он следует минималистичному подходу, применяя основные стили, основанные на семантике HTML, что делает его удобным для быстрого начала работы и создания современной, необруталистской эстетики
Стоимость: #бесплатно
#web #CSS
Данный CSS-фреймворк воплощает эстетику необрутализма в веб-разработке, предлагая простой и минималистичный подход к стилизации ваших веб-проектов
Инструмент создан с акцентом на простоту, позволяя избавиться от сложности изучения множества имён классов, как в других фреймворках
Он следует минималистичному подходу, применяя основные стили, основанные на семантике HTML, что делает его удобным для быстрого начала работы и создания современной, необруталистской эстетики
Стоимость: #бесплатно
#web #CSS
👍2🔥2
Совместимость WordPress 6.4 с PHP
Стремясь держать сообщество WordPress в курсе событий, в этой заметке мы приводим обновленную информацию о совместимости с PHP предстоящего выпуска WordPress 6.4, запланированного на 7 ноября 2023 года.
👉 https://www.kobzarev.com/wordpress/sovmestimost-wordpress-6-4-s-php/
#wordpress #wpdigest #php
Стремясь держать сообщество WordPress в курсе событий, в этой заметке мы приводим обновленную информацию о совместимости с PHP предстоящего выпуска WordPress 6.4, запланированного на 7 ноября 2023 года.
👉 https://www.kobzarev.com/wordpress/sovmestimost-wordpress-6-4-s-php/
#wordpress #wpdigest #php
Forwarded from Инструменты программиста
ConsoleX PlugNFunc — бесплатный вызов ChatGPT-плагинов как функций
Плагины ChatGPT полезны, но доступ к ним имеют только платные пользователи
Данный же инструмент не только делает их вызов бесплатным, но и помогает с отладкой возможностей детища OpenAI
Стоимость: #бесплатно
#ChatGPT #OpenAI #ИИ
Плагины ChatGPT полезны, но доступ к ним имеют только платные пользователи
Данный же инструмент не только делает их вызов бесплатным, но и помогает с отладкой возможностей детища OpenAI
Стоимость: #бесплатно
#ChatGPT #OpenAI #ИИ
Forwarded from Инструменты программиста
Dataflare — элегантный менеджер баз данных
Он предназначен для удобного подключения к вашим БД PostgreSQL, MySQL, MariaDB, MSSQL, SQLite, управления таблицами и выполнения запросов
Инструмент отличается простотой и лёгкостью использования, что позволяет без труда управлять вашей базой данных и улучшить эффективность работы
Основанный на Tauri и используя Rust в качестве бэкенда, Dataflare обеспечивает отличную производительность и быстрое выполнение операций, будь то запросы к данным, выполнение SQL или другие операции.
Стоимость: #бесплатно
#БД #SQL
Он предназначен для удобного подключения к вашим БД PostgreSQL, MySQL, MariaDB, MSSQL, SQLite, управления таблицами и выполнения запросов
Инструмент отличается простотой и лёгкостью использования, что позволяет без труда управлять вашей базой данных и улучшить эффективность работы
Основанный на Tauri и используя Rust в качестве бэкенда, Dataflare обеспечивает отличную производительность и быстрое выполнение операций, будь то запросы к данным, выполнение SQL или другие операции.
Стоимость: #бесплатно
#БД #SQL
👍2
Forwarded from WP Yoda (Andrei Pisarevskii)
Альтернатива Docker Desktop для MacOS
В современной разработке программного обеспечения использование контейнеризации стало стандартной практикой и Docker, вероятно является наиболее распространенной платформой для этого. Однако в свете изменений в лицензировании Docker Desktop, которое теперь требует покупки версии Enterprise для коммерческого использования, многие разработчики и компании ищут альтернативы.
В этой статье я рассмотрю "Colima" как альтернативу Docker Desktop, которая может оказаться подходящим решением для пользователей MacOS Apple Silicon M1/M2 и Intel, не имеющих возможность приобрести или использовать платную версию Docker Desktop.
- Читать на русском
- Читать на английском
В современной разработке программного обеспечения использование контейнеризации стало стандартной практикой и Docker, вероятно является наиболее распространенной платформой для этого. Однако в свете изменений в лицензировании Docker Desktop, которое теперь требует покупки версии Enterprise для коммерческого использования, многие разработчики и компании ищут альтернативы.
В этой статье я рассмотрю "Colima" как альтернативу Docker Desktop, которая может оказаться подходящим решением для пользователей MacOS Apple Silicon M1/M2 и Intel, не имеющих возможность приобрести или использовать платную версию Docker Desktop.
- Читать на русском
- Читать на английском
WP Yoda
Альтернатива Docker Desktop для MacOS - WP Yoda
В этой статье я рассмотрю альтернативу Docker Desktop, которая может оказаться подходящим решением для пользователей Mac Apple Silicon M1/M2 и Intel, не имеющих возможность приобрести платную версию Docker Desktop.
❤1
Игорь Симдянов и Дмитрий Котеров не так давно выпустили новую книгу "РНР 8. Наиболее полное руководство"
Книга предоставляет детальное и полное изложение языка PHP 8 от простого к сложному. Ее можно использовать как для изучения языка с нуля, так и для структурирования знаний, изучения тонких моментов синтаксиса и новых возможностей последней версии. Описываются все значимые нововведения. Рассматриваются новые типы, атрибуты, перечисления, именованные аргументы, сопоставления, объединенные типы, новые операторы ??= и ?-> и многое другое. Основной упор в книге делается на объектно-ориентированные возможности языка, поэтому классы и объекты рассматриваются практически с первых глав. Приведено описание синтаксиса PHP, а также инструментов для работы с массивами, файлами, СУБД PostgreSQL, Redis, регулярными выражениями, графическими примитивами, сессиями и т. д.
👉 Страница книги на Литрес
👉 Ознакомительный фрагмент книги
👉 Бумажная версия
PS: на Озоне я бы не рекомендовал брать. Там версия дешевле на 300р, но бумага зашкварная
Книга предоставляет детальное и полное изложение языка PHP 8 от простого к сложному. Ее можно использовать как для изучения языка с нуля, так и для структурирования знаний, изучения тонких моментов синтаксиса и новых возможностей последней версии. Описываются все значимые нововведения. Рассматриваются новые типы, атрибуты, перечисления, именованные аргументы, сопоставления, объединенные типы, новые операторы ??= и ?-> и многое другое. Основной упор в книге делается на объектно-ориентированные возможности языка, поэтому классы и объекты рассматриваются практически с первых глав. Приведено описание синтаксиса PHP, а также инструментов для работы с массивами, файлами, СУБД PostgreSQL, Redis, регулярными выражениями, графическими примитивами, сессиями и т. д.
👉 Страница книги на Литрес
👉 Ознакомительный фрагмент книги
👉 Бумажная версия
PS: на Озоне я бы не рекомендовал брать. Там версия дешевле на 300р, но бумага зашкварная
Forwarded from Инструменты программиста
CodeKeep — хранение и управление кодом онлайн
CodeKeep предлагает удобное хранение и управление кодом прямо в вашем браузере
Инструмент предлагает функции для организации, хранения и поиска кода, что облегчает работу над проектами
Стоимость: #бесплатно (но есть платные тарифы)
#code #web
CodeKeep предлагает удобное хранение и управление кодом прямо в вашем браузере
Инструмент предлагает функции для организации, хранения и поиска кода, что облегчает работу над проектами
Стоимость: #бесплатно (но есть платные тарифы)
#code #web