Ben
Route::get('hizmetlerimiz/{name}', function($name) {
return View::make("home.services.{$name}");
})->where('name', '[A-Za-z]+');
demenin DRY ilkesini ve esnekliği bozduğunu düşünmüyorum. '[A-Za-z]+' yerine 'slug' yazmakla ne değiştirmiş oluyoruz ki? Sizi anlamıyor ve yanılıyor olabilirim. Fakat eğer
Route::get('hizmetlerimiz/{name}', function($name) {
return View::make("home.services.{$name}");
})->where('name', 'slug');
Patterns::add('slug', function() {
return '[A-Za-z]+';
});
gibi bir şey aranıyor ve böylece ihlallerden kurtarmış oluyorsak ve Route::pattern metodunun route parametre isimlendirmelerine bir kısıtlama getirmesi bizi rahatsız ediyorsa o zaman deseni değişkenlere atayıp verdiğiniz örneği elde edebiliriz ve bu deseni istediğimiz rota parametreleri için kullanabiliriz.
$desenler = array('rakam' => '[0-9]+', 'harf' => '[A-Za-z]+');
Route::get('hizmetlerimiz/{name}', function($name) {
return View::make("home.services.{$name}");
})->where('name', $desenler['harf']);
Ya da parametre isimlendirme kısıtlamasını rahatlatmak için
// '[A-Za-z]+' desenine uydurulacak tüm parametreler
$azparametreleri = array ('name', 'title' , 'isim');
foreach($azparametreleri as $pa)
{
Route::pattern($pa, '[A-Za-z]+');
}
Route::get('hizmetlerimiz/{name}', function($name) {
return View::make("home.services.{$name}");
});
Ancak bu sonuncusu anlamlı bir işlem olmaz. Çünkü pattern metodu tüm rotalar için geçerli bir where deseni uygular, bu yüzden bir deseni kullanan tüm rotalarda mümkün olduğunca aynı isimdeki parametreler kullanılması daha uygun olur.