Per completare il tutto vediamo anche la versione senza namespace
La definizione delle classi rimane uguale ma senza l'uso di namespace e use
SplClassLoader.php
Codice PHP:
// incollare la definizione della classe di JWage
a.php
Codice PHP:
class a {
private $pdo;
public function __construct( PDO $pdo ) {
$this->pdo = $pdo;
}
public function dump() {
return var_dump( $this->pdo );
}
}
b.php
Codice PHP:
class b extends a {
}
htmlWidgetInterface.php
Codice PHP:
interface htmlWidgetInterface {
public function render();
}
p.php
Codice PHP:
class p implements htmlWidgetInterface {
private $txt;
public function __construct( $txt ) {
$this->txt = $txt;
}
public function render() {
return '<p>' . $this->txt . '</p>';
}
}
da usare poi:
index.php
Codice PHP:
require_once( 'test/loader/SplClassLoader.php' );
// '' è il namespace globale da utilizzare
// __DIR__ come prima ci dà la directory [root]
$loader = new SplClassLoader( '', __DIR__ );
$loader->register();
define( "DB_DNS", 'mysql:host=you.host.net;dbname=dbname' );
define( "DB_USER", 'dbuser' );
define( "DB_PASS", 'dbpass' );
try {
$pdo = new PDO( DB_DNS, DB_USER, DB_PASS );
$b = new b( $pdo );
$p = new p( $b->dump() );
echo $p->render();
} catch ( Exception $e ) {
echo '<p>' . $e->getMessage() . '</p>';
echo '<p>File: ' . $e->getFile() . ' - line: ' . $e->getLine() . '</p>';
exit;
}
Buona pasqua a tutti e buon studio, spero possa essere interessante per qualcuno.
Se avete dubbi e domandi siamo qui
Andrea