Getting Started
Favicon Generation
Web Manifest
Metadata
There are two primary ways to trigger favicon image generation: using the command line and programmatically, such as from listening to Statamic events.
Before we can generate favicons, we need to let Site Essentials for Statamic know what image to use as the source image. This is done by using the Favicon facade's getSourceUsing
method. The returned value of this method must be the path to the source image on the local filesystem, or null
if an image is not available.
As an example, this is how we might use an asset stored within a global set:
1<?php 2 3namespace App\Providers; 4 5use Illuminate\Support\ServiceProvider; 6use Statamic\Facades\GlobalSet; 7use Stillat\StatamicSiteEssentials\Support\Facades\Favicons; 8 9class AppServiceProvider extends ServiceProvider10{11 /**12 * Bootstrap any application services.13 */14 public function boot(): void15 {16 Favicons::getSourceUsing(function () {17 $settings = GlobalSet::find('site_settings')->inDefaultSite();18 19 if (! $settings) {20 return null;21 }22 23 $favicon = $settings['favicon'];24 25 if (! $favicon) {26 return null;27 }28 29 $assetContainer = $favicon->container();30 31 return $assetContainer->disk()->path($favicon->path());32 });33 }34 35}
If you have a static file you'd like to use a favicon source, you can also simply return a path to that as well:
1<?php 2 3namespace App\Providers; 4 5use Illuminate\Support\ServiceProvider; 6use Stillat\StatamicSiteEssentials\Support\Facades\Favicons; 7 8class AppServiceProvider extends ServiceProvider 9{10 /**11 * Bootstrap any application services.12 */13 public function boot(): void14 {15 Favicons::getSourceUsing(function () {16 return resource_path('my/favicon.svg');17 });18 }19 20}
Favicons can be generated from the command line by running the following Artisan command from the root of your project:
1php artisan site-essentials:generate-favicons
We can programmatically generate favicons using the Favicons
facade:
1<?php2 3use Stillat\StatamicSiteEssentials\Support\Facades\Favicons;4 5Favicons::generate();
Typical use-cases for doing this are listening for changes to assets contained in a global set, or some other entry that contains a configurable favicon.
The following amazing people help support this site and my open source projects ♥️
If you're interesting in supporting my work and want to show up on this list, check out my GitHub Sponsors Profile.