Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2017
    Messaggi
    1

    connessione mysql oop in file config.php

    Ciao a tutti
    sto cercando ci convertire la mia applicazione web in php oop ma ho diversi problemi.

    ho creato due file:

    il primo config.php (con i parametri di connessione al db) :

    Codice PHP:
    <?php
    # definizione delle costanti per l'autenti;cazione al DBMS
    define('DATA_HOST''xxx');
    define('DATA_UTENTE''xxx');
    define('DATA_PASS''xxx');
    define('DATA_DB''mioDatabase');
    # classe per l'interazione con il database
    class DATA_Class {
      
    # definizione del costruttore
      
    public $connessione;
      public function 
    __construct() {
            
    # connessione al DBMS
            
    $this->connessione = new mysqli(DATA_HOSTDATA_UTENTEDATA_PASSDATA_DB);
        if (
    $this->connessione->connect_error) {
            echo 
    "Errore: ".$connnessione->connect_error;
            exit;
        } else {
            
    // do nothinhg;
        
    }
      }
    }

    il secondo file

    Codice PHP:

    <?php
    @include_once 'config.php';

    class 
    Gestione {

    public 
    $lollo;

    public function 
    __construct () {

    $this->lollo =new DATA_Class();

    }


    public function 
    test () {

    $result $this->lollo->connessione->query("SELECT nome.id FROM utenti'");

    $conta $result->num_rows;

    echo 
    $conta;

    }

    }

    $obj = new Gestione();

    $obj->test();

    ?>


    il tutto funziona ma mi sembra che sia un giro un po complicato. Secondo voi non si puo snellire?

    Grazie

  2. #2
    prima questo: http://docs.doctrine-project.org/pro...roduction.html

    poi questo: http://docs.doctrine-project.org/pro...g-started.html

    nel merito del tuo codice invece:

    a) il setup della connessione: diciamo che è un mix di procedurale e oop, fatto un pò così come si trova in giro su internet in molti tutorial dilettanteschi. l'uso delle variabili di setup in quel modo non va bene, ma ora sarebbe lunga spiegarti una soluzione diversa. Concettualmente, dovresti avere un file di config (tipo un file application.properties ) in cui definisci le variabili che ti servono, una classe Configuration che carichi tali variabili, una DbConnectionFactory che utilizzi tali variabili per creare una DbConnection che wrappi le api di basso livello di mysql

    b) la classe Gestione:

    - non, dico non, ripeto non, usare nomi in italiano! I nomi vanno in inglese, sempre e comunque, così come la documentazione. Si programma in inglese. anche perchè "$this->lollo->connessione" non so se faccia più ridere che piangere.

    - Gestione dovrebbe ricevere la dipendenza della connessione dall'esterno, ad esempio nel costruttore, perchè non dovrebbe essere responsabile di istanziare la connessione direttamente, ma dovrebbe affidarsi ad una classe esterna (ad esempio come descritto nel punto a)

    - dal punto di vista OOP, Gestione è completamente sbagliata. Purtroppo per te, l'OOP per astrarre la persistenza è quanto di più complicato tu potessi scegliere. Ti suggerisco di affidarti alla soluzione che ti ho indicato all'inizio del post, perchè non hai minimamente i mezzi per fare una cosa del genere (e, ti assicuro, per una cosa fatta veramente bene non l'avrei neanche io, ma forse neanche per una cosa decente eh)

    Se proprio vuoi continuare così, magari puoi prendere ispirazione dai link sopra
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Non si convertono le applicazioni in OOP semplicemente scrivendo "public", "private" e "protected"...

    Le OOP sono una conoscenza non indifferente, tant è che la figura dell'analista informatico si occupa proprio di questo.

    Due libri per cominciare ad avere le basi della mentalità per le OOP sono:
    - Design Patterns Elements of Reusable Object-Oriented Software;
    - Head first design patterns;

    Rispettivamente da 600 e 400 pagine.

    il tutto funziona ma mi sembra che sia un giro un po complicato. Secondo voi non si puo snellire?
    Lol

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.