Surrogates provide a "static" interface to classes that are available in the application's service container. The Magister 6 API ships with many surrogates which provide access to almost all of the Magister 6 API's features. The Magister 6 API's surrogates serve as "static proxies" to underlying classes in the service container, providing the benefit of a terse, expressive syntax while maintaining more testability and flexibility than traditional static methods.
All of the Magister 6 API's surrogates are defined in the Magister\Services\Support\Surrogates
namespace. So, we can easily access a surrogate like so:
use Magister\Services\Support\Surrogates\Config;
echo Config::get('app.key');
Throughout the Magister 6 API's documentation, many of the examples will use surrogates to demonstrate various features of the API.
Below you will find every surrogate and its underlying class. This is a useful tool for quickly digging into the API documentation for a given surrogate root. The service container binding key is also included where applicable.
Surrogate | Class | Service Container Binding |
---|---|---|
App | Magister\Magister |
app |
Auth | Magister\Services\Auth\AuthManager |
auth |
Config | Magister\Services\Config\Repository |
config |
Cookie | Magister\Services\Cookie\CookieJar |
cookie |
Crypt | Magister\Services\Encryption\Encrypter |
encrypter |
Event | Magister\Services\Events\Dispatcher |
events |
File | Magister\Services\Filesystem\Filesystem |
files |
Http | GuzzleHttp\Client |
http |