I keep all my classes in separate files, and the same goes for interfaces too. My classes are also generally quite small and focused on just doing one thing. I rarely have files with more than a few hundred lines in them. It works well and keeps the code organised.
*Edit: I also do MVC for practically everything if I can help it, and tend to keep my controllers slim, my models simple and my views dumb (very little logic in my views). If I need to do a complex process involving a bunch of models, I tend to create a class to encapsulate the process itself, so I don't have any complicated logic in my models. My models tend to just have access and setter methods in them, and little logic other than checking for dependencies and things like that.
I also almost never echo html from my classes or from php in general. One of my biggest pet hates is to see people echoing html directly from php, especially within a class or function context.