mtr-design/laravel-logo-fetcher
Laravel Logo Fetcher
Installation
Require this package with composer:
composer require mtr-design/laravel-logo-fetcher
Add the ServiceProvider to the providers array in config/app.php
MTRDesign\LaravelLogoFetcher\ServiceProvider::class,
Copy the package config to your local config with the publish command:
php artisan vendor:publish --provider="MTRDesign\LaravelLogoFetcher\ServiceProvider"
You now should have config/logo_fetcher.php file. You can open and tweak the configuration options
Usage
- Resolve the \MTRDesign\LaravelLogoFetcher\LogoFetcher class from the container
- Set a provider using the provider() method
- Call the fetch() method to get the logo
- You can chain with store() to save it using your default storage disk
If you want to directly store the logo:
$logoFetcher = app(\MTRDesign\LaravelLogoFetcher\LogoFetcher::class);
$logoFetcher->provider(Clearbit::class)
->fetch($domain)
->store();
If you want to just fetch the logo:
$logoFetcher = app(\MTRDesign\LaravelLogoFetcher\LogoFetcher::class);
$logo = $logoFetcher
->provider(Clearbit::class)
->fetch($domain)
->logo;
One extra example to illustrate the domain() helper and the path property, assuming that you injected the logo fetcher class:
$path = $this->logoFetcher
->provider(Clearbit::class)
->domain($domain)
->fetch()
->store()
->path;
Providers
You can define your own providers - just create a class and implement the MTRDesign\LaravelLogoFetcher\Providers\ProviderContract
Error handling
Different exceptions will be raised if the fetching fails but they all inherit from the \MTRDesign\LaravelLogoFetcher\Exceptions\LogoFetcherException. All are having human-readable messages and can be safely output to the client. You can find all the exceptions in the \MTRDesign\LaravelLogoFetcher\Exceptions namespace.
Related Packages
This is package generate Qrcode using some services like google qrcode. This pac...
A Filament table column that renders a company logo via Logo.dev from a URL or d...
Boost Lighthouse and PageSpeed scores by hiding cookie banners, chat widgets and...