gregoriohc/byname

PHP trait 用于类/对象的命名(昵称)

v1.0.2 2021-06-08 19:00 UTC

This package is auto-updated.

Last update: 2024-09-09 02:54:23 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

PHP trait 用于类/对象的命名(昵称)。

安装

通过 Composer

$ composer require gregoriohc/byname

用法

默认情况下,类 byname 是类 basename(不带命名空间)。

class MyClass {
    use HasByname;
}

echo MyClass::byname();
// MyClass

移除前缀和/或后缀

您可以通过覆盖 bynamePrefixbynameSuffix 方法并返回要移除的字符串或字符数来移除 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)。请参阅许可证文件获取更多信息。