Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 66
  1. #1

    Utilizzare metodi e proprietà di altre classi

    Salve a tutti.

    Sto iniziando a programmare ad oggetti e dopo aver letto un pò di teoria mi sono reso conto che alla fin fine gli aspetti teorici sono tutto sommato pochi...
    Il problema sorge nella messa in opera, o meglio, nell'acquisire dimestichezza con questo nuovo approccio...

    Il mio quesito è sicuramente stupido...
    Se all'interno di una classe mi occorrono metodi e proprietà presenti in un altra classe come si opera??

    concretamente il problema mi si è presentato fra una classe per gestire l'interazioni con MySql e in un altra in cui voglio estrarre dati tramite query (ad esempio estrazione news da una tabella).

    Dal punto di vista strettamente del "funzionamento" (non compaiono errori e lo script funziona) ho adottato con successo 3 modalità:
    1)
    Codice PHP:
    class news extends mysql
        
    {
        public function 
    array_file()
            {
            
    $this->execute_query("SELECT * FROM news");
            
    $array_news $this->array_fetch();
            return 
    $array_news;
            }
        } 
    2)
    Codice PHP:
    require_once 'Mysql.class.php';

    class 
    news
        
    {
        private 
    $db;
        
        public function 
    __construct() 
            { 
            
    $this->db mysql::connect(); 
            }
        
        public function 
    array_news()
            {
            
    $this->db->execute_query("SELECT * FROM news");
            
    $array_news $this->db->array_fetch();
            return 
    $array_news;
            }
        } 
    3)
    Codice PHP:
    class news
        
    {
        private 
    $db;
        
        public function 
    __construct() 
            { 
            require_once 
    'Mysql.class.php';
            
    $this->db = new mysql(); 
            }
        
        public function 
    array_news()
            {
            
    $this->db->execute_query("SELECT * FROM news");
            
    $array_news $this->db->array_fetch();
            return 
    $array_news;
            }
        } 
    C'è qualcuno che mi sappia indirizzare verso il modo corretto di operare?

  2. #2
    http://programmazione.html.it/guide/...ni-tra-classi/

    in soldoni scartando extends (perchè come soluzione è poco elastica)
    hai due possibilita
    instanziare la classe nel costruttore
    passarla al costruttore come parametro (soluzione migliore imho)

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    Originariamente inviato da whisher
    http://programmazione.html.it/guide/...ni-tra-classi/

    in soldoni scartando extends (perchè come soluzione è poco elastica)
    hai due possibilita
    instanziare la classe nel costruttore
    passarla al costruttore come parametro (soluzione migliore imho)

    Ti ringrazio per la risposta solo che io cercavo una sorta di regola da applicare in senso iù generale...

    Faccio un altro esempio:
    poniamo che io mi costruisca un ulteriore classe per la validazione di dati:
    Codice PHP:
    class validate
          
    {
          public function 
    is_email($string)
             {
             return 
    preg_match(...);
             }
          public function 
    is_url($string)
             {
             return 
    preg_match(...);
             }
          public 
    is_alfanumeric($string)
             {
             return 
    preg_match(...);
             }   
          
    // etc etc
          

    Ora io voglio eseguire un INSERT nel db di una nuova news...
    Mi occorreranno all'interno della classe news:
    - la connessione a mysql e le relative funzioni presenti nella classe
    - le funzione per validare i dati in ingresso

    Come è "corretto" fare; io... facendo smenettamenti vari sono in grado di farla funzionare...
    ciò che invece mi preme capire è:
    quel è il corretto modo di operare?

  4. #4
    Originariamente inviato da oly1982

    Mi occorreranno all'interno della classe news:
    - la connessione a mysql e le relative funzioni presenti nella classe
    - le funzione per validare i dati in ingresso
    1 passi la classe Mysql.class.php nel costruttore della classe news
    2 be qui si fa complicata nel senso che di solito la validazione
    la si fa direttamente nella form (classe generazione form + validazione)
    ma non è affato semplice da implementare quindi io la farei prima
    di passare i dati al metodo ad esempio insert.


    private $db;
    usa

    protected $db;

    metti che per qualsiasi motivo la vuoi estendere
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    Originariamente inviato da whisher
    1 passi la classe Mysql.class.php nel costruttore della classe news
    Facendo riferimento all'esempio che ho postanto inizialmente come è corretto fare nel modo 2) o 3)

    Originariamente inviato da whisher
    2 be qui si fa complicata nel senso che di solito la validazione
    la si fa direttamente nella form (classe generazione form + validazione)
    ma non è affato semplice da implementare quindi io la farei prima
    di passare i dati al metodo ad esempio insert.
    Non ho capito... generare form da classe??... cioè il markup del form??
    Mi linki un esempio?
    mi sono prorpio perso ora...

  6. #6
    uppino... qualche guru che mi dà una dritta, un consiglio!!!!

    quasi quasi apro un topic in cui vi chiedo come stampare la data odierna... così giusto per il gusto di rcevere qualche risposta in +...

  7. #7
    Originariamente inviato da oly1982
    Facendo riferimento all'esempio che ho postanto inizialmente come è corretto fare nel modo 2) o 3)


    Non ho capito... generare form da classe??... cioè il markup del form??
    Mi linki un esempio?
    mi sono prorpio perso ora...
    http://www.devshed.com/c/a/PHP/The-S...nerator-Class/

    Yeah, you have to study english


    Facendo riferimento all'esempio che ho postanto inizialmente come è corretto fare nel modo 2) o 3)

    ma non leggi quello che la gente scrive
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Ti confesso che php che genera dinamicamente un form (dall'alto della mia ignoranza!!)...
    soprattuto qualora voglio alterare lo style/disposizione della pagina!!

    Ma una curiosità... è una cosa che fai tu in quanto hai questo stile di programmazione oppure è una cosa che si fa normalmente/abitualmente/in maniera generalizzata?

  9. #9
    lo fanno tutti uno su tutti zend framework
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  10. #10
    Originariamente inviato da whisher
    lo fanno tutti

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 © 2025 vBulletin Solutions, Inc. All rights reserved.