Maison > Article > développement back-end > Présentez brièvement les différences spécifiques entre ThinkPHP5.0 et ThinkPHP3.2
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 ;
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ôleursL'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.2M('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
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 desinformations sur l'erreur détaillées pour un débogage facile.
Débogage et journalisationL'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!