Skip to content

pxlrbt/filament-favicon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

header

Filament Favicon

Latest Version on Packagist Software License GitHub Workflow Status Total Downloads

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-favicon directory, 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.

Credits

About

Favicon components for Filament PHP

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Languages