I'm trying to override (not extend) a vendor class. So whenever the vendor class gets called (within the vendor code), I want it to call my custom class.
It looks like I need to alias the class in my App/Providers/AppServiceProvider
I've tried this:
$loader = \Illuminate\Foundation\AliasLoader::getInstance();
$loader->alias('Vendor\VendorName\Class', 'App\Vendor\MyCustomClass');
But this doesn't do anything.
I can get my class registered fine:
$this->app->register(
'App\Vendor\MyCustomClass'
);
But this then fails as the constructor relys on other variables not available at that point. I literally just need the app to override any call to Vendor\VendorName\Class
with App\Vendor\MyCustomClass
So the solution was create a new ServiceProvider
php artisan make:provider MyServiceProvider
Which extended the Vendor service provider (found within config/app.php). Within that ServiceProvider, add my alias within the overridden Register
method
$loader->alias('Vendor\VendorName\Class', 'App\Vendor\MyCustomClass');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With