+ Rispondi alla Discussione
Risultati da 1 a 13 di 13

Consigli php

Ultimo Messaggio di enricocarli il:
  1. #1
    User
    Data Registrazione
    Nov 2014
    Località
    vicenza
    Messaggi
    119

    Consigli php

    Salve a tutti,

    Sono un appassionato di php, scrivo php procedurale, non so programmare a oggetti e non so usare framework.

    La mia domanda è: pubblicare pagine web con php procedurale, è obsoleto? Sconsigliabile?

    Grazie a tutti per le risposte
    Buona serata

  2. #2
    Utente Premium
    Data Registrazione
    Mar 2009
    Messaggi
    293
    Citazione Originariamente Scritto da enricocarli Visualizza Messaggio
    La mia domanda è: pubblicare pagine web con php procedurale, è obsoleto? Sconsigliabile?
    No per entrambe, semmai dipende da cosa devi fare.

    Saluti.

  3. #3
    User
    Data Registrazione
    Nov 2014
    Località
    vicenza
    Messaggi
    119
    Diciamo che per progetti complessi è meglio usare un framework?

  4. #4
    Utente Premium
    Data Registrazione
    Mar 2009
    Messaggi
    293
    Citazione Originariamente Scritto da enricocarli Visualizza Messaggio
    […]per progetti complessi è meglio usare un framework?
    Rientra nelle possibili soluzioni.

    Saluti.

  5. #5
    Moderatore L'avatar di Ivan88
    Data Registrazione
    Aug 2008
    Messaggi
    676
    Io ero come te, poi per un sito complesso ho imparato funzioni e classi e non tornerei più indietro.
    E' più rapido e ordinato.

  6. #6
    User
    Data Registrazione
    Nov 2014
    Località
    vicenza
    Messaggi
    119
    io uso molto le funzioni, diciamo che è meglio usare classi e framework, ma nel frattempo posso pubblicare le mie pagine anche se sono in php procedurale giusto?

    altra domanda, voi come strutturate le vostre applicazioni?

    io faccio così:

    nella root: index.php

    Codice PHP:
    <?php
        
    include "inc/config.php";
        include 
    "inc/functions.php";    

        if(isset(
    $_GET['app'])){
            if (
    in_array("views/".$_GET['app'].".php"$views)) {
                if (
    in_array("app/".$_GET['app'].".php"$app)) {
                    include 
    "app/".$_GET['app'].".php";
                }
                include 
    "views/".$_GET['app'].".php";
            } else {
                echo 
    "404";
            }
        } else {
            if(
    $current_url==$base_url){
                if (
    in_array("app/".$default_view.".php"$app)) {
                    include 
    "app/".$default_view.".php";
                }
                include 
    "views/".$default_view.".php";
            } else {
                echo 
    "404";
            }
        }
    ?>
    in config.php

    Codice PHP:
    <?php
        
        header
    ('Content-Type: text/html; charset=utf-8');

        
    $views glob('views/*.php');
        
    $app glob('app/*.php');
        
    $default_view ="home";

        function 
    dbconn($type){   
            switch(
    $type){   
                case 
    "myapp_moto":
                    
    ob_start();
                    
    ini_set('display_errors'1);
                    
    $db1 mysql_connect("localhost""root""mysql");
                    
    mysql_select_db("myapp_moto"$db1);
                break;   
                case 
    "codeigniter":
                    
    ob_start();
                    
    ini_set('display_errors'1);
                    
    $db2 mysql_connect("localhost""root""mysql");
                    
    mysql_select_db("codeigniter"$db2);
                break;   
            }
        }
    ?>
    poi 2 cartelle "app" e "view" nella prima il codice php che estrae dati dal db e mette in un array,
    e nella seconda le view che espongono i dati.

    Secondo voi è una strada corretta? come dovrei fare se volessi usare le classi?

    grazie mille per le risposte
    buona domenica

  7. #7
    Moderatore L'avatar di Ivan88
    Data Registrazione
    Aug 2008
    Messaggi
    676
    Io lo trovo un po' laborioso ma se ti trovi bene così...

    Con le classi a prescindere è più efficente chiamare le varie funzioni/oggetti.
    Ultima modifica di Ivan88; 21-10-16 alle 20:14

  8. #8
    User
    Data Registrazione
    Nov 2014
    Località
    vicenza
    Messaggi
    119
    Puoi postare un esempio di codice?

  9. #9
    Utente Premium
    Data Registrazione
    Mar 2009
    Messaggi
    293
    Citazione Originariamente Scritto da enricocarli Visualizza Messaggio
    io uso molto le funzioni, diciamo che è meglio usare classi e framework, ma nel frattempo posso pubblicare le mie pagine anche se sono in php procedurale giusto?
    Nessuno te lo vieta.

    Citazione Originariamente Scritto da enricocarli Visualizza Messaggio
    altra domanda, voi come strutturate le vostre applicazioni?

    io faccio così:

    nella root: index.php

    Codice PHP:
    <?php
        
    include "inc/config.php";
        include 
    "inc/functions.php";    

        if(isset(
    $_GET['app'])){
            if (
    in_array("views/".$_GET['app'].".php"$views)) {
                if (
    in_array("app/".$_GET['app'].".php"$app)) {
                    include 
    "app/".$_GET['app'].".php";
                }
                include 
    "views/".$_GET['app'].".php";
            } else {
                echo 
    "404";
            }
        } else {
            if(
    $current_url==$base_url){
                if (
    in_array("app/".$default_view.".php"$app)) {
                    include 
    "app/".$default_view.".php";
                }
                include 
    "views/".$default_view.".php";
            } else {
                echo 
    "404";
            }
        }
    ?>
    in config.php

    Codice PHP:
    <?php
        
        header
    ('Content-Type: text/html; charset=utf-8');

        
    $views glob('views/*.php');
        
    $app glob('app/*.php');
        
    $default_view ="home";

        function 
    dbconn($type){   
            switch(
    $type){   
                case 
    "myapp_moto":
                    
    ob_start();
                    
    ini_set('display_errors'1);
                    
    $db1 mysql_connect("localhost""root""mysql");
                    
    mysql_select_db("myapp_moto"$db1);
                break;   
                case 
    "codeigniter":
                    
    ob_start();
                    
    ini_set('display_errors'1);
                    
    $db2 mysql_connect("localhost""root""mysql");
                    
    mysql_select_db("codeigniter"$db2);
                break;   
            }
        }
    ?>
    poi 2 cartelle "app" e "view" nella prima il codice php che estrae dati dal db e mette in un array,
    e nella seconda le view che espongono i dati.

    Secondo voi è una strada corretta? come dovrei fare se volessi usare le classi?

    grazie mille per le risposte
    buona domenica
    Cocordo con l'osservazione fatta da Ivan88 sul codice laborioso.

    A mio avviso il consiglio migliore è quello di studiare a capofitto su più tutorial possibili. Poi con il tempo, l'esperienza e vedere quei codici esemplificativi in aggiunta a quelli che troverai nel corso delle ricerche ti aiuteranno a scrivere codice di più professionali e di migliore comprensione.

    Saluti.

  10. #10
    User
    Data Registrazione
    Nov 2014
    Località
    vicenza
    Messaggi
    119
    Grazie mille e scusate il ritardo nella risposta; sto sperimentando con php a oggetti; un esempio: vorrei fare un blog che pesca da 2 db; ho scritto queste classi:

    myclass.php
    Codice PHP:
    <?php
        
    class Examples{
            private 
    $db;        

            public function 
    __construct(){
                
    $this->db = new mysqli('localhost''root''hal9000''examples');
            }

            public function 
    get_actors(){
                
    $actors array();
                
    $query $this->db->query('SELECT * FROM actor LIMIT 10');
                while (
    $row $query->fetch_array(MYSQLI_ASSOC)){
                    
    $actors[] = array(
                        
    "id" => $row['actor_id'],
                        
    "fullname" => $row['fullname']
                    );
                }
                return 
    $actors;
            }

            public function 
    __destruct(){
                
    mysqli_close($this->db);
            }
        }

        class 
    Codeigniter{
            private 
    $db;

            public function 
    __construct(){
                
    $this->db = new mysqli('localhost''root''hal9000''myapp_moto');
            }

            public function 
    get_actors(){
                
    $actors = array();
                
    $query $this->db->query('SELECT * FROM articoli LIMIT 10');
                while (
    $row $query->fetch_array(MYSQLI_ASSOC)){
                    
    $actors[] = array(
                        
    "id" => $row['id'],
                        
    "titolo" => $row['titolo']
                    );
                }
                return 
    $actors;
            }

            public function 
    __destruct(){
                
    mysqli_close($this->db);
            }
        }

        
    $attori = new Examples();
        echo 
    "<pre>";
        
    print_r($attori->get_actors());
        echo 
    "</pre>";

        
    $news = new Codeigniter();
        echo 
    "<pre>";
        
    print_r($news->get_actors());  
        echo 
    "</pre>";    
    ?>
    potrei includere la classe in tutte le view, e farmi un metodo per ogni view in base a quello che mi serve? è corretta una cosa del genere secondo voi?

    grazie mille e buon week end

  11. #11
    User
    Data Registrazione
    Nov 2014
    Località
    vicenza
    Messaggi
    119
    Anzi ancora meglio:

    Codice PHP:
    <?php
        
    class Examples{
            private 
    $db;        

            public function 
    __construct(){
                
    $this->db = new mysqli('localhost''root''hal9000''examples');
            }

            public function 
    wolly($myquery,$myfields){
                
    $array_query array();
                
    $array_fields explode(","$myfields);
                
    $query $this->db->query($myquery);
                
    $i 0;
                while (
    $row $query->fetch_array(MYSQLI_ASSOC)){
                    foreach (
    $array_fields as $field) {
                        
    $array_query[$i][$field] = $row[$field];
                    }
                    
    $i++;
                }
                return 
    $array_query;
            }

            public function 
    __destruct(){
                
    mysqli_close($this->db);
            }
        }

        class 
    Codeigniter{
            private 
    $db;

            public function 
    __construct(){
                
    $this->db = new mysqli('localhost''root''hal9000''myapp_moto');
            }

            public function 
    wolly($myquery,$myfields){
                
    $array_query = array();
                
    $array_fields explode(","$myfields);
                
    $query $this->db->query($myquery);
                
    $i 0;
                while (
    $row $query->fetch_array(MYSQLI_ASSOC)){
                    foreach (
    $array_fields as $field) {
                        
    $array_query[$i][$field] = $row[$field];
                    }
                    
    $i++;
                }
                return 
    $array_query;
            }

            public function 
    __destruct(){
                
    mysqli_close($this->db);
            }
        }

        
    $attori = new Examples();
        echo 
    "<pre>";
        
    print_r($attori->wolly('SELECT * FROM actor LIMIT 5','actor_id,fullname,last_update')); 
        echo 
    "</pre>";

        
    $news = new Codeigniter();
        echo 
    "<pre>";
        
    print_r($news->wolly('SELECT * FROM articoli LIMIT 5','id,titolo,sottotitolo'));  
        echo 
    "</pre>";    
    ?>
    Così risparmio codice, meglio no?

  12. #12
    User
    Data Registrazione
    Jun 2013
    Località
    Roma
    Messaggi
    979
    Le classi sono una gran cosa per applicazioni complesse... se però si comincia ad usarle anche per scrivere uno stupido guestbook... allora non ci siamo proprio!

  13. #13
    User
    Data Registrazione
    Nov 2014
    Località
    vicenza
    Messaggi
    119
    Ciao enigma, grazie per la risposta intanto, scusa ma sono un novellino col php; scrivo php procedurale, uso le funzioni ma vorrei passare alla oop, credo sia meglio conoscere come funziona, comunque il codice sopra è un esempio, vorrei solo capire come e quando usare la oop. Grazie mille intanto e buona serata

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.