Merhaba çat pat ingilizcemle şurada derdimi anlattım, ancak bi cevap alamadım.
https://laracasts.com/discuss/channels/laravel/changing-bladecompiler
Şöyle bir problemim var. blade içindeki "or" direktifi isset fonksiyonunu kullanıyor. Ben hem isset hem de empty kullanmak istiyorum. yani "or" ve "orEmpty" olarak iki farklı şekilde kullanmak istiyorum. bunun için BladeCompiler class'ı içerisinde bulunan compileEchoDefaults fonksiyonunu aşağıdaki gibi değiştirdim.
public function compileEchoDefaults($value)
{
if(preg_match('/^(?=\$)(.+?)(?:\s+or\s+)(.+?)$/s', $value))
return preg_replace('/^(?=\$)(.+?)(?:\s+or\s+)(.+?)$/s', 'isset($1) ? $1 : $2', $value);
elseif(preg_match('/^(?=\$)(.+?)(?:\s+orEmpty\s+)(.+?)$/s', $value))
return preg_replace('/^(?=\$)(.+?)(?:\s+orEmpty\s+)(.+?)$/s', 'empty($1) ? $1 : $2', $value);
else
return $value;
}
Ancak bu iyi bi yol değil çünkü composer update yaptığım an kodum gider ve açıkçası vendor klasörüne dokunmak istemiyorum. Bunu nasıl dışarıdan değiştirebilirim?
Aradığım şey blade içerisine direktif yazmak değil.