In a lot of my PHP projects, I end up with classes that have non-public functions that I don\'t intend to extend.
Is it best to declare these as protected, or privat
If you intend to build a class for inheritance, you must design it that way, i.e. make those methods protected that allow other developers to change the behavior of the class along the lines that you intended. Simply making all methods protected is not a very good design. Bear in mind that all protected methods become part of the public API, so if you change things later, you will break other people's code.
In general, if you're not designing for inheritance, you should prohibit it.