81 lines
1.9 KiB
PHP
81 lines
1.9 KiB
PHP
<?php
|
|
namespace PhpUnitsOfMeasure\PhysicalQuantity;
|
|
|
|
use PhpUnitsOfMeasure\AbstractPhysicalQuantity;
|
|
use PhpUnitsOfMeasure\UnitOfMeasure;
|
|
use PhpUnitsOfMeasure\HasSIUnitsTrait;
|
|
|
|
class Energy extends AbstractPhysicalQuantity
|
|
{
|
|
use HasSIUnitsTrait;
|
|
|
|
protected static $unitDefinitions;
|
|
|
|
protected static function initialize()
|
|
{
|
|
// Joule
|
|
$joule = UnitOfMeasure::nativeUnitFactory('J');
|
|
$joule->addAlias('joule');
|
|
$joule->addAlias('joules');
|
|
static::addUnit($joule);
|
|
|
|
static::addMissingSIPrefixedUnits(
|
|
$joule,
|
|
1,
|
|
'%pJ',
|
|
[
|
|
'%Pjoule',
|
|
'%Pjoules',
|
|
]
|
|
);
|
|
|
|
// Electronvolt
|
|
$ev = UnitOfMeasure::linearUnitFactory('eV', 1.6021766208e-19);
|
|
$ev->addAlias('electronvolt');
|
|
$ev->addAlias('electronvolts');
|
|
static::addUnit($ev);
|
|
|
|
static::addMissingSIPrefixedUnits(
|
|
$ev,
|
|
1,
|
|
'%peV',
|
|
[
|
|
'%Pelectronvolt',
|
|
'%Pelectronvolts',
|
|
]
|
|
);
|
|
|
|
// Watt hour
|
|
$wattHour = UnitOfMeasure::linearUnitFactory('Wh', 3600);
|
|
$wattHour->addAlias('watt hour');
|
|
$wattHour->addAlias('watt hours');
|
|
static::addUnit($wattHour);
|
|
|
|
static::addMissingSIPrefixedUnits(
|
|
$wattHour,
|
|
1,
|
|
'%pWh',
|
|
[
|
|
'%Pwatt hour',
|
|
'%Pwatt hours',
|
|
]
|
|
);
|
|
|
|
// Calorie
|
|
$calorie = UnitOfMeasure::linearUnitFactory('cal', 4.184);
|
|
$calorie->addAlias('calorie');
|
|
$calorie->addAlias('calories');
|
|
static::addUnit($calorie);
|
|
|
|
static::addMissingSIPrefixedUnits(
|
|
$calorie,
|
|
1,
|
|
'%pcal',
|
|
[
|
|
'%Pcalorie',
|
|
'%Pcalories',
|
|
]
|
|
);
|
|
}
|
|
}
|