Maison > développement back-end > tutoriel php > Présentez brièvement les différences spécifiques entre ThinkPHP5.0 et ThinkPHP3.2

Présentez brièvement les différences spécifiques entre ThinkPHP5.0 et ThinkPHP3.2

黄舟
Libérer: 2023-03-10 18:36:02
original
1515 Les gens l'ont consulté

L'éditeur vous proposera une brève discussion sur la différence entre la version ThinkPHP5.0 et la version ThinkPHP3.2. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.

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

URL et routage

L'accès URL 5.0 ne prend plus en charge le mode URL ordinaire, et le routage ne prend pas en charge les définitions d'itinéraire régulières, mais tous les changements Comment pour faire correspondre les règles variables (définitions régulières) pour le routage des règles :

Les principales améliorations sont les suivantes :

Ajouter des règles variables de routage ; >Ajouter la prise en charge des variables de combinaison ;
Ajouter le routage des ressources ;
Ajouter le regroupement de routes
Ajouter la prise en charge de la définition de fermeture
Ajouter la définition de routage MISS ;

Objet de requête et objet de réponse

5.0 a ajouté l'objet de requête Request et l'objet de réponse Response Request gère les requêtes et obtient les informations de demande de manière unifiée. L'objet Response est responsable de la sortie du client. Le client ou le navigateur répond.

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 tant qu'application (définissable) au lieu du nom du module ;

Le nom de classe du contrôleur n'a pas le suffixe Controller par défaut. Vous pouvez configurer le paramètre use_controller_suffix pour activer la classe du contrôleur. suffixe;

Contrôle La méthode d'opération du contrôleur utilise la méthode de retour pour renvoyer des données au lieu d'une sortie directe ;

Supprimez les méthodes pré- et post-opération d'origine
Ajoutez l'attribut beforeActionList pour définir les pré-opérations ; 🎜> Prend en charge n'importe quel niveau de
définition du contrôleur
et d'accès ;
L'accès URL prend en charge le positionnement automatique du contrôleur

Base de données

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

Version 3.2

M('Utilisateur')->where(['name'=>'thinkphp '])->find();

Version 5.0

db('Utilisateur')->où( 'name','thinkphp')->find();

Les principales améliorations sont les suivantes :

prend en charge les opérations de requête en chaîne ; la requête de données prend en charge le renvoi d'objets, de tableaux et d'objets PDOStatement ; les requêtes d'ensemble de données prennent en charge le renvoi de tableaux et d'objets Collection ; Ajouter un constructeur de requête et modifier la syntaxe de la requête ;

Prend en charge la requête de fermeture ; requête de bloc ;

Requête de vue de support ;
Ajouter un événement d'écoute SQL



Modèle

Le changement de modèle dans la version 5.0 est le Fondamentalement, le modèle est un concept entièrement orienté objet, y compris les modèles associés. Le suffixe de la classe model ne porte plus Model et est directement représenté par la distinction Namespace, l'appel de fonction D d'origine est remplacé par la fonction model, et la classe de modèle correspondante doit être créée, par exemple : version 3.2

D('User')->where([' name'=>'thinkphp'])->find();

Version 5.0


model('Utilisateur ')->where('name','thinkphp')->find();Les principales améliorations incluent :

Reconstruire le modèle d'association ; Supporter le modèle d'agrégation ; Abolir le modèle de vue (changement vers la méthode de requête de vue de la base de données L'extension du modèle adopte le mécanisme Trait ;Ajout de getters) ; et modificateurs;

Ajout de l'écriture automatique de l'horodatage;

Ajout de 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 des données et la complétion automatique de la version 5.0 sont assez différentes de la version 3.2. La vérification des données de la version 5.0 utilise la définition de l'appareil et la vérification unifiée via la version 3.2. classe thinkValidate. La complétion automatique est réalisée en définissant des modificateurs dans le modèle.

Exceptions

5.0 a une tolérance zéro pour les erreurs et lèvera des exceptions pour tout niveau d'erreur par défaut (mais peut être utilisé dans l'application publique fichiers Définissez le niveau d'erreur dans) et repensé la page d'exception pour afficher des

informations sur l'erreur détaillées pour un débogage facile.

Débogage et journalisation

L'amélioration de Page Trace dans la version 5.0 prend en charge la console du navigateur pour afficher les informations de trace.

Le pilote de journalisation de la version 5.0 ajoute le mode Socket et utilise SocketLog pour prendre en charge le débogage à distance.

Constantes

La version 5.0 a abandonné la plupart des définitions de constantes d'origine, ne conservant que les définitions de constantes de chemin du framework et le reste des constantes peut être utilisé Utilisez les attributs ou méthodes pertinents de la classe App ou de la classe Request pour compléter ou redéfinir vous-même les constantes requises.

Les constantes obsolètes incluent :

REQUEST_METHOD IS_GET IS_POST IS_PUT IS_DELETE IS_AJAX EXT COMMON_MODULE MODULE_NAME CONTROLLER_NAME ACTION_NAME APP_NAMESPACE APP_DEBU G

Fonction

Le framework principal de la version 5.0 ne dépend d'aucune fonction personnalisée, mais il encapsule toujours certaines fonctions courantes dans des fonctions d'assistance, et vous pouvez les redéfinir à volonté. Définir ou ajouter des fonctions d'assistance.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal