web-dev-qa-db-fra.com

explication simple PHP OOP vs Procedural?

Je voudrais apprendre PHP et je voudrais avoir une idée de OOP et de la procédure. J'ai lu d'autres blogs et tutoriels sur OOP vs procédural mais je n'arrive toujours pas à comprendre l'approche.

POO vs procédural

  1. Que devrais-je apprendre?
  2. Quelle est la différence de code? quels sont les effets?
  3. Comment un PHP framework aide-t-il à OOP aproach?? (J'aimerais apprendre CodeIgniter)
  4. La procédure nécessite-t-elle un cadre?

Je veux vraiment connaître la différence de code entre les deux, ma compréhension de OOP est que vous créez une classe similaire et que cela peut être un accès. (Je ne sais pas si c'est correct).

Merci!

102
Pennf0lio

Contexte: Vous avez demandé une "explication simple" suggérant:

  1. Vous voulez un aperçu clair sans jargon
  2. Vous voulez quelque chose qui vous aidera à apprendre depuis le début
  3. Vous avez découvert que il n'y a jamais deux personnes qui répondent à la question de la même manière , et c'est déroutant. C'est la raison pour laquelle vous êtes ici pour demander une explication simple. Oui?

Réponse courte sans jargon:

  1. De nombreuses explications introductives se glissent rapidement dans des exemples de "POO real world". Ceux-ci peuvent avoir tendance à avoir plus de confusion que l'aide, alors n'hésitez pas à l'ignorer pour le moment.
  2. Vous pouvez considérer le code source simplement comme des "morceaux" de fonctionnalités, qui sont simplement sauvegardés dans des fichiers individuels.
  3. Il y a différentes façons d'organiser ces "morceaux"; en fonction de facteurs tels que les conventions du langage de programmation, les antécédents et la formation du ou des développeurs, ou simplement de vieilles préférences personnelles.
  4. La programmation OOP et procédurale ne sont que deux méthodologies principales généralement reconnues pour organiser et organiser ces "morceaux" de code.

Réponse longue sans jargon:

Procedural vs OOP n’est qu’un aspect d’un problème fondamental de la programmation informatique: comment rendre votre code facile à comprendre et un morceau de gâteau à maintenir professionnellement . Vous pouvez réellement écrire du code "procédural" qui suit certains des principes de la programmation orientée objet, de sorte que les deux ne sont pas nécessairement les contraires.

Votre compréhension augmentera vraiment une fois que vous aurez appris autres langages de programmation orientés objet , parmi lesquels, PHP est un "nouvel enfant sur le bloc".

Voici un bref aperçu de ce que vous allez apprendre en construisant de l'expérience:

  • Vous pouvez écrire PHP le code source qui fait des tâches utiles
  • Vous pouvez organiser des tâches utiles en "morceaux" de code
  • Vous pouvez penser à des "morceaux" de code indépendamment des fichiers individuels où ils sont enregistrés
  • Parfois, ces "morceaux" de code vont se comporter différemment en fonction de paramètres que vous transmettez
  • Les morceaux de code qui acceptent les paramètres sont appelés "Fonctions"
  • Les fonctions peuvent être "chunked" ensemble, et il y a différentes façons de le faire:
    • Par exemple: vous pourriez n'avoir qu'un seul gros PHP fichier) avec toutes les fonctions que vous avez écrites au cours de votre vie. , classés par ordre alphabétique par nom de fonction
    • Par exemple: vous pouvez avoir plusieurs fichiers PHP avec des fonctions regroupées par sujet [par exemple, fonctions pour manipuler des chaînes de base, fonctions de traitement de tableaux, fonctions d’entrée/sortie de fichier, etc.]
  • La POO est une manière spéciale de "diviser" les fonctions ensemble dans une "classe"
  • Une classe est juste un autre niveau de "chunking" le code ensemble afin que vous puissiez le traiter comme un tout unifié
  • Une classe peut être considérée comme un "regroupement" de méthodes et de propriétés

    • méthodes sont simplement des fonctions qui sont logiquement liées les unes aux autres d'une manière significative. Les mots "méthode" et "fonction" sont fondamentalement deux termes différents pour la même chose.
    • les propriétés sont simplement des valeurs de données liées à la classe. Ce sont des valeurs intentionnellement non isolées par une fonction individuelle, car plus d'une des fonctions de la classe devraient y avoir accès.
      • Par exemple : si votre classe a un tas de méthodes pour faire de l'astronomie, ses propriétés pourraient être les valeurs de certains nombres célèbres dont toutes les méthodes d'astronomie ont besoin connaître (comme Pi, la vitesse de la lumière, la distance entre des planètes spécifiques, etc.).
    • C’est où la plupart des explications OOP sont déroutantes car elles se ramifient en " exemples du monde réel "qui peut rapidement sortir du sujet . Souvent," monde réel "est un euphémisme pour les perspectives ontologiques d'un individu particulier. utile seulement une fois que vous avez déjà compris le concept suffisamment bien pour l'enseigner à quelqu'un d'autre.
    • Pour comprendre OOP sans confusion, vous pouvez ignorer les exemples du "monde réel" pour le moment et vous concentrer sur le code. Une classe est simplement un moyen de fonctions de stockage (méthodes aka) et propriétés (données aka) sous la forme PHP code dans un ou plusieurs "morceaux" connexes où chaque "morceau" traite d'un sujet ou d'une fonctionnalité spécifique. C'est tout ce que vous devez savoir afin de commencer.
  • Une classe est utile car elle vous permet d’organiser votre code à à un niveau très élevé de manière à ce qu’il soit facile à comprendre, à utiliser et à utiliser. maintenir.

  • Quand une personne a écrit beaucoup de fonctions et les a organisées en plusieurs classes et les a forcées à travailler ensemble de façon sympa, elles regroupent le tout et appellent cela un "Framework ".
  • Un Framework est juste le prochain niveau le plus élevé de "chunking" (y compris le style de codage et les conventions) sur lequel une ou plusieurs personnes s'accordent parce qu'elles aiment le chemin le code est organisé et il convient à leur style de travail, leurs préférences, leurs valeurs, leurs projets de domination mondiale, etc.

Voir également

269
dreftymac

La programmation orientée objet n'est qu'un modèle de conception. Si vous débutez, apprenez les bases en vous concentrant sur l'approche procédurale. Surtout, familiarisez-vous avec les principes de base tels que les boucles, les conditions et l'appel d'autres procédures.

Pendant que vous créez votre code de procédure, prenez l'habitude en ajoutant des méthodes associées dans un seul fichier source. Apprenez à diviser vos procédures en unités logiques et vous commencez déjà à vous orienter vers les objets. Fondamentalement, un objet n'est rien d'autre qu'un ensemble de méthodes liées les unes aux autres simplement parce qu'elles fonctionnent sur le même ensemble de données. (Ne parle pas de bases de données ici, mais de données d'application!)

