Install via Composer:
composer require derrabus/twig-awesome-bundle
Register the bundle in your config/bundles.php:
Derrabus\TwigAwesomeBundle\DerrabusTwigAwesomeBundle::class => ['all' => true],
Ensure your project meets PHP 8.4 and Symfony 8.0+ requirements (v5.0.0 drops Symfony 7 and FontAwesome 6 support). First use case: Render FontAwesome 7 icons in Twig templates:
{{ icon('fa-solid fa-user', { class: 'text-blue-500' }) }}
config/twig_awesome.php (e.g., fa-solid, fa-regular prefixes).icon() Twig function to render icons with custom classes/attributes:
{{ icon('fa-brands fa-github', { size: '2x', aria_label: 'GitHub' }) }}
icon() to avoid bloating initial JS/CSS.$this->container->get('twig_awesome.icon_sets')->addSet('my-icons', [
'home' => 'path/to/my-icon.svg',
]);
# config/packages/twig_awesome.yaml
assets:
enabled: true
version: 'v1'
v4.6.0 for older versions.symfony/* packages).fontawesome/free-* packages).config/twig_awesome.php includes the correct icon sets (e.g., fa-solid, fa-brands).php bin/console cache:clear) if icon() function fails.public/build/ for compiled icons if using assets.enabled: true.php bin/console config:dump-reference DerrabusTwigAwesomeBundle | grep twig_awesome
$twig->addFilter(new \Twig\TwigFilter('icon_modifier', function ($icon) { ... }));
TwigAwesomeBundleTest traits for PHPUnit (requires PHPUnit 12.5+):
use Derrabus\TwigAwesomeBundle\Tests\Twig\IconFunctionTestCase;
assets.version to a hash of your icon set to leverage browser caching.How can I help you explore Laravel packages today?