From fd4407a798ef067c439ed2193626d05ac5194cf1 Mon Sep 17 00:00:00 2001 From: Nabeel Shahzad Date: Sun, 11 Feb 2018 20:19:02 -0600 Subject: [PATCH] Move internal unit definitions to config file #189 --- app/Models/Flight.php | 6 ++++-- app/Models/Pirep.php | 11 +++++++---- app/Support/Units/Altitude.php | 9 +++------ app/Support/Units/Distance.php | 9 +++------ app/Support/Units/Mass.php | 4 +++- app/Support/Units/Velocity.php | 11 ++++------- app/Support/Units/Volume.php | 9 +++------ config/phpvms.php | 13 +++++++++++++ 8 files changed, 40 insertions(+), 32 deletions(-) diff --git a/app/Models/Flight.php b/app/Models/Flight.php index e674a469..0831ffe7 100644 --- a/app/Models/Flight.php +++ b/app/Models/Flight.php @@ -85,7 +85,7 @@ class Flight extends BaseModel try { $distance = (float) $this->attributes['distance']; - return new Distance($distance, Distance::STORAGE_UNIT); + return new Distance($distance, config('phpvms.internal_units.distance')); } catch (NonNumericValue $e) { return 0; } catch (NonStringUnitName $e) { @@ -100,7 +100,9 @@ class Flight extends BaseModel public function setDistanceAttribute($value) { if($value instanceof Distance) { - $this->attributes['distance'] = $value->toUnit(Distance::STORAGE_UNIT); + $this->attributes['distance'] = $value->toUnit( + config('phpvms.internal_units.distance') + ); } else { $this->attributes['distance'] = $value; } diff --git a/app/Models/Pirep.php b/app/Models/Pirep.php index 8be11dba..83bc1eb4 100644 --- a/app/Models/Pirep.php +++ b/app/Models/Pirep.php @@ -115,7 +115,7 @@ class Pirep extends BaseModel try { $distance = (float) $this->attributes['distance']; - return new Distance($distance, Distance::STORAGE_UNIT); + return new Distance($distance, config('phpvms.internal_units.distance')); } catch (NonNumericValue $e) { return 0; } catch (NonStringUnitName $e) { @@ -130,7 +130,8 @@ class Pirep extends BaseModel public function setDistanceAttribute($value): void { if ($value instanceof Distance) { - $this->attributes['distance'] = $value->toUnit(Distance::STORAGE_UNIT); + $this->attributes['distance'] = $value->toUnit( + config('phpvms.internal_units.distance')); } else { $this->attributes['distance'] = $value; } @@ -148,7 +149,7 @@ class Pirep extends BaseModel try { $distance = (float) $this->attributes['planned_distance']; - return new Distance($distance, Distance::STORAGE_UNIT); + return new Distance($distance, config('phpvms.internal_units.distance')); } catch (NonNumericValue $e) { return 0; } catch (NonStringUnitName $e) { @@ -163,7 +164,9 @@ class Pirep extends BaseModel public function setPlannedDistanceAttribute($value) { if ($value instanceof Distance) { - $this->attributes['planned_distance'] = $value->toUnit(Distance::STORAGE_UNIT); + $this->attributes['planned_distance'] = $value->toUnit( + config('phpvms.internal_units.distance') + ); } else { $this->attributes['planned_distance'] = $value; } diff --git a/app/Support/Units/Altitude.php b/app/Support/Units/Altitude.php index d023f83d..4ea014cf 100644 --- a/app/Support/Units/Altitude.php +++ b/app/Support/Units/Altitude.php @@ -9,11 +9,6 @@ use Illuminate\Contracts\Support\Arrayable; */ class Altitude extends \PhpUnitsOfMeasure\PhysicalQuantity\Length implements Arrayable { - /** - * The unit that this is stored as - */ - public const STORAGE_UNIT = 'feet'; - /** * @return string */ @@ -40,6 +35,8 @@ class Altitude extends \PhpUnitsOfMeasure\PhysicalQuantity\Length implements Arr */ public function toArray() { - return round($this->toUnit(self::STORAGE_UNIT), 2); + return round($this->toUnit( + config('phpvms.internal_units.altitude') + ), 2); } } diff --git a/app/Support/Units/Distance.php b/app/Support/Units/Distance.php index bb9653ad..4c0dd83e 100644 --- a/app/Support/Units/Distance.php +++ b/app/Support/Units/Distance.php @@ -9,11 +9,6 @@ use Illuminate\Contracts\Support\Arrayable; */ class Distance extends \PhpUnitsOfMeasure\PhysicalQuantity\Length implements Arrayable { - /** - * The unit that this is stored as - */ - public const STORAGE_UNIT = 'nmi'; - /** * @return string */ @@ -41,6 +36,8 @@ class Distance extends \PhpUnitsOfMeasure\PhysicalQuantity\Length implements Arr */ public function toArray() { - return round($this->toUnit(self::STORAGE_UNIT), 2); + return round($this->toUnit( + config('phpvms.internal_units.distance') + ), 2); } } diff --git a/app/Support/Units/Mass.php b/app/Support/Units/Mass.php index 8a825ae5..f76b9a7f 100644 --- a/app/Support/Units/Mass.php +++ b/app/Support/Units/Mass.php @@ -41,6 +41,8 @@ class Mass extends \PhpUnitsOfMeasure\PhysicalQuantity\Mass implements Arrayable */ public function toArray() { - return round($this->toUnit(self::STORAGE_UNIT), 2); + return round($this->toUnit( + config('phpvms.internal_units.mass') + ), 2); } } diff --git a/app/Support/Units/Velocity.php b/app/Support/Units/Velocity.php index ccbe9668..0265967f 100644 --- a/app/Support/Units/Velocity.php +++ b/app/Support/Units/Velocity.php @@ -9,11 +9,6 @@ use Illuminate\Contracts\Support\Arrayable; */ class Velocity extends \PhpUnitsOfMeasure\PhysicalQuantity\Velocity implements Arrayable { - /** - * The unit that this is stored as - */ - public const STORAGE_UNIT = 'knot'; - /** * @return string */ @@ -30,7 +25,7 @@ class Velocity extends \PhpUnitsOfMeasure\PhysicalQuantity\Velocity implements A public function toObject() { return [ - 'knot' => round($this->toUnit('knot'), 2), + 'knots' => round($this->toUnit('knots'), 2), 'km/h' => round($this->toUnit('km/h'), 2), ]; } @@ -40,6 +35,8 @@ class Velocity extends \PhpUnitsOfMeasure\PhysicalQuantity\Velocity implements A */ public function toArray() { - return round($this->toUnit(self::STORAGE_UNIT), 2); + return round($this->toUnit( + config('phpvms.internal_units.velocity') + ), 2); } } diff --git a/app/Support/Units/Volume.php b/app/Support/Units/Volume.php index b43188b0..b425ebd2 100644 --- a/app/Support/Units/Volume.php +++ b/app/Support/Units/Volume.php @@ -9,11 +9,6 @@ use Illuminate\Contracts\Support\Arrayable; */ class Volume extends \PhpUnitsOfMeasure\PhysicalQuantity\Volume implements Arrayable { - /** - * The unit that this is stored as - */ - public const STORAGE_UNIT = 'gal'; - /** * @return string */ @@ -40,6 +35,8 @@ class Volume extends \PhpUnitsOfMeasure\PhysicalQuantity\Volume implements Array */ public function toArray() { - return round($this->toUnit(self::STORAGE_UNIT), 2); + return round($this->toUnit( + config('phpvms.internal_units.volume') + ), 2); } } diff --git a/config/phpvms.php b/config/phpvms.php index 087d1fa2..00e3b156 100644 --- a/config/phpvms.php +++ b/config/phpvms.php @@ -46,4 +46,17 @@ return [ * URL to the latest version file */ 'version_file' => 'http://downloads.phpvms.net/VERSION', + + /** + * DO NOT CHANGE THESE! It will result in messed up data + * The setting you're looking for is in the admin panel, + * under settings, for the display units + */ + 'internal_units' => [ + 'altitude' => 'feet', + 'distance' => 'nmi', + 'mass' => 'lbs', + 'velocity' => 'knots', + 'volume' => 'gallons', + ], ];