Laravel 10.7 — новая версия популярного PHP-фреймворка
Вышла новая версия Laravel 10.7

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



PHP-фреймворк Laravel выпустил версию 10.7

PHP-фреймворк Laravel выпустил версию 10.7 12 апреля 2023 года, включающую новые возможности и улучшения, внесённые различными разработчиками сообщества Laravel.

Одним из заметных дополнений является метод pipe() в слое Process, который позволяет выполнять команды последовательно и передавать вывод предыдущей команды на вход следующей.

Другим дополнением является метод setValue() в классе Validator, который позволяет разработчикам устанавливать значение заданного атрибута. Кроме того, релиз включает исправления различных ошибок и проблем, о которых сообщало сообщество Laravel.

Давайте подробнее рассмотрим возможности и изменения, представленные в Laravel 10.7.

Добавлен метод pipe() для слоя Process

Wendell Adriel предоставил метод pipe() для слоя Process. Этот метод будет выполнять команды последовательно и передавать вывод предыдущей команды на вход следующей:

$pipe = Process::pipe(function ($pipe) {
    $pipe->command('cat test.txt'),
    $pipe->command('grep -i "foo"'),
});
 
$pipe->run()->output(); // "foo"

Это может быть удобно, когда требуется связать результат выполнения группы команд.

Метод setValue() класса Validator

Joël Harkes предоставил метод setValue() в классе Validator для установки значения заданного атрибута. Автор PR дал следующее описание необходимости этого метода:

Для разработки пакетов я хотел бы сделать возможным для правил переопределять данные, чтобы сделать валидацию "безопасной для типов". Сейчас нет возможности эффективно обновить значение в строке. Я могу вызвать setData(), но это приведет к полной перезагрузке самих правил, а также к значительному замедлению работы.

// с этим PR:
$this->validator->setValue($attribute, $value);
 
// раньше: очень медленно!
Arr::set($this->data, $attribute, $value);
$this->validator->setData($this->data);

Если вы хотите узнать больше подробностей, ознакомьтесь с описанием к Pull Request #46716.

Проверка наличия вызываемых слушателей событий в тестах.

Luke Kuzmish предоставил возможность подтверждать вызываемые события слушателей, что ранее было невозможно:

Event::assertListening(
    StationAssistanceRequested::class,
    CreateDemandWorkOrder::class, // имеет метод __invoke()
);

Подробности см. в выпуске #46652 и Pull Request #46683.

Примечания к релизу.

Полный список новых функций и обновлений можно посмотреть ниже, а разницу между версиями 10.6.0 и 10.7.1 - на GitHub. Следующие примечания к выпуску взяты непосредственно из журнала изменений:

v10.7.1

Изменено

  • Изменен метод Illuminate/Process/Factory::pipe(). Он будет запускать pipe немедленно (e34ab39)

v10.7.0

Добавлено

  • Позволяет использовать Illuminate/Foundation/Testing/WithFaker, когда приложение не привязано (#46529)
  • Позволяет Event::assertListening проверять наличие вызываемых слушателей событий (#46683)
  • Добавлен Illuminate/Process/Factory::pipe() (#46527)
  • Добавлен Illuminate/Validation/Validator::setValue (#46716)

Исправлено

  • Исправление PHP 8.0 для заданий Closure (#46505)
  • Исправление ошибки preg_split при наличии слэша в атрибуте в Illuminate/Validation/ValidationData (#46549)
  • Исправлена несовместимость Cache::spy с Cache::get (#46689)
  • server command: Исправлен вывод Closing сервера при недействительном $requestPort (#46726)
  • Исправлено вложенное объединение при отсутствии экземпляра JoinClause (#46712)
  • Исправление метода построения запросов whereBetween с временными интервалами даты carbon (#46720)

Изменено

  • Удаление ненужных параметров в методах creatable() / destroyable() в Illuminate/Routing/PendingSingletonResourceRegistration (#46677)
  • Возврат ненулевого кода выхода для не перехваченных исключений (#46541)

Перевод с английского официальных новостей Laravel:
https://laravel-news.com/laravel-10-7-0

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню