Sonata\CustomerBundle\Entity\BaseAddress::formatAddress PHP Метод

formatAddress() публичный статический Метод

Formats an address in an array form.
public static formatAddress ( array $address, string $sep = ', ' ) : string
$address array The address array (required keys: firstname, lastname, address1, postcode, city, country_code)
$sep string The address separator
Результат string
    public static function formatAddress(array $address, $sep = ', ')
    {
        $address = array_merge(array('firstname' => '', 'lastname' => '', 'address1' => '', 'address2' => '', 'address3' => '', 'postcode' => '', 'city' => '', 'country_code' => ''), $address);
        $values = array_map('trim', array(sprintf('%s %s', $address['firstname'], $address['lastname']), $address['address1'], $address['address2'], $address['address3'], $address['postcode'], $address['city']));
        foreach ($values as $key => $val) {
            if (!$val) {
                unset($values[$key]);
            }
        }
        $fullAddress = implode($sep, $values);
        if ($countryCode = trim($address['country_code'])) {
            if ($fullAddress) {
                $fullAddress .= ' ';
            }
            $fullAddress .= sprintf('(%s)', $countryCode);
        }
        return $fullAddress;
    }

Usage Example

 /**
  * Gets the HTML of an address
  *
  * @param \Twig_Environment $environment A Twig environment
  * @param mixed             $address     An instance of AddressInterface or array with keys: (id, firstname, lastname, address1, postcode, city, country_code and optionally name, address2, address3)
  * @param bool              $showName    Display address name?
  * @param bool              $showEdit    Display edit button?
  * @param string            $context     A context for edit link
  *
  * @throws InvalidParameterException
  *
  * @return string
  */
 public function renderAddress(\Twig_Environment $environment, $address, $showName = true, $showEdit = false, $context = null)
 {
     $requiredAddressKeys = array("firstname", "lastname", "address1", "postcode", "city", "country_code");
     if (!$address instanceof AddressInterface && (!is_array($address) || count(array_diff($requiredAddressKeys, array_keys($address))) !== 0)) {
         throw new InvalidParameterException(sprintf("sonata_address_render needs an AddressInterface instance or an array with keys (%s)", implode(", ", $requiredAddressKeys)));
     }
     if ($address instanceof AddressInterface) {
         $addressArray = array('id' => $showEdit ? $address->getId() : "", 'name' => $showName ? $address->getName() : "", 'address' => $address->getFullAddressHtml());
     } else {
         if ($showEdit && !array_key_exists("id", $address)) {
             throw new InvalidParameterException("sonata_address_render needs 'id' key to be set to render the edit button");
         }
         if ($showName && !array_key_exists('name', $address)) {
             $address["name"] = "";
             $showName = false;
         }
         $addressArray = array('id' => $showEdit ? $address['id'] : "", 'name' => $address['name'], 'address' => BaseAddress::formatAddress($address, "<br/>"));
     }
     return $environment->render('SonataCustomerBundle:Addresses:_address.html.twig', array('address' => $addressArray, 'showName' => $showName, 'showEdit' => $showEdit, 'context' => $context));
 }
All Usage Examples Of Sonata\CustomerBundle\Entity\BaseAddress::formatAddress