for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace UnicornFail\Emoji\Extension\Twemoji;
use League\Configuration\ConfigurationBuilderInterface;
use Nette\Schema\Expect;
use UnicornFail\Emoji\Environment\EnvironmentBuilderInterface;
use UnicornFail\Emoji\Event\DocumentParsedEvent;
use UnicornFail\Emoji\Exception\ExtensionRequiredLibraryException;
use UnicornFail\Emoji\Extension\ConfigurableExtensionInterface;
final class TwemojiExtension implements ConfigurableExtensionInterface
{
public function __construct()
if (! \class_exists('\Astrotomic\Twemoji\Twemoji')) {
throw new ExtensionRequiredLibraryException('astrotomic/php-twemoji', $this);
}
public function configureSchema(ConfigurationBuilderInterface $builder): void
$builder->addSchema('twemoji', Expect::structure([
'base' => Expect::string('https://twemoji.maxcdn.com/v/latest'),
'classes' => Expect::arrayOf('string')->default(['twemoji']),
'size' => Expect::int()->nullable(),
'type' => Expect::anyOf('png', 'svg')->default('svg'),
]));
public function register(EnvironmentBuilderInterface $environment): void
$environment->addEventListener(DocumentParsedEvent::class, new TwemojiProcessor());