Git Product home page Git Product logo

php-enum-enhancements's Introduction

anik/php-enum-enhancements codecov PHP Version Require Latest Stable Version

anik/php-enum-enhancements provides a few methods to retrieve keys, values or kv pair on PHP Enums.

Documentation

Installation

To install the package, run

composer require anik/php-enum-enhancements

Usage

Use the Anik\PhpEnumEnhancements\Enhancement trait in any of your Enum, and you'll have access to the following method.

# [\UnitEnum | \BackedEnum ]::case->getName(/* null or callable */)
# \BackedEnum::case->getValue(/* null or callable */)
# [\UnitEnum | \BackedEnum ]::names(/* null or callable */)
# \BackedEnum::values(/* null or callable */)
# \BackedEnum::kvPair(
        /* nameCallback: null or callable, */ 
        /* valueCallback: null or callable, */ 
        /* valueAsKey: bool */
#   )

Examples

For the enum below,

enum PostStatus: string {
    use \Anik\PhpEnumEnhancements\Enhancement;
    
    case DRAFT = 'draft';
    case UNDER_REVIEW = 'under_review';
    case PUBLISHED = 'published';
}
  • PostStatus::DRAFT->getName() will return "DRAFT" .

  • PostStatus::DRAFT->getName('strtolower') will return "draft" .

  • PostStatus::DRAFT->getValue() will return "draft" .

  • PostStatus::DRAFT->getValue('ucfirst') will return "Draft" .

  • PostStatus::names() will return [ "DRAFT", "UNDER_REVIEW", "PUBLISHED", ] .

  • PostStatus::names('strtolower') will return [ "draft", "under_review", "published", ] .

  • PostStatus::values() will return [ "draft", "under_review", "published", ] .

  • PostStatus::values('ucfirst') will return [ "Draft", "Under_review", "Published", ] .

  • PostStatus::kvPair() will return [ "draft" => "DRAFT", "under_review" => "UNDER_REVIEW", "published" => "PUBLISHED", ] .

  • PostStatus::kvPair(nameCallback: 'strtolower') will return [ "draft" => "draft", "under_review" => "under_review", "published" => "published", ] .

  • PostStatus::kvPair(valueCallback: 'ucfirst') will return [ "Draft" => "DRAFT", "Under_review" => "UNDER_REVIEW", "Published" => "PUBLISHED", ] .

  • PostStatus::kvPair(valueAsKey: false) will return [ "DRAFT" => "draft", "UNDER_REVIEW" => "under_review", "PUBLISHED" => "published", ] in ['NAME_OF_ENUM' => 'VALUE_OF_ENUM'] format.

Issues?

If you find any issue/bug/missing feature, please submit an issue and PRs if possible.

php-enum-enhancements's People

Contributors

ssi-anik avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.