Les méthodes commençant par __ sont dites
magiques.
La méthode
__construct te permet d'effectuer un traitement, ou non, lors de l'instanciation de l'objet.
Ainsi, l'appel de new Controller () équivaut à l'appel de Controller::__construct().
Pour ta seconde question, en très gros : tu sépares le publique du privé. Le publique équivaut à tes fichiers JS, tes feuilles de styles, tes fichiers images
et un fichier PHP nommé index.php : le contrôleur principal.
Ce dernier va ensuite, selon la requête, inclure les fichiers PHP privés nécessaires au traitement.
Tu auras donc une arch. comme :
- ton_application/
- webroot/ (le publique)
- js/
- i/
- css/
- index.php (le contrôleur principal)
- phproot/ (le privé)
- util/
tes classes utiles- model/
- Model.php
- ModelInterface.php
- ModelException.php
- controller/
- Controller.php
- ControllerInterface.php
- ControllerException.php
- view/
- View.php
- ViewInterface.php
- ViewException.php
- database/
- Database.php
- DatabaseInterface.php
- DatabaseException.php
- DatabaseMySQL.php
- DatabaseOracle.php
- cache/
- Cache.php
- CacheInterface.php
- CacheException.php
- CacheApc.php
- CacheMemcached.php
- model/
- HelloModel.php
- view/
- HelloView.php
- controller/
- HelloController.php
La racine de ton serveur web doit donc être ton_application/webroot/.
Je reviendrai sur tout ce qui est Model, ModelInterface, ModelException, etc lorsque tu t'intéresseras à l'abstraction, aux interfaces, à l'héritage, à l'implémentation et aux exceptions. =]
je trouve ca vachement bien expliqué d'ailleur.
Merci. =]