PHP code example of archipro / silverstripe-smart-enum
1. Go to this page and download the library: Download archipro/silverstripe-smart-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/ */
archipro / silverstripe-smart-enum example snippets
use SilverStripe\ORM\DataObject;
class MyRecord extends DataObject
{
private static $table_name = 'MyRecord';
private static $db = [
'Status' => 'SmartEnum("My\\\\Namespace\\\\Status", "PENDING")',
];
}
private static $db = [
'Priority' => 'SmartEnum("My\\\\Namespace\\\\Priority", 1)',
];
'Status' => 'SmartEnum("My\\\\Namespace\\\\Status")',
'Status' => 'SmartEnum("My\\\\Namespace\\\\Status", "PENDING")',
'Priority' => 'SmartEnum("My\\\\Namespace\\\\Priority", 1)',
'Status' => 'SmartEnum("My\\\\Namespace\\\\Status", null)',
use My\Namespace\Priority;
use My\Namespace\Status;
use SilverStripe\ORM\DataObject;
class MyRecord extends DataObject
{
private static array $db = [
'Status' => Status::class,
'Priority' => Priority::class . '(1)',
];
}
use ArchiPro\Silverstripe\SmartEnum\SmartEnumServiceConfigurationLocator;
SmartEnumServiceConfigurationLocator::install();
use ArchiPro\Silverstripe\SmartEnum\SmartEnumServiceConfigurationLocator;
use SilverStripe\Core\Injector\Injector;
$injector = Injector::inst();
$injector->setConfigLocator(new SmartEnumServiceConfigurationLocator(
$injector->getConfigLocator()
));
'Status' => 'SmartEnum("My\\\\Namespace\\\\Status", "PENDING", ["use_native_db_enum" => false, "varchar_length" => 64])',
'Priority' => 'SmartEnum("My\\\\Namespace\\\\Priority", 1, ["use_native_db_enum" => false])',
private static array $extensions = [
ArchiPro\Silverstripe\SmartEnum\SmartEnumDataExtension::class,
];
use My\Namespace\Status;
/**
* @property Status|null $Status
*/
class MyRecord extends DataObject
{
// ...
}