Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [OOP] - Classi

  1. #1

    [OOP] - Classi

    Ciao a tutti!

    Mi è stato commissionato di realizzare il sito di una rivista mensile.

    Vorrei realizzarlo con le classi... Un pò di sintassi sulle classi e la OOP l'ho studiata.

    Vorrei chiedere a quelli un pò più smanettoni di me come realizzerebbero la struttura per la gestione delle pubbilcazioni degli articoli della rivista...

    Io mi sono fatto uno schemino, ma non so come tradurlo in Classi...

    RIVISTA { copertina, numero, anno } -> Articoli { id, Titolo, Autore, Pagina }

    Il sito è stato realizzato già con php e mysql.

    Ho la seguente struttura del Database:

    TABLE `Rivista` (
    `id` int(4) NOT NULL auto_increment,
    `id_sommario` varchar(255) NOT NULL default '',
    `pagina` int(2) NOT NULL default '0',
    `data` date NOT NULL default '0000-00-00',
    `data_inizio` date NOT NULL default '0000-00-00',
    `anno` int(4) NOT NULL default '2004',
    `numero_rivista` int(2) NOT NULL default '0',
    `titolo` varchar(255) NOT NULL default '',
    `autore` varchar(50) NOT NULL default '',
    `testo` text NOT NULL,
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM;

    non so ora come integrare il tutto con l'introduzione di classi...

    Help! Grazie a chiunque vorrà aiutarmi!

  2. #2
    una rivista oltre alle varie proprietà puo contenere un array di articoli
    www.gext.it

  3. #3
    potresti creare una classe RIVISTA con gli stessi campi della tabella e poi fare riferimento alle variabili della classe, tipo

    $rivista = new Rivista();
    $rivista->numero_rivista = 5;

    e poi creare metodi appropriati alla classe, tipo

    $rivista->salva() // salva un nuovo numero della rivista

    come diceva tarini potresti pure aggiungere una classe ARTICOLI che con tiene tutti gli articoli di ogni rivista:

    $articoli = new Articoli();
    $articoli->numero = $rivista->numero_rivista;
    $articoli->nome = "pippo peppo alla riscossa";
    $articoli->pagina = 5;

    e così via!

  4. #4
    Originariamente inviato da Emulman
    come diceva tarini potresti pure aggiungere una classe ARTICOLI che con tiene tutti gli articoli di ogni rivista:

    $articoli = new Articoli();
    $articoli->numero = $rivista->numero_rivista;
    $articoli->nome = "pippo peppo alla riscossa";
    $articoli->pagina = 5;

    e così via!
    Chiedo scusa, ma per ogni articolo devo fare questo blocco?

    Cioè mettiamo che abbia 25 articoli nella rivista...

    $articoli = new Articoli();
    $articoli->numero = $rivista->numero_rivista;
    $articoli->nome = "Editoriale";
    $articoli->pagina = 3;

    per considerare il secondo articolo magari a pagina 5 devo fare

    $articoli = new Articoli();
    $articoli->numero = $rivista->numero_rivista;
    $articoli->nome = "Articolo2";
    $articoli->pagina = 5;

    o cos'altro?

  5. #5
    beh potresti considerare $articoli->nome e $articoli->pagina come degli array, così per inserire nuovi articoli e pagine..

    Codice PHP:
    class Articoli {
      public 
    $numero_rivista;
      public 
    $nome;
      public 
    $pagina;

      function 
    __construct() {
        
    $this->nome = array(100);
        
    $this->pagina = array(100);
      }
    }

    $articoli = new Articoli();
    $articoli->numero_rivista $rivista->numero_rivista;
    array_push($articoli->nome'pippo peppo alla ricossa');
    array_push($articoli->pagina5); 

  6. #6
    adesso mi trovo... grazie mille! eventualmente ho problemi vi faccio sapere... notte!

  7. #7
    Originariamente inviato da Emulman
    beh potresti considerare $articoli->nome e $articoli->pagina come degli array, così per inserire nuovi articoli e pagine..

    Codice PHP:
    class Articoli {
      public 
    $numero_rivista;
      public 
    $nome;
      public 
    $pagina;

      function 
    __construct() {
        
    $this->nome = array(100);
        
    $this->pagina = array(100);
      }
    }

    $articoli = new Articoli();
    $articoli->numero_rivista $rivista->numero_rivista;
    array_push($articoli->nome'pippo peppo alla ricossa');
    array_push($articoli->pagina5); 

    a me non piace tanto...

    non puoi avere una cosa di questo tipo??

    Codice PHP:

    $rivista 
    = new Rivista("nome""data""numero");
    $rivista->articoli[] = new Articolo("titolo""autore""pagina");
    $rivista->articoli[] = new Articolo("titolo2""autore2""pagina"); 
    www.gext.it

  8. #8
    giustissimo, ma così sui due piedi mi era venuta in mente quelal! anche io uso spesso gli array in classi come hais critto tu, ma in quel momento mi veniva in mente solo la maniera più semplcie, tanto per semplificare la cosa..

  9. #9
    Originariamente inviato da tarini
    a me non piace tanto...

    non puoi avere una cosa di questo tipo??

    Codice PHP:

    $rivista 
    = new Rivista("nome""data""numero");
    $rivista->articoli[] = new Articolo("titolo""autore""pagina");
    $rivista->articoli[] = new Articolo("titolo2""autore2""pagina"); 
    Come è definita in questo caso Rivista?

    ho pensato ad una cosa del genere...

    Codice PHP:

       
    class Articolo
       
    {
          public 
    $Id_Articolo;
             public 
    $Pagina;
          public 
    $Titolo;
          public 
    $Autore;
           
       }
       
       class 
    Rivista
       
    {
          public 
    $numero_rivista;
          public 
    $anno;
          
          public 
    $articoli Articolo;
          
          function 
    __CostruisciRivista() 
          {
             
    $this->numero_rivista = array(12);
             
    $this->anno date("Y");
             
             
    $this->articoli->Id_Articolo 0;
             
    $this->articoli->Pagina      0;
             
    $this->articoli->Titolo      "";
             
    $this->articoli->Autore      "";
             
          }
       }

       
    $rivista = new Rivista("nome""data""numero");
       
    $rivista->articoli[] = new Articolo("titolo""autore""pagina");
       
    $rivista->articoli[] = new Articolo("titolo2""autore2""pagina");
    ?> 
    Ma non so se va bene come cosa...

    Un altro dubbio è questo: La dichiarazione delle classi può stare in un file esterno e poi magari incluso con la direttiva include(...); ???

    Grazie

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.