
10.05.2022, 23:03
|
|
Постоянный
Регистрация: 01.03.2016
Сообщений: 828
С нами:
5368054
Репутация:
448
|
|
Сообщение от EasyGameProtection
Этот момент решается индивидуально для каждого из языков.
Для PHP можно юзать что-то типа
PHP:
Код:
/** @var FooClass */
$foo
=
$container
-
>
get
(
'foo'
)
;
Или же с версии 7.4 для свойств классов можно указывать тип
PHP:
Код:
private
FooClass
$foo
;
Конкретно в моем случае все немного проще, я могу указать какой тип возвращается из контейнера
Ну вот мне было интересно как с этим работают в контексте php. Каждый раз при использовании писать аннотацию не сильно прикольно. Хорошим ли тоном будет создать фасад, например App.php, в нем сделать статик методы которые будут брать из контейнера компоненты, например:
PHP:
Код:
class
App
extends
Facade
{
public
static
function
getFoo
(
)
:
FooInterface
{
return
static
:
:
$app
-
>
get
(
'foo'
)
;
}
}
$foo
=
App
:
:
getFoo
(
)
;
И обращаться всегда через фасад, метод которого знает тип возвращаемого значения.
|
|
|