Maison >développement back-end >tutoriel php >À propos de la différence entre la version ThinkPHP5.0 et la version ThinkPHP3.2
Cet article présente principalement la différence entre la version ThinkPHP 5.0 et la version ThinkPHP 3.2. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Version 5.0 et versions antérieures. sont assez différents. Cet article présente certaines des principales différences de la version 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 ; Supprimer les méthodes pré- et post-opération d'origine
Ajouter l'attribut beforeActionList pour définir les pré-opérations ; 🎜> Prise en charge de la définition et de l'accès du contrôleur à n'importe quel niveau ;
L'accès URL prend en charge le positionnement automatique du contrôleur
Base de données
La base de données ; La fonction de requête de 5.0 a été améliorée et la chaîne qui devait initialement être utilisée via le modèle a été améliorée. La requête 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')->où(['name'=>'thinkphp']) ->find();
Version 5.0
db('Utilisateur')->where('nom' ,'thinkphp')->find();
Les principales améliorations sont les suivantes :
Prise en charge des opérations de requêtes chaînées 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 de collection ; Ajouter un constructeur de requête, les modifications de syntaxe de requête ;
prend en charge la requête de fermeture ; 🎜> prend en charge la requête d'affichage ; ajoute des événements d'écoute SQL
Modèle
version 3.2
D('User') ->where(['name'= >'thinkphp'])->find();Version 5.0
Les principales améliorations incluent :
Reconstruire l'association model;Supporter le modèle d'agrégation; Abolir le modèle de vue (changer la méthode de requête de vue de la base de données); L'extension du modèle adopte le mécanisme Trait; Ajouter l'écriture automatique des horodatages ; Ajouter la conversion des champs de type ;
Prise en charge de l'accès au tableau Prise en charge de la sérialisation JSON ;
Vérification automatique et achèvement automatique
La vérification automatique des données et l'achèvement automatique de la version 5.0 sont assez différents de la version 3.2. La vérification des données de la version 5.0 utilise la définition du validateur et la vérification unifiée via la 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 la page d'exception a été repensée pour afficher des informations détaillées sur les erreurs 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_DEBUG MODULE _PATH
Fonction
Le framework de base de la version 5.0 ne repose sur aucune fonction personnalisée, mais il encapsule toujours certaines fonctions courantes dans des fonctions d'assistance. Vous pouvez redéfinir ou ajouter des fonctions d'assistance à volonté. .
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
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!