que facilitam criar os diagramas e uns ate exportam o diagrama p/ codigo fonte (C,C++,PHP,JAVA,etc..), eu gosto do Astah7 - Se vc quiser usar um esquema automagico no carregamento de classes, utilize sempre o mesmo esquema nos nomes de arquivos ou tudo.php ou tudo .class.php, no exemplo anterior eu mostrei um jeito semi-automatico criando um array com os nomes das classse (ai pode utilizar qualquer nome, pois o mapeamento sera manual, p/ pequenas aplicacoes nao tem problema), e caminho dentro de uma funcao __autoload .Nesse esquema a funcao spl_autoload_register ja faz isso. 8- Utilize uma IDE p/ desenvolver, Netbeans, Eclipse, Dreamweaver, tanto faz. e utilize uma ferramenta que gere documentacao de seu codigo. Isso permite analisar mais facilmente o que ja foi implementado e o que falta.9- Quando achar que ja sabe o bastante, continue pesquisando, as tecnologias sao dinamicas e requerem sempre atualizacoes ou melhorias.Penso que sempre existira um jeito mais rapido de se fazer algo que ja esta sendo feito, depende do ponto de vista e da experiencia do desenvolvedor.Vamos ao namespaces :1- Introducao namespaces Antes de mostrar o projeto final, vou mostrar um exemplo simples p/ facilitar o entendimento ainda utilizando uma funcao __autoload():Observe que quando vc quiser usar o comando use .. . a classe deve ter na 1a linha uma definicao de namespace p/ ser acessivel.E a definicao namespace na classe que vc quer disponilizar o acesso./test/Foo.php este com namespace tests<?phpnamespace tests;class Foo { public function __construct() {} public function sayHello() { echo 'Hello <br>'; $dt = new \DateTime(); } public static function sayBye() { echo 'Bye '; } public static function init() {}}?>/autoload.php sem utilizar declaracao namespace<?phpfunction __autoload($classe) { echo "receiving $classe<br>"; $nameClassOnly = strpos(strrev($classe), "\\"); $classeAux = substr($classe, -$nameClassOnly); echo "would be $classeAux??<br>"; $finalClass = str_replace('\\', '/', $classe); echo "including $finalClass<br>"; require_once $finalClass . '.php'; spl_autoload_register(array($classe, 'init'));//registra a classe com o metodo statico init}?>/callFoo.php sem utilizar declaracao namespace mas usando o autoload e o comando use namespace\classe<?phprequire 'autoload.php';use tests\Foo ;$foo = new Foo();$foo->sayHello();$dt = new DateTime();echo $dt->format(date('d/m/Y H:i:s')) . "<br>";//static methodFoo::sayBye();echo "<pre>";print_r(spl_autoload_functions());echo "</pre>";?>resultado :/callFoo_1.php sem utilizar declaracao namespace mas usando o autoload e o comando use namespace\classe e utilizando um Alias p/ a classe Foo<?phprequire 'autoload.php';use tests\Foo as MyFooClass;$foo = new MyFooClass();$foo->sayHello();$dt = new DateTime();echo $dt->format(date('d/m/Y H:i:s')) . "<br>";MyFooClass::sayBye();echo "<pre>";print_r(spl_autoload_functions());echo "</pre>";?>resultado :e como fica isso mais perto da realidade sem Foo, bar, etc ?/callCliente.php sem utilizar declaracao namespace mas usando o autoload e o comando use ...<?phprequire 'autoload.php';use app\model\Cliente;use app\lib\Utils;$cliente = new Cliente();$util= new Utils();$util->mostraObjeto($cliente);echo "<pre>";print_r(spl_autoload_functions());echo "</pre>";?>/app/model/Cliente.php<?phpnamespace app\model;final class Cliente { private $id; private $nome; private $email; function __construct() { $this->id = 0; $this->nome = null; $this->email = null; } public static function init() { __construct(); } public function getId() { return $this->id; } public function setId($id) { $this->id = $id; } public function getNome() { return $this->nome; } public function setNome($nome) { $this->nome = $nome; } public function getEmail() { return $this->email; } public function setEmail($email) { $this->email = $email; } public function __toString() { return "id:".$this->getId()." nome:".$this->getNome()." email:".$this->getEmail(); }}?>/app/lib/Utils.php<?phpnamespace app\lib;class Utils { private $styleBox; public static function init(){ __construct() ; } public function