Last active
January 4, 2019 21:33
-
-
Save scottzirkel/aa01bf86dbd96698f4508323f2056973 to your computer and use it in GitHub Desktop.
State helper for php & Laravel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Utilities; | |
class State | |
{ | |
protected static $states = [ | |
'Alabama'=>'AL', | |
'Alaska'=>'AK', | |
'Arizona'=>'AZ', | |
'Arkansas'=>'AR', | |
'California'=>'CA', | |
'Colorado'=>'CO', | |
'Connecticut'=>'CT', | |
'Delaware'=>'DE', | |
'Florida'=>'FL', | |
'Georgia'=>'GA', | |
'Hawaii'=>'HI', | |
'Idaho'=>'ID', | |
'Illinois'=>'IL', | |
'Indiana'=>'IN', | |
'Iowa'=>'IA', | |
'Kansas'=>'KS', | |
'Kentucky'=>'KY', | |
'Louisiana'=>'LA', | |
'Maine'=>'ME', | |
'Maryland'=>'MD', | |
'Massachusetts'=>'MA', | |
'Michigan'=>'MI', | |
'Minnesota'=>'MN', | |
'Mississippi'=>'MS', | |
'Missouri'=>'MO', | |
'Montana'=>'MT', | |
'Nebraska'=>'NE', | |
'Nevada'=>'NV', | |
'New Hampshire'=>'NH', | |
'New Jersey'=>'NJ', | |
'New Mexico'=>'NM', | |
'New York'=>'NY', | |
'North Carolina'=>'NC', | |
'North Dakota'=>'ND', | |
'Ohio'=>'OH', | |
'Oklahoma'=>'OK', | |
'Oregon'=>'OR', | |
'Pennsylvania'=>'PA', | |
'Rhode Island'=>'RI', | |
'South Carolina'=>'SC', | |
'South Dakota'=>'SD', | |
'Tennessee'=>'TN', | |
'Texas'=>'TX', | |
'Utah'=>'UT', | |
'Vermont'=>'VT', | |
'Virginia'=>'VA', | |
'Washington'=>'WA', | |
'West Virginia'=>'WV', | |
'Wisconsin'=>'WI', | |
'Wyoming'=>'WY' | |
]; | |
public static function all() | |
{ | |
return static::$states; | |
} | |
public static function reverse() | |
{ | |
return array_flip(static::$states); | |
} | |
public static function names() | |
{ | |
return array_keys(static::$states); | |
} | |
public static function codes() | |
{ | |
return array_values(static::$states); | |
} | |
} |
Updated to use Laravel collections to add search functionality.
class States
{
public static $states = [
'AL' => 'Alabama',
'AK' => 'Alaska',
'AZ' => 'Arizona',
'AR' => 'Arkansas',
'CA' => 'California',
'CO' => 'Colorado',
'CT' => 'Connecticut',
'DE' => 'Delaware',
'DC' => 'Washington DC',
'FL' => 'Florida',
'GA' => 'Georgia',
'HI' => 'Hawaii',
'ID' => 'Idaho',
'IL' => 'Illinois',
'IN' => 'Indiana',
'IA' => 'Iowa',
'KS' => 'Kansas',
'KY' => 'Kentucky',
'LA' => 'Louisiana',
'ME' => 'Maine',
'MD' => 'Maryland',
'MA' => 'Massachusetts',
'MI' => 'Michigan',
'MN' => 'Minnesota',
'MS' => 'Mississippi',
'MO' => 'Missouri',
'MT' => 'Montana',
'NE' => 'Nebraska',
'NV' => 'Nevada',
'NH' => 'New Hampshire',
'NJ' => 'New Jersey',
'NM' => 'New Mexico',
'NY' => 'New York',
'NC' => 'North Carolina',
'ND' => 'North Dakota',
'OH' => 'Ohio',
'OK' => 'Oklahoma',
'OR' => 'Oregon',
'PA' => 'Pennsylvania',
'PR' => 'Puerto Rico',
'RI' => 'Rhode Island',
'SC' => 'South Carolina',
'SD' => 'South Dakota',
'TN' => 'Tennessee',
'TX' => 'Texas',
'UT' => 'Utah',
'VT' => 'Vermont',
'VI' => 'Virgin Islands',
'VA' => 'Virginia',
'WA' => 'Washington',
'WV' => 'West Virginia',
'WI' => 'Wisconsin',
'WY' => 'Wyoming',
];
public static function all()
{
return collect(self::$states);
}
public static function toArray()
{
return self::$states;
}
public static function find($code)
{
return self::$states[strtoupper($code)];
}
public static function codes()
{
return collect(self::$states)->keys()->all();
}
public static function names()
{
return collect(self::$states)->values()->all();
}
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Namespaced for Laravel.