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

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

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

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

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

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

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



Кратко о главном в релизе Laravel 10.12

Команда Laravel выпустила версию 10.12, в которой добавлены условные методы для Sleep, новое событие тайм-аута рабочего процесса, параметры проверки временных зон и многое другое.

Условный сон.

Bradie Tilley внес свой вклад в возможность добавления условий в новый класс Sleep, представленный в Laravel 10.10:

Sleep::for(1)->second()->unless($task->completed());
Sleep::for(1)->second()->when($task->pending());
 
// Closures
Sleep::for(1)->second()->unless(fn () => $task->completed());
Sleep::for(1)->second()->when(fn () => $task->pending());

Произошло событие таймаута в работе.

Saeed Hosseini предложил событие JobTimedOut, которое вызывается обработчиком очереди, когда время выполнения задания истекло:

use Illuminate\Queue\Events\JobTimedOut;
 
/**
 * The event to listener mappings for the application.
 *
 * @var array<class-string, array<int, class-string>>
 */
protected $listen = [
    JobTimedOut::class => [
        SendJobTimedOutNotification::class,
    ],
];

Поддержка встроенных вложений для почтовых файлов Markdown.

Nuno Maduro внес вклад в поддержку встроенных вложений для Markdown почтовых файлов:

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

Подробности см. в Pull Request #47140.

HTTP-сообщение о недопустимом методе.

Azim Kordpour предоставил сообщение для HTTP статуса 405 ("Method Not Allowed"), которое можно использовать для проверки того, что маршрут не отвечает на определенные HTTP запросы.

$this->get('/')->assertOk();
 
$this->post('/')->assertMethodNotAllowed();
$this->patch('/')->assertMethodNotAllowed();
$this->put('/')->assertMethodNotAllowed();
$this->delete('/')->assertMethodNotAllowed();

Метод элоквента forceCreateQuietly()

Volodya Kurshudyan внес в Eloquent метод forceCreateQuietly(), который принудительно создает модель, не вызывая никаких событий модели:

Post::forceCreateQuietly($data);

Добавление параметров в правило проверки временных зон.

Artyom Yavdoshchuk добавил поддержку использования параметров с правилом валидации timezone:

'timezone' // works as before
'timezone:Africa' // accepts only Africans timezones
'timezone:All' // works the same as without any parameters
'timezone:All_with_BC' // accepts timezones with Backward Compatibility (Europe/Kiev will be accepted)
'timezone:Per_country,US' // accepts only US timezones

Пример из тестовых примеров в pull request:

$v = new Validator(
    $trans,
    ['foo' => 'australia/sydney'],
    ['foo' => 'Timezone:Australia']
);
 
$this->assertFalse($v->passes());

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

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

Добавлено в Laravel 10.12

  • Добавлен Illuminate/Queue/Events/JobTimedOut.php (#47068)
  • Добавлены методы when() и unless() в Illuminate/Support/Sleep (#47114)
  • Добавлена поддержка встроенных вложений для почтовых файлов в формате markdown (#47140)
  • Добавлен Illuminate/Testing/Concerns/AssertsStatusCodes::assertMethodNotAllowed() (#47169)
  • Добавлен метод forceCreateQuietly (#47162)
  • Добавлены параметры в правило проверки временных зон (#47171)

Исправлено в Laravel 10.12

  • Исправление комбинаций singleton и api singletons creatable|destryoable|only|except (#47098)
  • Не используйте пустой key или secret для DynamoDBClient (#47144)

Изменено в Laravel 10.12

  • Удаление сессии при удалении данных аутентификации (#47141)
  • Добавлена обработка ошибок и обеспечение повторного включения ограничений foreign key в Illuminate/Database/Schema/Builder::withoutForeignKeyConstraints() (#47182)

Доработано в Laravel 10.12

  • Удалите неиспользуемые операторы else (#47161)

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

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

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

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

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

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