Layers and file/directory structures of a PHP application?

What is your way of doing it? For me, I am building a MVC framework for my software and it actually has quite a bit of layers. The file/directory structure looks like this:

/bundle
… /cjax
…/ckeditor
…/htmlpurifier
…/smarty
files

/controller
…/admincp
…/install
…/modcp
…/service
…/usercp
files

/css
files

/docs
files

/font
files

/helper
—To be decided—

/image
…/icons
…/templates
…/uploaded

/js
files

/log
files

/model
…/domainmodel
…/factory
…/mapper
…/mediator
…/settings
…/validator
…/viewmodel

/resource
…/collection
…/core
…/database
…/dependency
…/gui
…/http
…/io
…/math
…/native
…/utility

/view
…/admincp
…/install
…/lang
…/modcp
…/templates
…/usercp
files

So other than the three basic layers for Model-View-Controller, it also has other inner and outer layers. The two inner layers include a Service layer sitting in between Model and Controller, and a ViewModel layer sitting in between Model and View. The outer layer is a Data-Access/Mapping layer between Data Source and DomainModel. The Resource and Bundle represent internal-libraries and external/third-party libraries. The view uses a two-step view pattern that first renders the document/article for the site, and then uses a smarty template for both the document/article and the other site widgets that do not vary from page to page. I have not figured out what to do about the Helper thing yet. It’s built upon mostly on convention, but configuration is also allowed by inserting metadata that the script can recognize.

Do you think it is a proper design for a complex software? Are there missing parts for constructing a good web application?