CommerceGuys\Addressing\AddressFormat\AddressFormatRepository::get PHP Method

get() public method

public get ( $countryCode )
    public function get($countryCode)
    {
        if (!isset($this->addressFormats[$countryCode])) {
            // Assert the basic country code format (2 uppercase letters).
            if (strlen($countryCode) != 2 || !ctype_upper($countryCode)) {
                throw new \InvalidArgumentException(sprintf('Invalid country code "%s" provided.', $countryCode));
            }
            $definitions = $this->getDefinitions();
            $definition = isset($definitions[$countryCode]) ? $definitions[$countryCode] : [];
            $definition = $this->processDefinition($countryCode, $definition);
            $this->addressFormats[$countryCode] = new AddressFormat($definition);
        }
        return $this->addressFormats[$countryCode];
    }

Usage Example

 /**
  * Checks whether predefined subdivisions exist for the provided parents.
  *
  * @param array $parents The parents (country code, subdivision codes).
  *
  * @return bool TRUE if predefined subdivisions exist for the provided
  *              parents, FALSE otherwise.
  */
 protected function hasData(array $parents)
 {
     $countryCode = $parents[0];
     $addressFormat = $this->addressFormatRepository->get($countryCode);
     $depth = $addressFormat->getSubdivisionDepth();
     if ($depth == 0) {
         return false;
     }
     // At least the first level has data.
     $hasData = true;
     if (count($parents) > 1) {
         // After the first level it is possible for predefined subdivisions
         // to exist at a given level, but not for that specific parent.
         // That's why the parent definition has the most precise answer.
         $grandparents = $parents;
         $parentId = array_pop($grandparents);
         $parentGroup = $this->buildGroup($grandparents);
         if (isset($this->definitions[$parentGroup]['subdivisions'][$parentId])) {
             $definition = $this->definitions[$parentGroup]['subdivisions'][$parentId];
             $hasData = !empty($definition['has_children']);
         } else {
             // The parent definition wasn't loaded previously, fallback
             // to guessing based on depth.
             $neededDepth = count($parents);
             $hasData = $neededDepth <= $depth;
         }
     }
     return $hasData;
 }
All Usage Examples Of CommerceGuys\Addressing\AddressFormat\AddressFormatRepository::get