Hi all, I have started work on my new PHP web app and before getting too far would like to ensure I am following best practices for file naming and namespaces so that I can use an autoload function effectively.
I have read up on PSR-0 and have a question: What would the vendor name be in an web application I am building, simply the project name?
Additionally, I currently have the following structure (no namespaces and my class names match the filenames), I’d like to work out the best way to name the folders, filenames, namespaces and classes?
myProject.com
/app
/core
/BaseController.php
/BaseMapper.php
/BaseModel.php
/Loader.php
/controllers
/BookController.php
/datamappers
/BookMapper.php
/models
/domain
/Book.php
/BookModel.php
/views
/Book
/List.php
/Details.php
/public
/index.php
- Should the namespace for BaseController be MyProject\App\Core, or
- Should the namespace for BaseController be MyProject\App and the class name Core_BaseController?
- Should I rename my folders to all use upper camel case? (eg. App, Core, etc)
- Should my class names remain in upper camel case?
- Should my directories all be singular or plural? Does it matter?
Lastly, I have had a look at the recommended SplClassLoader here: https://gist.github.com/jwage/221634
If I follow the above standards would I then need to register with:
$classLoader = new SplClassLoader('MyProject\\App\\Core', '../App/Core');
$classLoader->register();
$classLoader = new SplClassLoader('MyProject\\App\\Controllers', '../App/Controllers');
$classLoader->register();
$classLoader = new SplClassLoader('MyProject\\App\\DataMappers', '../App/DataMappers');
$classLoader->register();
...
This seems like horrible overkill. Can this be done more efficiently?
Thanks,
Jordan