So I have created a singelton called SettingService which I am registering inside a ServiceProvider.
public function register()
{
$this->app->singleton('WDSettingService', function ($app) {
return new SettingService();
});
In addtion I created a Facade for easier use:
use Illuminate\Support\Facades\Facade;
/**
* @method static \MyPackage\Settings\Services\SettingService getSettingObjects()
* @method static \MyPackage\Settings\Services\SettingService getSetting()
* @method static \MyPackage\Settings\Services\SettingService getSettings()
*/
class Setting extends Facade
{
protected static function getFacadeAccessor()
{
return 'MyPackageSettingService';
}
}
Now the issue is if I invoke getSettingObjects everything works fine. But my intelephense complains about the return type (see picture).
/** @param 'obstruct'|'clear' $passwordAs */
public function getSettingObjects($passwordAs = 'clear'): array
{
if (!$this->settingObjects) {
$this->setSettingObjects();
}
if ($passwordAs === 'clear') {
return $this->settingObjects;
}
if ($passwordAs === 'obstruct') {
return $this->obstructPassword($this->settingObjects);
}
return [];
}