Next-Drupal 1.6
2022年12月6日 - @shadcn
今天的版本是一个重大的版本。我们宣布支持 **Next.js 13** 和 **Drupal 10**。
我们还重写了按需重新验证的实现。Drupal 模块现在附带了基于 Drupal 事件 API 和插件系统的 **稳定的按需重新验证** 功能。
我们每周的下载量接近 **3000+**。感谢大家。🎉
Next.js 13
我们已将 next-drupal
和(JSON:API 和 GraphQL)启动器更新到 Next.js 13。
您现在可以安全地更新您的网站,并开始实施新的 Next.js 13 功能,例如新的 <Image />
和 <Link />
组件,添加 @next/font
...等等。
yarn add next-drupal@latest
Drupal 10
next
模块已更新到 Drupal 10。我们已删除所有弃用的代码和 API。
注意:这也意味着,从 1.6.0
版本开始,我们将停止支持 Drupal 8。您可以将您的网站升级到 Drupal 9.3+ 或 Drupal 10(发布后)。
按需重新验证
按需重新验证的实现已在 1.6.0
版本中完全重写,现在已稳定。
按需重新验证现在建立在 Drupal 的事件 API 和 Revalidator
插件之上。
您可以提供自己的 Revalidator
插件,以便在插入、更新或删除实体时执行自定义代码。
<?php
namespace Drupal\custom_module\Plugin\Next\Revalidator;
use Drupal\next\Event\EntityActionEvent;
use Drupal\next\Plugin\RevalidatorBase;
/**
* Provides a custom revalidator.
*
* @Revalidator(
* id = "custom",
* label = "Custom Revalidator",
* description = "Description for the custom revalidator"
* )
*/
class CustomRevalidator extends RevalidatorBase {
/**
* {@inheritdoc}
*/
public function revalidate(EntityActionEvent $event): bool {
// Called when entity is created, updated or deleted.
}
}
请参阅 Revalidator 插件文档。
实体事件
我们还添加了实体事件,以便您可以为插入、更新或更新实体时构建自己的事件订阅者。
您还可以使用事件订阅者在 **重新验证后** 执行代码。
<?php
namespace Drupal\next_tests\EventSubscriber;
use Drupal\next\Event\EntityEvents;
use Drupal\next\Event\EntityRevalidatedEventInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Defines an event subscriber for entity revalidated events.
*/
class EventSubscriber implements EventSubscriberInterface {
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
$events[EntityEvents::ENTITY_REVALIDATED] = ['onRevalidated'];
return $events;
}
/**
* Responds to entity revalidated.
*
* @param \Drupal\next\Event\EntityRevalidatedEventInterface $event
* The event.
*/
public function onRevalidated(EntityRevalidatedEventInterface $event) {
if ($event->isRevalidated()) {
// Do something if entity has been successfully revalidated.
}
}
}
版本匹配
从 1.6.0
版本开始,我们将对 next-drupal
和 next
模块进行次要版本匹配。
提升 next-drupal
的次要版本将提升 next
模块的相同版本。
注意:为了匹配 next-drupal 1.6.0
的次要版本,我们将跳过 next 1.5.0
。
升级
您可以按照我们的升级指南 此处 升级到 1.6.0
。