Çerçeveler bir sürü /controller/action/{id}
büyük olduğu gibi URL kurallarını kullanabilirsiniz, ama bunun ötesinde herhangi bir yapılandırma gerekiyorsa, kendi rotaları yazmak size kalmış.
Nasıl backend /users/{id}/friends
gibi URL'leri işlemek? (Bir kullanıcının tüm arkadaşlarına listelemek için)
Ben denetleyicisi, böyle bir şey uygun olacağını düşünüyorum:
class User {
function index() {
echo 'user index';
}
}
class Friend extends User {
function index($user_id) {
echo 'friend index';
}
}
Sonra aşağıdaki haritayı olurdu:
/users -> User::index()
/users/{id} -> User::view($id)
/users/{id}/friends -> Friend::index($user_id)
Ben kullanıcı sınıfı içinde Arkadaşa sınıf koymak istedim ama görünüşe PHP ben bu ile gelebilir iyi olduğunu yapamaz. Düşünceler?
Ne URL arkadaş listenizi düzenlemek için kullanmak istiyorsunuz? /users/{id}/friends/edit
işe yarayabilir, ancak başkasının Arkadaş listesini düzenleme asla beri, uygun görünmüyor. /account/friends/edit
daha iyi bir seçim olurdu? Bunu nerede için gelen kodu koymak istiyorsunuz? Bir arkadaşı denetleyici veya bir kullanıcı denetleyicisi veya özel hesap denetleyicisi?
Bonus soru: tercih edersiniz? /photos/delete/{id}
veya /photos/{id}/delete
The answers:
Peki, ne cevaplar elde ettik "şey" ("arkadaşlar" gibi) karmaşık ama kendi denetleyicisi yoksa, bir model olmadan ona bir verebilir, ya da değilse, ki sen olduğunu en çok yakından ilgili oluyor ne olursa olsun o şeyler de. Eğer kodu koymak nerede URL'ler etkilememelidir. Çoğu insan insanın aşina ne, çünkü /controller/action/{id}
whever mümkün ayrılmamak gerektiğini düşünüyor.
Gerçekten "garip" olduğunu söyleyerek kenara genişletilmiş sınıf yorumladı kimse yok. Ben gerçekten bunu ayırmak istiyorsa belki Friendlist bu durumda daha uygun bir sınıf olurdu.
Tüm cevaplar için teşekkürler :)