git branch --set-upstream-to=<внешний-репозиторий>/<внешняя-ветка> <локальная-ветка>
git clone <URL>
git branch feature # создать пустую ветку с именем feature
git switch feature # переключиться в эту новую ветку
# но свежесозданная ветка не связана ни с какой внешней, поэтому следующей командой
# придётся указать откуда и что скачивать
git pull origin feature # влить внешнюю ветку origin/feature в текущую локальную ветку
# но проще ветки сначала связать
git branch --set-upstream-to=origin/feature feature
# и тогда заработает простой pull
git pull
git switch origin/feature
git pull
, то увидишь что всё связано и скачивается откуда надо.git clone --branch feature <URL>
/**
* Получает из многомерного массива элемент по ключу в виде строки,
* где каждый уровень вложенности отделен точкой, если такой элемент не будет найден,
* то вернет значение по умолчанию
*
* @param $array - многомерный ассоциативный массив
* @param $key - ключ, формата xxx.xxx.xx. Например: db.mysql.host
* @param null $default
*
* @return mixed|null
*/
function arrayGet(array $array, string $key, $default = null)
{
if (!empty($key)) {
//разбиваем вложенность ключей на массив
$levels = explode('.', $key);
//получаем текущий уровень
$currentLevel = array_shift($levels);
//если текущий ключ существует
if (array_key_exists($currentLevel, $array)) {
//если значение текущего ключа является массивом, проверяем этот массив
if (is_array($array[$currentLevel])) {
//рекурсивный вызов с перезаписанными аргументами
return arrayGet($array[$currentLevel], implode('.', $levels), $default);
}
//возвращаем значение по ключу, если оно скалярное
return $array[$currentLevel];
}
}
//возвращаем значение по умолчанию
return $default;
}
Symfony includes the following normalizers:
...
PropertyNormalizer to normalize PHP object using PHP reflection.
получили по API ответ от некоего сервиса, содержащий поля и их значения некоего объекта "Документ", и после на основании некоего конфига мы создаем новый инстанс класса Document, с заполненными свойствами нужными нам значениями. Свойства приватные
Создавать через конструктор не вариант по своим причинам.
<?php
/**
* (PHP 5 >= 5.2.0, PECL json >= 1.2.0)<br/>
* Returns the JSON representation of a value
*
* @link https://php.net/manual/en/function.json-encode.php
*
* @param mixed $value <p>
* The <i>value</i> being encoded. Can be any type except
* a resource.
* </p>
* <p>
* All string data must be UTF-8 encoded.
* </p>
* <p>PHP implements a superset of
* JSON - it will also encode and decode scalar types and <b>NULL</b>. The JSON standard
* only supports these values when they are nested inside an array or an object.
* </p>
* @param int $options [optional] <p>
* Bitmask consisting of <b>JSON_HEX_QUOT</b>,
* <b>JSON_HEX_TAG</b>,
* <b>JSON_HEX_AMP</b>,
* <b>JSON_HEX_APOS</b>,
* <b>JSON_NUMERIC_CHECK</b>,
* <b>JSON_PRETTY_PRINT</b>,
* <b>JSON_UNESCAPED_SLASHES</b>,
* <b>JSON_FORCE_OBJECT</b>,
* <b>JSON_UNESCAPED_UNICODE</b>.
* <b>JSON_THROW_ON_ERROR</b> The behaviour of these
* constants is described on
* the JSON constants page.
* </p>
* @param int $depth [optional] <p>
* Set the maximum depth. Must be greater than zero.
* </p>
*
* @throws JsonException
* @return string|false a JSON encoded string on success or <b>FALSE</b> on failure.
*/
function json_encode( $value, $options = 0, $depth = 512 ) {}
/**
* (PHP 5 >= 5.2.0, PECL json >= 1.2.0)<br/>
* Decodes a JSON string
*
* @link https://php.net/manual/en/function.json-decode.php
*
* @param string $json <p>
* The <i>json</i> string being decoded.
* </p>
* <p>
* This function only works with UTF-8 encoded strings.
* </p>
* <p>PHP implements a superset of
* JSON - it will also encode and decode scalar types and <b>NULL</b>. The JSON standard
* only supports these values when they are nested inside an array or an object.
* </p>
* @param bool $assoc [optional] <p>
* When <b>TRUE</b>, returned objects will be converted into
* associative arrays.
* </p>
* @param int $depth [optional] <p>
* User specified recursion depth.
* </p>
* @param int $options [optional] <p>
* Bitmask of JSON decode options. Currently only
* <b>JSON_BIGINT_AS_STRING</b>
* is supported (default is to cast large integers as floats)
*
* <b>JSON_THROW_ON_ERROR</b> when passed this flag, the error behaviour of these functions is changed. The global error state is left untouched, and if an error occurs that would otherwise set it, these functions instead throw a JsonException
* </p>
*
* @throws JsonException
* @return mixed the value encoded in <i>json</i> in appropriate
* PHP type. Values true, false and
* null (case-insensitive) are returned as <b>TRUE</b>, <b>FALSE</b>
* and <b>NULL</b> respectively. <b>NULL</b> is returned if the
* <i>json</i> cannot be decoded or if the encoded
* data is deeper than the recursion limit.
*/
function json_decode( $json, $assoc = false, $depth = 512, $options = 0 ) {}