Ejemplo n.º 1
0
 /**
  * @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];
 }
Ejemplo n.º 2
0
/**
 * 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;
}