By type
/Controllers
/Events
/Models
By topic
/Comments
/Posts
/Users
By topic, then type
/Comments
/Controllers
/Events
/Models
/Posts
/Controllers
/Events
/Models
/Users
/Controllers
/Events
/Models
Mixed
/Comments
/Controllers
/Events
/Models
/Posts
/Users
"By topic, then type" would also be known as a modular structur. It's generally a good idea simply because if you design your solutions to be modular you'll be able to expand them easily, while keeping code organised. See things like Symfony's bundles for example.