Subdivisions
phil/addressSubdivisions::of('CA'); // the provinces and territories
Subdivisions::of('BR', 'AC'); // the cities of Acre
Subdivisions::find('Québec', 'CA'); // a Subdivision, or null
Une Subdivision a un identifiant parmi ses sœurs, le code que porte une adresse — QC, ou le nom là où le pays n'a
pas de codes —, un localCode, un name et un localName dans la langue de sa locale — fr pour celles du Canada
—, un code ISO lorsque les données en ont un, le motif par lequel commencent ses codes postaux, et l'indication qu'elle
a des enfants ou non.
find() trouve une valeur par identifiant, code ou nom, locaux compris, sans égard à la casse : qc, Quebec et
Québec désignent la même province. keys() donne ce par quoi une subdivision se trouve, en minuscules. Chaque liste
est indexée par ces clés la première fois qu'une valeur y est cherchée : une recherche parmi les 853 villes du Minas
Gerais coûte autant qu'une recherche parmi les 13 provinces du Canada. Lorsque deux subdivisions d'une liste partagent
une clé, c'est la première qui est trouvée. nameIn($locale) donne le nom local dans sa langue, sinon le nom.
Les listes sous le premier niveau sont nommées comme commerceguys/addressing les nomme — BR-AC, ou une empreinte des
parents plus bas — et se trouvent par les identifiants des parents.