Hoe kan ik een overkoepelende klasse (zoals voorbeeld code) omzetten naar namespaces?

Zou iemand me hier een voorbeeld van kunnen geven op basis van onderstaande code.


<?php


class verwerkProject {

//vars
private pdfRoot = 'hier/staan/pdfs';
public projectNummer = null;
public projectData = array();
//... etc ...

/*
* PDF FUNCTIES -> zou een aparte class/namespace moeten worden
*/

public function pdfBestaat( $bestand = '') {

$this->_bestand_bestaat($this->pdfRoot. '/' . $bestand);

//... doe nog iets ...
}

public function pdfOpen( $bestand = '') {
//... doe iets ...
}

/*
* DB FUNCTIES -> zou een aparte class/namespace moeten worden
*/

public function dbConn() {
//... doe iets ...
}

public function dbQuery() {
//... doe iets ...
}

/*
* MAIL FUNCTIES -> zou een aparte class/namespace moeten worden
*/

public function mailStuur() {
//... doe iets ...
}

public function mailMaak() {
//... doe iets ...
}

/*
* LOG FUNCTIES -> zou een aparte class/namespace moeten worden
*/

public function log( $str = '' ) {
//... doe iets ...
}

/*
* PRIVATE/TOOLKIT FUNCTIES -> zou een aparte class/namespace moeten worden
*/

private function _bestand_bestaat( $pad = '' ) {
if (empty($pad)) {
return false;
}
else {
return file_exists($pad);
}
}

// ... etc ...
}

$vp = new verwerkProject();

$bestand = 'test.pdf';

// controleer of pdf bestaat
if ($vp->pdfBestaat($bestand)) {
$data = $vp->pdfOpen($bestand);
} else {
$vp->log('PDF bestand bestaat niet.');
}
<?php
//-------------------------------------------

namespace Phphulp\Frank;

class Login // de volledige classnaam is nu eigenlijk: Phphulp\Frank\Login
{
function __construct()
{
echo 'Frank zijn Login-class!<br>';
}
}

class Register // de volledige classnaam is nu eigenlijk: Phphulp\Frank\Register
{
function __construct()
{
echo 'Frank zijn Register-class!<br>';
}
}

//-------------------------------------------

namespace Phphulp\Erwin;

class Login // de volledige classnaam is nu eigenlijk: Phphulp\Erwin\Login
{
function __construct()
{
echo 'Erwin zijn Login-class!<br>';
}
}

class Register // de volledige classnaam is nu eigenlijk: Phphulp\Erwin\Register
{
function __construct()
{
echo 'Erwin zijn Register-class!<br>';
}
}

//-------------------------------------------

// eerste methode:
// we gebruiken de volledige namespace + classnaam:
$a = new \Phphulp\Frank\Login();
$b = new \Phphulp\Erwin\Login();


// tweede methode:
// we geven een alias op voor de volledige namespace classnaam.
use Phphulp\Frank\Login as PatatEmmer;
$a = new PatatEmmer();

use Phphulp\Erwin\Login as Rookworst;
$a = new Rookworst();

// derde methode:
// we geven geen alias op. PHP geef dan zelf een naam
use Phphulp\Erwin\Register; // as Register;
$a = new Register();

// dit levert een foutmelding op omdat er dan twee namespaces zijn met de naam 'Register'!
/*
use Phphulp\Frank\Register; // as Register;
$a = new Register();
*/

// Of we geven een gedeelte van de namespace die we willen gebruiken
use Phphulp\Erwin; // as Erwin;
$a = new Erwin\Login();
$a = new Erwin\Register();


Beste Frank,

Bedankt voor je uitleg was zeer verhelderend.

Heb ik alleen nog een vraag:
Als ik bijv. in Phphulp\Frank\Login een functie heb isLoggedIn().
Hoe zou ik deze functie kunnen gebruiken in Phphulp\Frank\Register om bijv. te controleren of de gebruiker al is ingelogd.

Reageren