Maison >cadre php >PensezPHP >La différence entre thinkphp5 et 3.2

La différence entre thinkphp5 et 3.2

藏色散人
藏色散人original
2019-06-29 11:02:403350parcourir

La version

<img src="https://img.php.cn/upload/article/000/000/020/5d16d4ae8cd5f951.jpg" alt="La différence entre thinkphp5 et 3.2" >

thinkphp5.0 est assez différente de la version précédente. Cet article donne quelques-unes des principales différences de 3.2 pour les utilisateurs familiers avec la version 5.0.

URL et itinéraire

5.0 L'accès aux URL ne prend plus en charge le mode URL normal, et le routage ne prend pas en charge les définitions d'itinéraires régulières. Au lieu de cela, ils sont tous remplacés par des itinéraires réguliers avec variable. règles (définition régulière) :

Les principales améliorations sont les suivantes ;

Ajouter des règles de variable de routage ;

Ajouter la prise en charge des variables de combinaison ;
Ajouter le routage des ressources ;
Ajouter un regroupement de routes ;
Ajouter la prise en charge de la définition de fermeture
Ajouter la définition de la route MISS ;
Prise en charge de l'anti-analyse des règles de routage d'URL ;

Objet de requête et objet de réponse

5.0Ajout de l'objet de requête Request et de l'objet de réponse Response Request traite uniformément les requêtes et obtient les informations sur la requête. L'objet Response est responsable de la sortie des réponses du client ou du navigateur.

Modules et contrôleurs

L'espace de noms du contrôleur a été ajusté et il n'est pas nécessaire d'hériter d'une classe de contrôleur.

  • L'espace de noms de l'application est unifié en app (définissable) au lieu du nom du module
  • Le nom de classe du contrôleur n'a pas le suffixe Controller par défaut et peut être configuré pour s'allumeruse_controller_suffixLe paramètre active le suffixe de classe du contrôleur ;
  • La méthode de fonctionnement du contrôleur utilise la méthode return pour renvoyer les données au lieu de la sortie directe
  • Abolir le pré-original ; - et méthodes post-opération ;
  • Ajout de beforeActionList pré-opération de définition d'attribut ;
  • prend en charge la définition et l'accès du contrôleur à n'importe quel niveau
  • L'accès URL prend en charge le positionnement automatique de ; contrôleurs ;

base de données

La fonction de requête de base de données de 5.0 a été améliorée. La requête en chaîne qui devait à l'origine être utilisée via le modèle peut être appelée directement via la classe Db. . L'appel de fonction M d'origine peut être modifié pour utiliser la fonction db, par exemple :

Version 3.2

M(&#39;User&#39;)->where([&#39;name&#39;=>&#39;thinkphp&#39;])->find();

Version 5.0

db(&#39;User&#39;)->where(&#39;name&#39;,&#39;thinkphp&#39;)->find();

Les principales améliorations sont. comme suit :

  • prend en charge les opérations de requête en chaîne ;
  • requête de données prend en charge le renvoi d'objets, de tableaux et de PDOStatement objets
  • les requêtes d'ensemble de données prennent en charge le renvoi de tableaux et objets ; Collection
  • ajoute un constructeur de requête et modifie la syntaxe de la requête ;
  • prend en charge la requête de fermeture ;
  • prend en charge la requête de bloc ;
  • ajoute des événements d'écoute SQL ;
  • Modèle
  • Le changement de modèle de

est fondamentalement un concept entièrement orienté objet, y compris le modèle d'association. Le suffixe de la classe modèle ne porte plus

, et se distingue directement par l'espace de noms. La fonction

d'origine L'appel est remplacé par la fonction 5.0, et la classe modèle correspondante doit être. créé, par exemple : ModelDVersion 3.2 model

D(&#39;User&#39;)->where([&#39;name&#39;=>&#39;thinkphp&#39;])->find();

Version 5.0

model(&#39;User&#39;)->where(&#39;name&#39;,&#39;thinkphp&#39;)->find();

Les principales améliorations incluent :

Reconstruire le modèle d'association

    Prend en charge le modèle d'agrégation ;
  • Abolit le modèle de vue (changement de la méthode de requête de vue de la base de données)
  • L'extension du modèle est adoptée
  • Mécanisme ; 🎜> Ajoutez des getters et des modificateurs ;
  • Ajoutez l'écriture automatique des horodatages ; Trait
  • Ajoutez la conversion des champs de type
  • Prise en charge de l'accès aux tableaux ;
  • Prise en charge de la sérialisation JSON ;
  • Vérification automatique et complétion automatique
  • La vérification automatique et la complétion automatique des données dans la version 5.0 sont assez différentes de celles de la version 3.2. Les données de la vérification 5.0 utilisent les définitions du validateur et effectuent des opérations unifiées. vérification via la classe
  • . La complétion automatique est réalisée en définissant des modificateurs dans le modèle.

Exceptions

thinkValidate Tolérance zéro pour les erreurs, par défaut une exception sera levée pour n'importe quel niveau d'erreur (mais le niveau d'erreur peut être défini dans le fichier public de l'application), et repensée La page d'exception affiche des informations détaillées sur les erreurs pour un débogage facile. La page

Débogage et journalisation

5.0 est

améliorée pour prendre en charge l'affichage par la console du navigateur des informations de trace.

le pilote de journal ajoute la méthode 5.0 et utilise Trace pour prendre en charge le débogage à distance. La version

Constant5.0SocketSocketLog supprime la plupart des définitions de constantes d'origine, ne conservant que les définitions de constante de chemin du framework. Les constantes restantes peuvent utiliser la classe

ou la classe

associée. attributs ou méthodes pour compléter, ou redéfinir vous-même les constantes requises.

Les constantes obsolètes incluent : 5.0

REQUEST_METHOD IS_GET IS_POST IS_PUT IS_DELETE IS_AJAX __EXT__ COMMON_MODULE MODULE_NAME CONTROLLER_NAME ACTION_NAME APP_NAMESPACE APP_DEBUG MODULE_PATH
AppFonctionRequest

Le framework principal ne repose sur aucune fonction personnalisée, mais encapsule toujours certaines fonctions courantes dans des fonctions d'assistance, vous Vous pouvez redéfinir ou ajouter des fonctions d'assistance à volonté.

Cet article provient de la colonne d'articles techniques du framework ThinkPHP :

http://www.php.cn/phpkj/thinkphp/

5.0

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn