emados / php-statical
允许轻松创建别名,代理静态调用到类的单个实例。
v0.1
2016-07-25 08:35 UTC
This package is not auto-updated.
Last update: 2024-09-12 03:11:22 UTC
README
允许轻松创建别名,代理静态调用到类的单个实例。
安装
composer require emados/php-statical
用法
创建一个别名类,该类将作为特定类的静态代理。例如,对于名为 App\Core\Language
的类,您可以在同一命名空间中创建一个具有不同名称的别名类 App\Core\Lang
,或者在不同命名空间中使用相同名称 \Language
或两者 Lang
。
final class Lang { use Statical; protected function targetClassInstance() { return new \App\Core\Language(); } }
现在,您可以使用代理类为目标类创建一个单例实例,并允许通过静态方式访问其所有公共 API。
注意
如果您使用具有自动完成功能的 IDE,您可能知道它不会与代理类(别名)一起工作,您可以通过使用 phpdoc 注释来解决这个问题,尽管这需要您在更新目标类 API 时更新代理类的文档。
/** * @method static string current() Returns current language code. * @method static void force(string $lang) Forces using a specific language code. * ... */ final class Lang { use Statical; protected function targetClassInstance() { return new \App\Core\Language(); } }