gregoriohc / byname
PHP trait 用于类/对象的命名(昵称)
v1.0.2
2021-06-08 19:00 UTC
Requires
- php: ~5.6|~7.0|~8.0
- gregoriohc/static-cache: ^1.0
Requires (Dev)
- phpunit/phpunit: >=4.0
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2024-09-09 02:54:23 UTC
README
PHP trait 用于类/对象的命名(昵称)。
安装
通过 Composer
$ composer require gregoriohc/byname
用法
默认情况下,类 byname 是类 basename(不带命名空间)。
class MyClass { use HasByname; } echo MyClass::byname(); // MyClass
移除前缀和/或后缀
您可以通过覆盖 bynamePrefix
和 bynameSuffix
方法并返回要移除的字符串或字符数来移除 byname 的某些字符。
class MyClass { use HasByname; protected static function bynamePrefix() { return 'My'; } } echo MyClass::byname(); // Class
class MyClass { use HasByname; protected static function bynameSuffix() { return 5; } } echo MyClass::byname(); // My
一个更复杂的示例,结合继承
abstract class BaseController { use HasByname; protected static function bynameSuffix() { return 'Controller'; } public function model() { $class = '\\App\\' . $this->byname(); return new $class(); } } class UserController extends BaseController { ... } echo UserController::byname(); // User $user = (new UserController)->model(); print_r($user); // App\User Object (...)
自定义 byname
您可以通过覆盖 bynameValue
方法来自定义 byname。
class MyClass { use HasByname; protected static function bynameValue() { return 'Cool'; } } echo MyClass::byname(); // Cool
大小写
您还可以以三种不同的大小写方式获取名称
class MyClass { use HasByname; } echo MyClass::bynameSnake(); // my_class echo MyClass::bynameCamel(); // myClass echo MyClass::bynameStudly(); // MyClass
测试
$ composer test
变更日志
请参阅变更日志获取有关最近更改的更多信息。
贡献
请参阅贡献指南获取详细信息。
安全性
如果您发现任何安全相关的问题,请通过电子邮件gregoriohc@gmail.com而不是使用问题跟踪器来报告。
社交软件
您可以使用此包,但如果它进入您的生产环境,我非常感谢您在社交网络上分享。
致谢
许可证
MIT 许可证(MIT)。请参阅许可证文件获取更多信息。