@ in Docblocks
Я знаю, что вы спрашиваете о Blade, но это не вопрос, и комментарии временные.Более того, другие читатели могут найти это в поиске того, что такое docblocks @
s.
В комментарии, начинающемся с /**
перед классом или функцией, знак @
означает директиву к документацииинструменты, такие как Doxygen или PHPDoc (думаю, я этим не пользовался).Общие директивы там включают @param
, @return
, @see
, @seealso
, @TODO
, @link
.Примером может быть
/**
* Function to do thing.
* @param int $foo A variable used in the function for reasons.
* @return A result of the thing done.
* @seealso Bar::fubar()
**/
@ в Blade
Как упоминалось в других ответах, символ @
является префиксом для «команд» Blade, называемых директивами.Два, о которых вы спрашиваете, встроены в Laravel.Те, на которые вы смотрите, вероятно, встроены, но вы можете добавить директивы к сделать свои собственные для вещей, которые вы часто делаете / печатаете.
Метод
@method('DELETE')
- RESTful стандарт определяет методы запроса PATCH и DELETE, которые не являются частью фактического стандарта HTTP (S).Чтобы эмулировать эти неподдерживаемые методы, в формы в формах Laravel добавляется скрытое поле, чтобы сообщить ядру HTTP, каков метод запроса для сопоставления методов для целей маршрутизации.Так что @method('DELETE')
делает что-то вроде (не точно, но вы поняли идею):
echo '<input type="hidden" name="method" value="DELETE" />';
CSRF
@csrf
ранее@csrf_field
- это команда для получения скрытого ввода с токеном CSRF.Также есть один токен - @csrf_token
- который полезен для запросов ajax.@csrf делает что-то вроде (но не совсем):
echo '<input type="hidden" name="_token" value="' . {$csrf_token() . '" />';
Токены CSRF являются «nonce» (числа, используемые только один раз), которые помогают предотвратить Подделка межсайтовых запросов .
В кешированном / скомпилированном блейде в storage/framework/views/
.