Getters and Setters helpers for some of Laravel's core packages.
These components allow you to manually set and retrieve a Laravel component, e.g. a configuration Repository. Additionally, when no component instance has been specified, it will automatically default to whatever Laravel has bound in the IoC.
You can think of these helpers as alternatives, or supplements to Laravel's native Facades.
Imagine that you have a component that depends on Laravel's configuration Repository. To ensure that your component is able to gain access to it, use the ConfigTrait.
use Aedart\Support\Helpers\Config\ConfigTrait;
class Box
{
use ConfigTrait;
}
When you use your component, you will automatically have the configuration Repository available, when your are working inside a typical Laravel Application.
$box = new Box();
$config = $box->getConfig();
You can also specify a custom Repository, should you wish it.
$box->setConfig($myCustomRepository);
For each available aware-of helper, there is a complementary interface, so that you can enforce your dependencies.
use Aedart\Support\Helpers\Config\ConfigTrait;
use Aedart\Contracts\Support\Helpers\Config\ConfigAware;
class Box implements ConfigAware
{
use ConfigTrait;
}
You can also easily overwrite the default instance provided, by overwriting the getDefault[Dependency] method, which exists inside each aware-of trait.
<?php
use Aedart\Support\Helpers\Config\ConfigTrait;
use Illuminate\Contracts\Config\Repository;
use Illuminate\Config\Repository as Config;
class Box
{
use ConfigTrait;
public function getDefaultConfig(): ?Repository
{
return new Config([
'width' => 25,
'height' => 25
]);
}
}
If you wish to use these helpers outside a typical Laravel Application, then you must ensure that the required services have been registered in the IoC.
If you are a regular Laravel user, then you most likely have your own desired way to obtain dependencies. Most likely, you either resolve these via the Service Container or rely on Facades. There is absolutely nothing wrong with that and you should continue to do so, if it feels right.
As previously mentioned, these components are alternatives or supplementary - either they make sense for you to use or they do not. In other words, you have to decide for yourself when and how to use these, if at all. Should you do, then remember that they do add a bit of additional complexity to your components.
These are the available aware-of helpers for Laravel components. The Defaults to binding column illustrates what Service Container binding a given trait defaults to, if no custom has been set or overwritten. See Facade Class Reference for additional information.
Note
Corresponding aware-of interfaces can be found inside the Aedart\Contracts\Support\Helpers\* namespace.
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Auth\Access\GateTrait | Illuminate\Contracts\Auth\Access\Gate |
Aedart\Support\Helpers\Auth\AuthFactoryTrait | Illuminate\Contracts\Auth\Factory |
Aedart\Support\Helpers\Auth\AuthTrait | Illuminate\Contracts\Auth\Guard |
Aedart\Support\Helpers\Auth\PasswordBrokerFactoryTrait | Illuminate\Contracts\Auth\PasswordBrokerFactory |
Aedart\Support\Helpers\Auth\PasswordTrait | Illuminate\Contracts\Auth\PasswordBroker |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Broadcasting\BroadcastFactoryTrait | Illuminate\Contracts\Broadcasting\Factory |
Aedart\Support\Helpers\Broadcasting\BroadcastTrait | Illuminate\Contracts\Broadcasting\Broadcaster |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Bus\BusTrait | Illuminate\Contracts\Bus\Dispatcher |
Aedart\Support\Helpers\Bus\QueueingBusTrait | Illuminate\Contracts\Bus\QueueingDispatcher |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Cache\CacheFactoryTrait | Illuminate\Contracts\Cache\Factory |
Aedart\Support\Helpers\Cache\CacheStoreTrait | Illuminate\Contracts\Cache\Store |
Aedart\Support\Helpers\Cache\CacheTrait | Illuminate\Contracts\Cache\Repository |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Config\ConfigTrait | Illuminate\Contracts\Config\Repository |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Console\ArtisanTrait | Illuminate\Contracts\Console\Kernel |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Container\ContainerTrait | Illuminate\Contracts\Container\Container |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Cookie\CookieTrait | Illuminate\Contracts\Cookie\Factory |
Aedart\Support\Helpers\Cookie\QueueingCookieTrait | Illuminate\Contracts\Cookie\QueueingFactory |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Database\ConnectionResolverTrait | Illuminate\Database\ConnectionResolverInterface |
Aedart\Support\Helpers\Database\DbTrait | Illuminate\Database\ConnectionInterface |
Aedart\Support\Helpers\Database\SchemaTrait | Illuminate\Database\Schema\Builder |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Encryption\CryptTrait | Illuminate\Contracts\Encryption\Encrypter |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Events\EventTrait | Illuminate\Contracts\Events\Dispatcher |
Aedart\Support\Helpers\Events\DispatcherTrait | Illuminate\Contracts\Events\Dispatcher |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Filesystem\CloudStorageTrait | Illuminate\Contracts\Filesystem\Cloud |
Aedart\Support\Helpers\Filesystem\FileTrait | Illuminate\Filesystem\Filesystem |
Aedart\Support\Helpers\Filesystem\StorageFactoryTrait | Illuminate\Contracts\Filesystem\Factory |
Aedart\Support\Helpers\Filesystem\StorageTrait | Illuminate\Contracts\Filesystem\Filesystem |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Foundation\AppTrait | Illuminate\Contracts\Foundation\Application |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Hashing\HashTrait | Illuminate\Contracts\Hashing\Hasher |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Http\RequestTrait | Illuminate\Http\Request |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Logging\LogManagerTrait | Illuminate\Log\LogManager |
Aedart\Support\Helpers\Logging\LogTrait | \Psr\Log\LoggerInterface |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Mail\MailerTrait | Illuminate\Contracts\Mail\Mailer |
Aedart\Support\Helpers\Mail\MailQueueTrait | Illuminate\Contracts\Mail\MailQueue |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Notifications\NotificationDispatcherTrait | Illuminate\Contracts\Notifications\Dispatcher |
Aedart\Support\Helpers\Notifications\NotificationFactoryTrait | Illuminate\Contracts\Notifications\Factory |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Queue\QueueFactoryTrait | Illuminate\Contracts\Queue\Factory |
Aedart\Support\Helpers\Queue\QueueMonitorTrait | Illuminate\Contracts\Queue\Monitor |
Aedart\Support\Helpers\Queue\QueueTrait | Illuminate\Contracts\Queue\Queue |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Redis\RedisFactoryTrait | Illuminate\Contracts\Redis\Factory |
Aedart\Support\Helpers\Redis\RedisTrait | Illuminate\Contracts\Redis\Connection |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Routing\RedirectTrait | Illuminate\Routing\Redirector |
Aedart\Support\Helpers\Routing\ResponseFactoryTrait | Illuminate\Contracts\Routing\ResponseFactory |
Aedart\Support\Helpers\Routing\RouteRegistrarTrait | Illuminate\Contracts\Routing\Registrar |
Aedart\Support\Helpers\Routing\UrlGeneratorTrait | Illuminate\Contracts\Routing\UrlGenerator |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Session\SessionManagerTrait | Illuminate\Session\SessionManager |
Aedart\Support\Helpers\Session\SessionTrait | Illuminate\Contracts\Session\Session |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Translation\TranslatorTrait | Illuminate\Contracts\Translation\Translator |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\Validation\ValidatorFactoryTrait | Illuminate\Contracts\Validation\Factory |
| Trait | Defaults to binding |
|---|
Aedart\Support\Helpers\View\BladeTrait | Illuminate\View\Compilers\BladeCompiler |
Aedart\Support\Helpers\View\ViewFactoryTrait | Illuminate\Contracts\View\Factory |