Методы Лака короткого замыкания, не пропуская встроенные методы

При конфигурировании Лака 4, я интересуюсь замыканием накоротко внутри vcl_recv, но я не хочу пропускать builtin.vcl (урожденный default.vcl) логика VCL. Например, учитывая этот псевдокод VCL:

sub vcl_recv {
    if (somecondition1) {
        set some_thing;
        return (hash); # Return from cache if present, or fetch from the backend
    }

    if (somecondition2) {
        set some_other_thing;
        return (hash); # Return from cache if present, or fetch from the backend
    }

    // ...

    return (pass); # Skip cache, fetch from the backend
}

Вопрос 1

Если я звоню return в каждом возможном пути выполнения кода затем встроенная логика будет пропущена, правильно?

Вопрос 2

Существует ли способ форматировать код подобный вышеупомянутому, но не пропуская builtin.vcl логику? Единственным путем я вижу, должен объединить мои условные выражения, булевскую переменную ! их и перемещение return (pass); в гиганте if.

1
задан 12 March 2015 в 06:42
1 ответ

1) Да

2) Вся суть возврата заключается в том, что вы пропускаете части кода, чтобы вы остановили его выполнение через ненужный код (хеширование, передача, отсутствие). Если вам нужно запустить его, либо
а) Скопируйте код, который вам нужно выполнить, перед возвратом или
б) Используйте массивную оболочку if.

Лично я стараюсь дублировать и заменять все встроенные vcl для всего, кроме самых простых сайтов, так я могу получить действительно высокий процент попаданий (98% +).

1
ответ дан 4 December 2019 в 00:11

Теги

Похожие вопросы