lithium\g11n\catalog\Adapter::_merge PHP Method

_merge() protected method

Merges an item into given data.
protected _merge ( array $data, array $item ) : array
$data array Data to merge item into.
$item array Item to merge into $data. The item must have an `'id'` key.
return array The merged data.
    protected function _merge(array $data, array $item)
    {
        if (!isset($item['id'])) {
            return $data;
        }
        $id = $item['id'];
        $defaults = array('ids' => array(), 'translated' => null, 'flags' => array(), 'comments' => array(), 'occurrences' => array());
        $item += $defaults;
        if (isset($item['context']) && $item['context']) {
            $id .= '|' . $item['context'];
        }
        if (!isset($data[$id])) {
            $data[$id] = $item;
            return $data;
        }
        foreach (array('ids', 'flags', 'comments', 'occurrences') as $field) {
            $data[$id][$field] = array_merge($data[$id][$field], $item[$field]);
        }
        if (!isset($data[$id]['translated'])) {
            $data[$id]['translated'] = $item['translated'];
        } elseif (is_array($item['translated'])) {
            $data[$id]['translated'] = (array) $data[$id]['translated'] + $item['translated'];
        }
        return $data;
    }

Usage Example

コード例 #1
0
ファイル: Code.php プロジェクト: fedeisas/lithium
 /**
  * Merges an item into given data and removes quotation marks
  * from the beginning and end of message strings.
  *
  * @see lithium\g11n\catalog\Adapter::_merge()
  * @param array $data Data to merge item into.
  * @param array $item Item to merge into $data.
  * @return array The merged data.
  */
 protected function _merge(array $data, array $item)
 {
     $filter = function ($value) use(&$filter) {
         if (is_array($value)) {
             return array_map($filter, $value);
         }
         return substr($value, 1, -1);
     };
     $fields = array('id', 'ids', 'translated', 'context');
     foreach ($fields as $field) {
         if (isset($item[$field])) {
             $item[$field] = $filter($item[$field]);
         }
     }
     return parent::_merge($data, $item);
 }
All Usage Examples Of lithium\g11n\catalog\Adapter::_merge