With PHP < 5.3, there is no "real" notion of "package" ; what's generally done is name classes like this : Package_Subpackage_MyClassName, and map it to this structure for files and directories :
Package/
Subpackage/
MyClassName.php
This corresponds to the PEAR Convention, which is widely used, and well accepted :
Class names should always begin with
an uppercase letter. The PEAR class
hierarchy is also reflected in the
class name, each level of the
hierarchy separated with a single
underscore.
As long as you follow that convention, you can do pretty much whatever you want -- a good idea might be to take a look at the sources of some Open-Source Framework that follow that convention, such as Zend Framework or Doctrine.
With PHP >= 5.3, you have namespaces -- which means things might/will change a bit... But, as it's still quite new, the "best pratices" are not yet well defined nor accepted.
The PSR-0 Final Proposal might be an interesting read, though...