OO est principalement utilisé pour rendre votre code plus logique en divisant le tout en blocs simples. En combinant les bons blocs, vous obtenez une application complète. OO) n’est pas une solution miracle ni un marteau en or qui résoudra tous vos problèmes. Mais ce qu’il permet de faire, c'est de rendre votre code plus facile à comprendre.

Là encore, certaines personnes parviennent encore à gâcher complètement les objets, en les transformant simplement en énormes super-objets avec des centaines de méthodes. De tels objets ne diffèrent pas beaucoup d'une approche procédurale classique, simplement en raison de l'énorme quantité de méthodes combinées sans aucune logique réelle. C'est une erreur facile à commettre quand les gens commencent à faire OOP trop vite.

25
Wim ten Brink

Vous devriez apprendre les deux. Les objets ne sont que l’une des nombreuses abstractions possibles, et l’abstraction est ce en quoi consiste la programmation. Cela dit, commencez par les éléments de procédure, puis ajoutez des objets plus tard, car PHP sont de toute façon procéduraux.

En ce qui concerne les cadres; Tout d'abord apprendre les bases de la langue, écrire des programmes expérimentaux jetables et autres. Plus tard, vous pourrez vous familiariser avec les cadres et considérer vous-même si vous trouvez-en certains utiles dans certains contextes. Ils ne sont certainement pas obligatoires.

6
Joonas Pulakka

Les procédures php et oop utilisent le même code php. La seule différence est que, avec la procédure, vous vous concentrez sur une tâche et le tour est joué. Dans oop, vous organisez votre code en utilisant des modèles ou des morceaux qui peuvent être réutilisés dans de nombreux domaines différents du code.

La réponse est simple: vous devez connaître et comprendre php. Vous pouvez l'apprendre sur php.net. Une fois que vous l'avez compris, vous pouvez commencer à organiser votre code en mandrins.

Le code procédural utilise des fonctions, des variables.

Une fois que vous maîtrisez les choses, vous pouvez commencer à organiser les fonctions et les variables en classes. Nous commençons à appeler les fonctions en tant que méthodes et les variables en tant que propriétés.

Bonne chance.

6
Edward Manda

Pour ajouter les bonnes réponses ci-dessus. Vous devriez voir OOP comme une progression naturelle de votre style de codage. Lorsque vous commencerez à écrire un petit programme, il vous suffira de rassembler quelques lignes de code php, puis de les regrouper en fonctions et en plus vous écrivez de fonctions, vous ressentirez peut-être le besoin de mieux les organiser en classes. OOP laissez simplement votre structure structurer mieux vos codes, permettant ainsi une meilleure maintenance du code.

5
Rawdreeg