1. Go to this page and download the library: Download ekvedaras/doctrine-enum library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ekvedaras / doctrine-enum example snippets
namespace App\Enums;
use EKvedaras\Doctrine\Enum;
class PaymentStatus extends Enum
{
/**
* @return static
*/
final public static function pending(): self
{
return static::get('pending', 'Payment is pending');
}
/**
* @return static
*/
final public static function completed(): self
{
return static::get('completed', 'Payment has been processed');
}
/**
* @return static
*/
final public static function failed(): self
{
return static::get('failed', 'Payment has failed');
}
}
namespace App\Enums;
use EKvedaras\Doctrine\Enum;
class UserStatus extends Enum
{
/**
* @return static
*/
final public static function active(): self
{
return static::get(1, 'User is active');
}
/**
* @return static
*/
final public static function banned(): self
{
return static::get(2, 'User is banned');
}
/**
* @return static
*/
final public static function deactivated(): self
{
return static::get(3, 'User account is deactivated');
}
}
use App\Enums\PaymentStatus;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(name="payments")
*/
class Payment
{
// ...
/**
* @var PaymentStatus
*
* @ORM\Column(type=PaymentStatus::class)
*/
protected $status;
// ...
}
use App\Enums\UserStatus;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(name="users")
*/
class User
{
// ...
/**
* @var UserStatus
*
* @ORM\Column(type="user-status")
*/
protected $status;
// ...
}
use App\Enums\PaymentStatus;
use App\Enums\UserStatus;
use EKvedaras\DoctrineEnum\EnumType;
// As class name
EnumType::register(PaymentStatus::class);
EnumType::register('user-status', UserStatus::class);
// Or multiple at once
EnumType::register([
PaymentStatus::class,
'user-status' => UserStatus::class,
]);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.