[PHP] utilizzo di una classe e delle sue funzioni

mau90

Nuovo Utente
2 Ago 2019
18
1
3
Salve, ormai da GIORNI ho un problema che non riesco assolutamente a risolvere.

Premetto che non sono assolutamente esperto di PHP, quindi spero che il mio quesito sia espresso con la giusta terminologia al fine che capiate il mio problema.

Ho iniziato il progetto che prevede una pagina di registrazione e una di login; una volta loggati si avrà la possibilità di inserire, modificare ed eliminare dei prodotti all'interno di un database su phpMyAdmin (la sto facendo un pochino semplice, ma in realtà il programma è un pochino più complesso)...

IL MIO PROBLEMA:
Praticamente ho inserito le varie funzioni (inserisci, modifica, elimina) all'interno di una classe che ho chiamato Edit... queste funzioni io dovrei richiamarle su un'altro file (l'index che gestisce tutto: passa la connessione PDO a tutti i file, richiama il login, il registra ecc), ma non ho la minima idea di come si faccia! mi è stato detto di "richiamare" la classe Edit(e le sue funzioni) all'interno del costruttore, e solo una volta all'interno del costruttore posso utilizzare le funzioni nell'index...

inserisco degli stralci di codice per farvi capire cosa intendo:

Edit.php:
PHP:
class Edit
{
    private $conn;
    public function __construct() {
        $this->conn = new DBConnection();

    }

    function delete($id){   questa funzione dovrei inserirla dentro uno switch/case che ho creato nell'index
        //elimina elemento dalla tabella
        $sql = "DELETE FROM prodotti WHERE id=:id";
        $query = $this->conn->prepare($sql);
        $query->execute(array(':id' => $id));
        if($query->fetch_row){
            header('Location: ../?type=h');
        }else{
            echo "Errore";
            var_dump($query);
            die();
        }
}

index.php:

case  'delete':
    require_once 'Controller/Edit.php';
    call_user_func(delete($id)); dovrei richiamare qua la funzione, ma ovviamente call_user_ func non funziona   break;
 
Ultima modifica di un moderatore:

macus_adi

Utente Attivo
5 Dic 2017
1.232
77
48
IT/SW
case 'delete':
require_once 'Controller/Edit.php';
call_user_func(delete($id));
dovrei richiamare qua la funzione, ma ovviamente call_user_ func non funziona break;
PHP:
$edit=new Edit();
call_user_funct_array([$edit,'delete'],[$id]);
//oppure
$edit->delete($id);
In alternativa creare un metodo statico nella class
PHP:
public static function Opera(){
     return (new self)
}
Nel file dove hai lo switch
PHP:
Edit::Opera()->delete($id)
 
  • Like
Reactions: mau90

mau90

Nuovo Utente
2 Ago 2019
18
1
3
PHP:
$edit=new Edit();
call_user_funct_array([$edit,'delete'],[$id]);
//oppure
$edit->delete($id);
In alternativa creare un metodo statico nella class
PHP:
public static function Opera(){
     return (new self)
}
Nel file dove hai lo switch
PHP:
Edit::Opera()->delete($id)

GRAZIE MILLE!!! finalmente DOPO UNA SETTIMANA ho risolto!!!