mtr-design / laravel-logo-fetcher
Fetching companies' logos by their domain names
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: ^6.2
- illuminate/support: ~5.4
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.7
This package is not auto-updated.
Last update: 2024-11-10 03:20:36 UTC
README
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.