В этой статье рассказывается, как установить или обновить PHP 8.3 на macOS с помощью Homebrew.
PHP 8.3 — это крупное обновление PHP 2023 года, содержащее ряд новых возможностей, таких как типизированные константы классов, гранулированные исключения в расширении DateTime, новая функция json_validate, изменения и улучшения функциональности, а также исправления. В этой статье рассказывается, как установить или обновить PHP 8.3 на macOS с помощью Homebrew.
Shivam Mathur поддерживает две ветки Brew, shivammathur/php и shivammathur/extensions, которые содержат прекомпилированные пакеты PHP 8.3 (bottles), которые постоянно обновляются, что делает удобной установку PHP 8.3 и нескольких расширений ядра PHP и PECL с помощью Homebrew.
https://www.dev-notes.ru/articles/devops/php-8.3-install-upgrade-on-macos-homebrew/
PHP 8.3 — это крупное обновление PHP 2023 года, содержащее ряд новых возможностей, таких как типизированные константы классов, гранулированные исключения в расширении DateTime, новая функция json_validate, изменения и улучшения функциональности, а также исправления. В этой статье рассказывается, как установить или обновить PHP 8.3 на macOS с помощью Homebrew.
Shivam Mathur поддерживает две ветки Brew, shivammathur/php и shivammathur/extensions, которые содержат прекомпилированные пакеты PHP 8.3 (bottles), которые постоянно обновляются, что делает удобной установку PHP 8.3 и нескольких расширений ядра PHP и PECL с помощью Homebrew.
https://www.dev-notes.ru/articles/devops/php-8.3-install-upgrade-on-macos-homebrew/
Заметки разработчика
Как установить/обновить PHP 8.3 на MacOS с помощью Homebrew
В этой статье рассказывается, как установить или обновить PHP 8.3 на macOS с помощью Homebrew.
Почему использование свойства $seed лучше ручного заполнения базы данных? Просто ли это избавление от необходимости писать несколько строк кода?
https://www.dev-notes.ru/articles/eloquent/you-dont-need-to-manually-run-seeders-in-your-tests/
https://www.dev-notes.ru/articles/eloquent/you-dont-need-to-manually-run-seeders-in-your-tests/
Заметки разработчика
Не нужно вручную заполнять базы данных в тестах
Почему использование свойства $seed лучше ручного заполнения базы данных? Просто ли это избавление от необходимости писать несколько строк кода?
👍1
В ECMAScript 2023 появились новые функции, призванные улучшить язык и сделать его более мощным и удобным. Новая версия включает в себя интересные функции и новые методы массивов JavaScript, благодаря которым программирование на JavaScript становится более лёгким и приятным. В этой статье мы подробно рассмотрим функциональные возможности новых методов JavaScript на прототипах массивов.
JavaScript постоянно развивается, как и вся индустрия веб-разработки в целом. ECMAScript 2023 — новейшая версия языка программирования JavaScript. ECMAScript является четырнадцатым изданием спецификации языка и был выпущен в июне 2023 года. Со временем ECMAScript 2023 превратился в язык программирования общего назначения. На нем работает весь веб. Поэтому он используется для создания веб-приложений и других видов программирования, которые связаны между собой.
ECMAScript — стандартизированный язык сценариев, являющийся спецификацией для JavaScript. ECMAScript 2023 — обновление языка программирования JavaScript, призванное внести улучшения и сделать программы на JavaScript предсказуемыми и удобными в обслуживании. Благодаря этому улучшению у прототипа Array появились новые методы. Методы массивов JavaScripts toSorted, toReversed, with, findLast и findLastIndex были представлены в ECMAScript 2023.
Методы ECMAScript 2023 предлагают разработчикам мощные инструменты для манипулирования массивами без изменения исходного массива. Эти методы работают с репликами массива, что позволяет более безопасно и предсказуемо манипулировать массивами. С помощью этих методов разработчики могут использовать иммутабельность данных массива, будучи уверенными в том, что исходный массив останется неизменным. Они облегчат работу разработчиков при работе с массивами. Оставлять данные неизменными выгодно, что и демонстрируют эти методы массивов из ECMAScript 2023. Эти преимущества применимы к любым объектам JavaScript, а не только к массивам.
https://www.dev-notes.ru/articles/javascript/exploring-the-new-array-methods-from-ecmascript-2023/
JavaScript постоянно развивается, как и вся индустрия веб-разработки в целом. ECMAScript 2023 — новейшая версия языка программирования JavaScript. ECMAScript является четырнадцатым изданием спецификации языка и был выпущен в июне 2023 года. Со временем ECMAScript 2023 превратился в язык программирования общего назначения. На нем работает весь веб. Поэтому он используется для создания веб-приложений и других видов программирования, которые связаны между собой.
ECMAScript — стандартизированный язык сценариев, являющийся спецификацией для JavaScript. ECMAScript 2023 — обновление языка программирования JavaScript, призванное внести улучшения и сделать программы на JavaScript предсказуемыми и удобными в обслуживании. Благодаря этому улучшению у прототипа Array появились новые методы. Методы массивов JavaScripts toSorted, toReversed, with, findLast и findLastIndex были представлены в ECMAScript 2023.
Методы ECMAScript 2023 предлагают разработчикам мощные инструменты для манипулирования массивами без изменения исходного массива. Эти методы работают с репликами массива, что позволяет более безопасно и предсказуемо манипулировать массивами. С помощью этих методов разработчики могут использовать иммутабельность данных массива, будучи уверенными в том, что исходный массив останется неизменным. Они облегчат работу разработчиков при работе с массивами. Оставлять данные неизменными выгодно, что и демонстрируют эти методы массивов из ECMAScript 2023. Эти преимущества применимы к любым объектам JavaScript, а не только к массивам.
https://www.dev-notes.ru/articles/javascript/exploring-the-new-array-methods-from-ecmascript-2023/
Заметки разработчика
Изучение новых методов массивов из ECMAScript 2023
В этой статье мы подробно рассмотрим функциональные возможности новых методов JavaScript массивов в ECMAScript 2023 на прототипах массивов.
Symfony 6.4 включает новую функцию Profiler, позволяющую исследовать определения рабочих процессов и отображать их в виде визуальной диаграммы.
Это последняя статья о новых возможностях Symfony 6.4 и 7.0. Эта серия статей началась с нового профилировщика команд — революционной функции, позволяющей проследить за выполнением команд Symfony и отладить их.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-workflow-profiler/
Это последняя статья о новых возможностях Symfony 6.4 и 7.0. Эта серия статей началась с нового профилировщика команд — революционной функции, позволяющей проследить за выполнением команд Symfony и отладить их.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-workflow-profiler/
Заметки разработчика
Новое в Symfony 6.4: Профилировщик Workflow
Symfony 6.4 включает новую функцию Profiler, позволяющую исследовать определения рабочих процессов и отображать их в виде визуальной диаграммы.
👍3
Во вчерашнем совете мы говорили о том, как использовать свойство $seed для более быстрого запуска тестов, но при этом упустили из виду, что именно нужно поместить в сидер.
https://www.dev-notes.ru/articles/eloquent/why-we-like-minimal-seeders-for-tests/
https://www.dev-notes.ru/articles/eloquent/why-we-like-minimal-seeders-for-tests/
Заметки разработчика
Почему нам нравятся минимальные сидеры для тестов
Если все сделать правильно, ваши тесты будет намного легче поддерживать
Веб-приложениям не всегда нужна запись в файловую систему, но Node.js предоставляет для этого обширный интерфейс прикладного программирования (API). Это может понадобиться, если вы ведёте логи отладки, передаёте файлы на сервер или с сервера, или создаёте инструменты командной строки.
https://www.dev-notes.ru/articles/javascript/accessing-the-file-system-in-node-js/
https://www.dev-notes.ru/articles/javascript/accessing-the-file-system-in-node-js/
Заметки разработчика
Как использовать файловую систему в Node.js
Освойте основы модуля файловой системы Node.js, предоставляющего API для записи файлов в файловые системы macOS, Windows и Linux.
👍1
В PHP 8 появились атрибуты, которые являются довольно впечатляющими и мощными. В этой статье мы будем использовать их для включения и выключения маршрутов Laravel, насколько это круто?
https://www.dev-notes.ru/articles/laravel/php-attributes/
https://www.dev-notes.ru/articles/laravel/php-attributes/
Заметки разработчика
PHP атрибуты в Laravel
В PHP 8 появились атрибуты, они довольно впечатляющие и мощные. В этой статье мы используем их для включения и выключения маршрутов Laravel, насколько это круто
👍2
Сценарии Composer — это очень удобный способ определения команд, которые вы часто используете. Например, у нас есть скрипты composer для запуска тестов, проверки стиля кодирования или обновления хелперов IDE.
https://www.dev-notes.ru/articles/php/be-consistent-with-composer-scripts-in-ci/
https://www.dev-notes.ru/articles/php/be-consistent-with-composer-scripts-in-ci/
Заметки разработчика
Будьте последовательны в использовании скриптов Composer в CI
Будьте проще и избавьте себя от лишних проблем со скриптами Composer.
Абстрактные классы не могут быть инстанцированы напрямую, что создаёт проблему при тестировании функциональности, реализованной в самом абстрактном классе. В этой статье я поделюсь своим подходом к решению этой проблемы.
https://www.dev-notes.ru/articles/php/testing-abstract-classes-in-php-using-anonymous-classes/
https://www.dev-notes.ru/articles/php/testing-abstract-classes-in-php-using-anonymous-classes/
Заметки разработчика
Тестирование абстрактных классов PHP с помощью анонимных классов
Абстрактные классы не могут быть инстанцированы напрямую, что создаёт проблему при тестировании функциональности, реализованной в самом абстрактном классе.
👍2
Добро пожаловать в первую часть серии из десяти частей, посвящённой основам TypeScript. В этой первой части мы рассмотрим компилятор TypeScript (
https://www.dev-notes.ru/articles/typescript/typescript-basics-typescript-compiler-tsc-and-tsconfig/
tsc) и файл конфигурации (tsconfig.json).https://www.dev-notes.ru/articles/typescript/typescript-basics-typescript-compiler-tsc-and-tsconfig/
Заметки разработчика
Основы TypeScript: компилятор TypeScript (tsc) и tsconfig.json
Добро пожаловать в первую часть серии, посвящённой основам TypeScript. Мы рассмотрим компилятор TypeScript (tsc) и файл конфигурации (tsconfig.json).
Краткое руководство, показывающее, как перейти от локальной разработки к продакшену с помощью Docker, включая рабочие процессы развёртывания и CI/CD.
Если вы начинаете путь от локальной разработки к продакшену с Docker и не знаете всех необходимых шагов, это руководство для вас.
Мы рассмотрим некоторые тонкости перехода, такие как создание продакшен Docker-файлов и настройка конфигураций. Затем мы поработаем над рабочими процессами развёртывания и закончим CI/CD. К концу мы должны без проблем перенести ваше Docker-приложение в стабильную, живую среду.
https://www.dev-notes.ru/articles/devops/what-you-should-do-before-deploying-docker-to-production/
Если вы начинаете путь от локальной разработки к продакшену с Docker и не знаете всех необходимых шагов, это руководство для вас.
Мы рассмотрим некоторые тонкости перехода, такие как создание продакшен Docker-файлов и настройка конфигураций. Затем мы поработаем над рабочими процессами развёртывания и закончим CI/CD. К концу мы должны без проблем перенести ваше Docker-приложение в стабильную, живую среду.
https://www.dev-notes.ru/articles/devops/what-you-should-do-before-deploying-docker-to-production/
Заметки разработчика
Что нужно сделать перед развёртыванием Docker в продакшене
Краткое руководство, показывающее, как перейти от локальной разработки к продакшену с помощью Docker, включая рабочие процессы развёртывания и CI/CD.
❤2👍1
Добро пожаловать во вторую часть нашей серии статей о TypeScript! В этой части мы проведём сравнение между JavaScript и TypeScript, что поможет вам сделать осознанный выбор при принятии решения о переходе на TypeScript.
https://www.dev-notes.ru/articles/typescript/typescript-basics-javascript-versus-typescript/
https://www.dev-notes.ru/articles/typescript/typescript-basics-javascript-versus-typescript/
Заметки разработчика
Основы TypeScript: JavaScript в сравнении с TypeScript
В этой части мы проведём сравнение между JavaScript и TypeScript, что поможет вам сделать осознанный выбор при принятии решения о переходе на TypeScript.
В PHP есть множество встроенных констант. Некоторые из них полезны при работе с файлами, а некоторые — с целыми числами. Но все они имеют одну общую черту — все они доступны глобально. В этой небольшой статье мы рассмотрим типичные примеры и случаи использования констант в Laravel.
https://www.dev-notes.ru/articles/laravel/five-php-useful-built-in-constants/
https://www.dev-notes.ru/articles/laravel/five-php-useful-built-in-constants/
Заметки разработчика
Пять полезных встроенных PHP констант
В PHP есть множество встроенных констант. Одни из них полезны при работе с файлами, а другие — с целыми числами. Все они доступны глобально.
👍1
Добро пожаловать в третью часть нашего цикла о TypeScript! В этой части мы рассмотрим фундаментальные строительные блоки TypeScript — примитивные и базовые типы.
https://www.dev-notes.ru/articles/typescript/typescript-basics-primitive-and-basic-types/
https://www.dev-notes.ru/articles/typescript/typescript-basics-primitive-and-basic-types/
Заметки разработчика
Основы TypeScript: Примитивы и базовые типы
Добро пожаловать в третью часть цикла о TypeScript! В этой части мы рассмотрим фундаментальные строительные блоки TypeScript — примитивные и базовые типы.
В Laravel появился новый класс Number, предоставляющий несколько новых хелперов для форматирования чисел.
https://www.dev-notes.ru/articles/laravel/number-utility-class/
https://www.dev-notes.ru/articles/laravel/number-utility-class/
Заметки разработчика
Знакомство с утилитарным классом Laravel Number
В Laravel появился новый класс Number, предоставляющий несколько новых хелперов для форматирования чисел.
Добро пожаловать в четвёртую часть цикла статей о TypeScript! В этой части мы рассмотрим концепции неявных и явных типов, а также утверждения типов.
https://www.dev-notes.ru/articles/typescript/typescript-basics-implicit-and-explicit-types-assertions/
https://www.dev-notes.ru/articles/typescript/typescript-basics-implicit-and-explicit-types-assertions/
Заметки разработчика
Основы TypeScript: Неявные и Явные типы, Утверждения типов
В этой статье мы рассмотрим концепции неявных и явных типов, а также утверждения типов.
Добавление второго сервера к вашему приложению может стать отличным способом улучшить его производительность и/или повысить надёжность. Однако при добавлении второго сервера необходимо учитывать несколько моментов.
В этой статье мы обсудим ключевые моменты, которые необходимо учитывать при добавлении дополнительного сервера приложения. В качестве примера мы будем использовать Laravel, размещённый в Laravel Forge, но эти концепции могут быть применены к любому типу приложений, не ограничиваясь языком PHP.
https://www.dev-notes.ru/articles/laravel/adding-a-second-server-to-your-app/
В этой статье мы обсудим ключевые моменты, которые необходимо учитывать при добавлении дополнительного сервера приложения. В качестве примера мы будем использовать Laravel, размещённый в Laravel Forge, но эти концепции могут быть применены к любому типу приложений, не ограничиваясь языком PHP.
https://www.dev-notes.ru/articles/laravel/adding-a-second-server-to-your-app/
Заметки разработчика
Семь советов по добавлению второго сервера приложения
Добавление второго сервера к вашему приложению может стать отличным способом улучшить его производительность и/или надёжность. Однако есть несколько нюансов.
Добро пожаловать в пятую часть нашей серии статей о TypeScript! В этой части мы переключим наше внимание на создание пользовательских типов, перечислений и интерфейсов. Эти мощные конструкции позволяют создавать выразительные и чётко определённые структуры кода.
https://www.dev-notes.ru/articles/typescript/typescript-basics-creating-types-enums-and-interfaces/
https://www.dev-notes.ru/articles/typescript/typescript-basics-creating-types-enums-and-interfaces/
Заметки разработчика
Основы TypeScript: Создание типов, перечислений и интерфейсов
В этой части мы переключим внимание на создание пользовательских типов, перечислений и интерфейсов. Они позволяют создавать чётко определённые структуры кода.
PHP включает несколько очень удобных функций, ориентированных на безопасность, но вы должны знать, как правильно их использовать, иначе рискуете оставить значительную уязвимость, ожидающую своего применения!
https://www.dev-notes.ru/articles/php/security-tip-is-strip_tags-secure/
https://www.dev-notes.ru/articles/php/security-tip-is-strip_tags-secure/
Заметки разработчика
Совет по безопасности: Безопасна ли функция strip_tags()
PHP включает несколько очень удобных функций, ориентированных на безопасность, но вы должны знать, как правильно их использовать.
Добро пожаловать в шестую часть нашей серии статей о TypeScript! В этой части мы рассмотрим объединение типов, литеральные типы и размеченное объединение типов, обеспечивающие точность и выразительность в определении типов.
https://www.dev-notes.ru/articles/typescript/typescript-basics-union-literal-and-tagged-types/
https://www.dev-notes.ru/articles/typescript/typescript-basics-union-literal-and-tagged-types/
Заметки разработчика
Основы TypeScript: Объединение, Литеральные и Размеченные типы
В этой части мы рассмотрим объединение типов, литеральные типы и размеченное объединение типов, обеспечивающие точность и выразительность в определении типов.
При использовании кэширования обещание значительного повышения производительности должно быть сопоставлено с его стоимостью, связанной со сложностью и инфраструктурой. Давайте обсудим доступные варианты, чтобы вы могли использовать наилучшую реализацию для любой ситуации.
Я считаю кэширование одним из обоюдоострых мечей в разработке PHP-приложений.
С одной стороны, стратегии кэширования могут обеспечить значительный прирост производительности. С другой стороны, этот прирост может быть достигнут за счёт увеличения сложности кодовой базы или инфраструктуры. Кроме того, всегда существует угроза того, что кэширование предоставляет устаревшие данные.
Когда мы думаем о соотношении риска и вознаграждения, говоря о кэшировании, я рекомендую тщательно подходить к выбору, чтобы обеспечить положительный результат. Правильный выбор кэширования зависит от вашей инфраструктуры, вашего набора навыков и того, что делает ваше приложение.
Чтобы узнать больше об успешном решении кэширования для вашего приложения, давайте рассмотрим широкий спектр слоёв кэширования, доступных в экосистеме Laravel.
https://www.dev-notes.ru/articles/laravel/overview-of-caching-strategies/
Я считаю кэширование одним из обоюдоострых мечей в разработке PHP-приложений.
С одной стороны, стратегии кэширования могут обеспечить значительный прирост производительности. С другой стороны, этот прирост может быть достигнут за счёт увеличения сложности кодовой базы или инфраструктуры. Кроме того, всегда существует угроза того, что кэширование предоставляет устаревшие данные.
Когда мы думаем о соотношении риска и вознаграждения, говоря о кэшировании, я рекомендую тщательно подходить к выбору, чтобы обеспечить положительный результат. Правильный выбор кэширования зависит от вашей инфраструктуры, вашего набора навыков и того, что делает ваше приложение.
Чтобы узнать больше об успешном решении кэширования для вашего приложения, давайте рассмотрим широкий спектр слоёв кэширования, доступных в экосистеме Laravel.
https://www.dev-notes.ru/articles/laravel/overview-of-caching-strategies/
Заметки разработчика
Стратегии кэширования в Laravel
Обзор лучших способов добавления кэширования в "медленные" места приложения
👍1