IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] en php5, est-ce ça ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Par défaut [POO] en php5, est-ce ça ?
    Salut,

    J'ai débuté le PHP en codant en procédural, puis j'ai utilisé les classes mais ca ressemblait toujours au procédural. Mes classes étaient en fait des bibliothèques de fonctions regroupées en fonction de leur usage.

    J'essaye maintenant de coder en objet, mais je trouve que le terme désigne quelque chose qui est assez vague et qui peut surtout être interprété différemment selon les personnes.

    J'ai donc préparé un petit script qui rassemble les méthodes que j'utilise pour coder.

    Dites moi ce que vous en pensez.

    Suis je encore loin de la programmation objet?

    Merci d'avance pour vos réponses.

    A+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    <?
    class upload
    {
        public $file_key;
        public $user_ip;
        public $max_file_size;
        public $move_to;
     
        public $message;
     
        private $_file_name;
        private $_upload_id;
     
        function __construct()
        {
            //------------------------------------
            // Chargement des valeurs par défaut
            //------------------------------------
     
            $this->file_key      = 'default';
            $this->user_ip       = $_SERVER['REMOTE_ADDR'];
            $this->max_file_size = 10000;
            $this->move_to       = '/';
        }
     
        private function _make_file_name()
        {
            $this->_file_name = trim( $_FILES[$this->file_key]['name'] );
     
            return true;
        }
     
        private function _check_size()
        {
            if ( $_FILES[$file_key]['size'] > $this->max_file_size )
            {
                $this->message = 'File too big!!!';
     
                return false;
            }
     
            return true;
        }
     
        private function _download_file()
        {
            if ( ! move_uploaded_file( $_FILES[$this->file_key]['name'], $this->move_to ) )
            {
                $this->message = 'Cant move file';
     
                return false;
            }
     
            return true;
        }
     
        private function _add_to_bdd()
        {
            $sql = "INSERT INTO ...";
     
            $this->_upload_id = mysql_insert_id();
     
            return true;
        }
     
        public function download_file()
        {
            $this->_make_file_name();
     
            if ( ! $this->_check_size() )
            {
                return false;
            }
     
            if ( ! $this->_download_file() )
            {
                return false;
            }
     
            $this->_add_to_bdd();
     
            return $this->_upload_id;
        }
    }
     
    $upload = new upload();
     
    $upload->file_key      = 'file_key';
    $upload->max_file_size = '50000';
    $upload->move_to       = 'uploads/';
     
    $upload_id = $upload->download_file();
     
    echo $upload_id;
    ?>

  2. #2
    Membre chevronné Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Par défaut
    Salut vtuning.net,

    je suis en peu dans la même situation que toi, jusqu'à maintenant je prorammais en procédural en considérant que l'important était le résultat du traitement. Mais en bossant sur de gros projets je me suis vite rendu compte qu'il fallait changer de méthode pour mieux organiser mes traitements et mes données, je me suis naturellement tourné vers la POO en passant évidemment par une phase de conception ....

    Je ne suis pas le mieux placé pour juger ton script mais ta classe me paraît bonne et dans l'esprit de la POO bien que le traitement que tu y fais ne soit pas compliqué, c'est toujours mieux qu'une suite de fonctions imbriquées .

  3. #3
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut
    $upload->download_file();
    Moi la seule chose qui me chiffonne, c'est employer les mots upload et download sur la même ligne, alors que l'un et l'opposé de l'autre

    J'aurais plutot nommé la méthode save_file, mais ça c'est vraiment du chipotage (mais qui me chiffonne quand même lol)

    Sinon tu as la possibilité d'implémenter les exceptions pour récupérer les cas d'erreur...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Par défaut
    Merci pour vos réponses.

    En ce qui concerne le script, je l'ai écrit juste pour ce topic, ne vous fiez pas à la fonction qu'il doit remplir, je ne suis même pas sur qu'il fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] static c'est différent en php5 ?
    Par berceker united dans le forum Langage
    Réponses: 3
    Dernier message: 24/10/2006, 12h30
  2. Réponses: 4
    Dernier message: 16/06/2006, 11h49
  3. [POO] stdclass c'est quoi au juste ? O_o
    Par Pougnouf dans le forum Langage
    Réponses: 2
    Dernier message: 01/06/2006, 16h12
  4. Réponses: 9
    Dernier message: 16/03/2006, 19h05
  5. GTK 1.0.2 et PHP5 : Est ce possible ?
    Par FFF dans le forum GTK+ avec PHP
    Réponses: 4
    Dernier message: 04/10/2005, 19h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo