Autore Messaggio
01-07-2007, 15:03
Messaggio: #1 (permalink)
Namaless
Forumista Attivo
****
Registrato: Nov 2007
Messaggi: 320
Reputazione:

[HOW-TO] Creare una Classe in PHP


Premetto che non mi soffermero' su alcuni semplici passaggi come spiegare cosa e' una funzione oppure una variabile.


L'autore presuppone che almeno le basi di PHP ci siano...




Allora vediamo un po'... cosa potrebbe fare questa classe? Gestire gli upload, inviare semplicemente una email... oppure... boh :19:
Sinceramente non mi viene in mente niente xD pero' qualcosa dobbiamo fare, allora faremo una classe che ci da'? varie informazioni, tra cui la versione di php del server, il vostro indirizzo ip, ecc...
Una cosa piuttosto semplice che vi fara'? capire come funziona una classe PHP :13:

Allora partiamo con il definire la classe:

Codice:
<?php
class Informations
{
function __construct(){}
function __destruct(){}
}
?>



Vi informo fin da subito che io sviluppo sotto php5 per cui non staro' attendo alla retrocompatibilita'?!


Esempio la classe per essere compatibile con php4 avrei dovuto definirla cosi':

Codice:
<?php
class Informations
{
function Informations(){}
}
?>

Il costrutto
Che diavolo e'? :/
Il costrutto non e' altro che l'oggetto che viene costruito al momento della creazione.
Creando l'oggetto facendo una cosa del genere:

Codice:
$info = new Informations();

Viene creato l'oggetto "$info" e alla sua creazione viene eseguita la funzione __construct mentre alla chiusura dell'oggetto (al momento in cui non e' piu' necessario) si distrugge con la funzione __destruct.

Bene, ora che abbiamo definito la classe dobbiamo definire che diavolo farli fare xD

Allora per prima cosa creiamo una funzione che restituisca a video la versione di php installato sul server:

Codice:
public function get_php_version()
{
return phpversion();
}

Questo pero' fara'? tornare la versione di php e non stampare... aggiungiamo una funzione optionale che ci permetta di controllare se stampare a video oppure far tornare il valore:

Codice:
public function get_php_version($return = TRUE)
{
if ($return === FALSE)
{
echo phpversion();
}
else
{
return phpversion();
}
}

Praticamente tramite l'optione $return che di predefinito e' impostato su TRUE per cui di predefinito fara'? tornare il risultato mentre se lo impostiamo su FALSE allora stampera'? a video.

Facciamo che ve la faccio subito provare :P

Create un nuovo file del tipo "informations.class.php" e metteteci questo testo all'interno:

Codice:
<?php
class Informations {
function __construct(){}
function __destruct(){}

public function get_php_version($return = TRUE)
{
if ($return === FALSE)
{
echo phpversion();
}
else
{
return phpversion();
}
}
}
?>

Bene, adesso create un nuovo file denominato una cosa del genere "prova.php" con il seguente codice:

Codice:
<?php
include ('informations.class.php');
$info = new Informations();

// stampa a video
$info->get_php_version(FALSE);

// ritorna il valore
echo $info->get_php_version();

?>

Io vi lascio la possibilita'? di testare sei un metodo che l'altro, per bloccare un metodo basta commentare la riga interessata wink

Be' ve la spiego pero' mi sembra molto semplice:

Codice:
include ('informations.class.php');

Include la classe sopra creata.

Codice:
$info = new Informations();

Costruisce l'oggetto $info dalla classe Informations.

Codice:
$info->get_php_version(FALSE);

Stampa a video la versione di php.

Codice:
$info->get_php_version();

Restituisce il risultato e va'? quindi stampato a video tramite il comando "echo".



Supponiamo per un momento che io sia normale e non fuori di testa come sempre... voglio che sia visualizzato l'immagine del logo di php :/

La prima cosa che ci viene in mente e' di linkare l'immagine e via.. ma questo consumera'? banda, quindi aggiungiamo un'altro metodo per farvi capire l'uso di + metodi:

Codice:
class Informations {
function __construct(){}
function __destruct(){}

public function get_php_version($return = TRUE)
{
if ($return === FALSE)
{
echo phpversion();
}
else
{
return phpversion();
}
}

public function get_php_img($return = TRUE)
{
if ($return === FALSE)
{
echo '<img src="' . $_SERVER['PHP_SELF'] .
    '?=' . php_logo_guid() . '" alt="PHP Logo !" />';;
}
else
{
return '<img src="' . $_SERVER['PHP_SELF'] .
    '?=' . php_logo_guid() . '" alt="PHP Logo !" />';;
}
}
}

Solito modo e optione della funzione di prima:

Codice:
$info->get_php_img()

Restituisce l'immagine di php senza stamparla.

Codice:
$info->get_php_img(FALSE);

Stampa a video il logo di php.

Che ne dite?


Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta