pxlrbt / filament-favicon
Favicon Column and Entry for Filament
Fund package maintenance!
pxlrbt
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/pxlrbt/filament-favicon
Requires
- php: ^8.0
- filament/filament: ^4.0
Requires (Dev)
- laravel/pint: ^1.10
README
Filament Favicon
Installation via Composer
composer require pxlrbt/filament-favicon
Features
FaviconColumn
Display website favicons in your Filament table columns:
use pxlrbt\FilamentFavicon\Filament\FaviconColumn; FaviconColumn::make('website')
The column automatically fetches and caches favicons based on the domain value. The state must be a domain name (e.g., example.com).
If you need to extract the domain from a URL, use the state() method:
FaviconColumn::make('website') ->state(fn ($record) => parse_url($record->website, PHP_URL_HOST))
FaviconEntry
Display website favicons in your Filament infolists:
use pxlrbt\FilamentFavicon\Filament\FaviconEntry; FaviconEntry::make('website')
The entry automatically fetches and caches favicons based on the domain value. The state must be a domain name (e.g., example.com).
If you need to extract the domain from a URL, use the state() method:
FaviconEntry::make('website') ->state(fn ($record) => parse_url($record->website, PHP_URL_HOST))
Configuration
Publish the config file:
php artisan vendor:publish --tag=filament-favicon-config
Available options:
return [ // Favicon fetcher service (DuckDuckGo or IconHorse) 'diver' => \pxlrbt\FilamentFavicon\Drivers\IconHorse::class, // How long to keep favicons before re-fetching 'stale_after' => CarbonInterval::week(1), // Storage configuration 'storage' => [ 'disk' => 'public', 'directory' => 'favicons', ], ];
Favicon Drivers
This package includes two favicon drivers:
IconHorse (default)
- Dedicated favicon service with enhanced reliability
- Free tier: up to 1,000 lookups per month
- Paid plans available for higher volumes
- Class:
\pxlrbt\FilamentFavicon\Drivers\IconHorse::class
DuckDuckGo
- Uses DuckDuckGo's search engine index to fetch favicons
- No rate limits or usage restrictions
- Free and unlimited
- Class:
\pxlrbt\FilamentFavicon\Drivers\DuckDuckGo::class
To switch drivers, update the driver option in your config file.
Clear Favicons
Clear all cached favicons:
php artisan favicons:clear
Contributing
If you want to contribute to this packages, you may want to test it in a real Filament project:
- Fork this repository to your GitHub account.
- Create a Filament app locally.
- Clone your fork in your Filament app's root directory.
- In the
/filament-favicondirectory, create a branch for your fix, e.g.fix/error-message.
Install the packages in your app's composer.json:
"require": { "pxlrbt/filament-favicon": "dev-fix/error-message as main-dev", }, "repositories": [ { "type": "path", "url": "filament-favicon" } ]
Now, run composer update.