This is usually the structure that I adhere to organizing my applications:
myproject/ myproject/app myproject/app/controllers myproject/app/views myproject/app/models myproject/config myproject/log myproject/lib myproject/lib/external myproject/lib/external/Zend -> symlinked to -> /whatever/libraries/zend-1.xx/ myproject/lib/external/GoogleMaps/ -> symlinked to -> /whatever/libraries/gmaps-1.x/ myproject/lib/core (to my application) myproject/lib/core/Adapters/Rest.inc myproject/lib/core/Facades/SimpleTwitterApi.inc ....etc....
It is useful to have lib / external, because I usually symbolize different versions of libraries (Zend, etc.) and their updating becomes more manageable. In addition, if you are using version control, it is interesting to see how many commits are in lib / core or lib / external. Alternatively, you can use something like phploc to find out if the bulk of your code is in external libraries or in your kernel.
Btw, it's nice to hear that autoload is not a problem, and you explicitly include / require files as needed :)
source share