/** * @used-by \Df\Qa\Method::raiseErrorParam() * @param int $paramOrdering zero-based * @return \ReflectionParameter */ public function methodParameter($paramOrdering) { df_param_integer($paramOrdering, 0); if (!isset($this->{__METHOD__}[$paramOrdering])) { // Метод должен существовать df_assert($this->method()); // Параметр должен существовать if ($paramOrdering >= count($this->method()->getParameters())) { df_error("Программист ошибочно пытается получить значение параметра с индексом {$paramOrdering}" . " метода «{$this->methodName()}», хотя этот метод принимает всего %d параметров.", count($this->method()->getParameters())); } df_assert_lt(count($this->method()->getParameters()), $paramOrdering); /** @var \ReflectionParameter $result */ $result = dfa($this->method()->getParameters(), $paramOrdering); df_assert($result instanceof \ReflectionParameter); $this->{__METHOD__}[$paramOrdering] = $result; } return $this->{__METHOD__}[$paramOrdering]; }
/** * 2016-07-19 * Портировал из Российской сборки Magento. * @param Zend_Date $startDate * @param int $numWorkingDays * @param null|string|int|ScopeA|Store $store [optional] * @return int */ function df_num_calendar_days_by_num_working_days(ZD $startDate, $numWorkingDays, $store = null) { /** @var int $result */ $result = $numWorkingDays; if (0 === $result && df_is_day_off($startDate)) { $result++; } /** @var int[] $daysOff */ $daysOff = df_days_off($store); // все дни недели не могут быть выходными, иначе программа зависнет в цикле ниже df_assert_lt(7, count($daysOff)); /** @var int $currentDayOfWeek */ $currentDayOfWeek = df_day_of_week_as_digit($startDate); while (0 < $numWorkingDays) { if (in_array($currentDayOfWeek, $daysOff)) { $result++; } else { $numWorkingDays--; } $currentDayOfWeek = 1 + $currentDayOfWeek % 7; } return $result; }