ThinkPHP內(nèi)置jsonRPC的缺陷分析,thinkphp內(nèi)置jsonrpc_PHP教程
Jul 13, 2016 am 10:11 AMThinkPHP內(nèi)置jsonRPC的缺陷分析,thinkphp內(nèi)置jsonrpc
本文較為詳細(xì)的分析了ThinkPHP內(nèi)置jsonRPC的缺陷。分享給大家供大家參考。具體分析如下:
最近在開發(fā)ios應(yīng)用,要開發(fā)ios應(yīng)用,當(dāng)然要用到服務(wù)器,用服務(wù)器必然要選用遠(yuǎn)程調(diào)用協(xié)議,因?yàn)橹氨救艘恢倍际怯胮hp開發(fā)的,所以選用thinkphp當(dāng)框架的apache服務(wù)器.
至于遠(yuǎn)程調(diào)用協(xié)議,經(jīng)過思考,還是選用jsonRPC吧,比較簡單方便,翻了一下thinkphp(是3.2版本)的手冊,發(fā)現(xiàn)thinkphp還是支持jsonRPC的,這不錯(cuò)啊,不用自己去寫了(當(dāng)然自己寫寫也不是什么麻煩的事).
簡單地,用thinkphp做客戶端,去調(diào)用thinkphp服務(wù)器端的接口,好用.
接下來是android端,隨便去網(wǎng)上找了個(gè)包(android-json-rpc.jar),調(diào)用一下接口,誒!也好用,進(jìn)展很順利.
接下來就換ios了,取github上找了個(gè)objc-JSONRpc的項(xiàng)目,拿來調(diào)用接口,不好用,很正常,可能是我找的項(xiàng)目有問題,于是我又換了一個(gè)Demiurgic-JSON-RPC,還是不好用,我開始對(duì)程序產(chǎn)生了懷疑,因?yàn)閣eb端和android端調(diào)用都沒問題,所以我把焦點(diǎn)定位到了我的ios程序,我的天,花了我半天時(shí)間,我硬是沒找出問題,我還用ios端調(diào)用了其他人提供的jsp客戶端的接口,也沒問題啊.
后來,我開始看thinkphp內(nèi)置的jsonRPC模塊,經(jīng)過不停的調(diào)試(各種調(diào)試,又刪代碼,又Dbug),發(fā)現(xiàn)了這樣一行代碼:
注意到這個(gè)函數(shù)沒,call_user_func_array,array,點(diǎn)進(jìn)去看參數(shù)說明,果然,$request['params']必須是數(shù)組類型,不是數(shù)組死活不認(rèn),更可恨的是,thinkphp沒有對(duì)這個(gè)參數(shù)進(jìn)行嚴(yán)格的校驗(yàn),于是都不知道怎么錯(cuò)的.
知道了這個(gè)原因就好辦了,前面加上校驗(yàn).
????? $request['params'] = array_values($request['params']);
} else {
????? $request['params'] = array($request['params']);
}
這樣就完美解決了問題.
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

ThinkPHP dispose de plusieurs versions con?ues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

Les méthodes d'optimisation des performances pour la conversion des tableaux PHP en JSON incluent?: l'utilisation d'extensions JSON et de la fonction json_encode()?; l'ajout de l'option JSON_UNESCAPED_UNICODE pour éviter l'échappement de caractères?; l'utilisation de tampons pour améliorer les performances d'encodage de boucle et l'utilisation d'un tiers?; Bibliothèque d'encodage JSON.

Les données JSON peuvent être enregistrées dans une base de données MySQL à l'aide de la bibliothèque gjson ou de la fonction json.Unmarshal. La bibliothèque gjson fournit des méthodes pratiques pour analyser les champs JSON, et la fonction json.Unmarshal nécessite un pointeur de type cible pour désorganiser les données JSON. Les deux méthodes nécessitent la préparation d'instructions SQL et l'exécution d'opérations d'insertion pour conserver les données dans la base de données.

Les annotations dans la bibliothèque Jackson contr?lent la sérialisation et la désérialisation JSON : Sérialisation : @JsonIgnore : Ignorer la propriété @JsonProperty : Spécifiez le nom @JsonGetter : Utilisez la méthode get @JsonSetter : Utilisez la méthode set Désérialisation : @JsonIgnoreProperties : Ignorez la propriété @ JsonProperty : Spécifiez le nom @JsonCreator?: utilisez le constructeur @JsonDeserialize?: logique personnalisée

PHP fournit les fonctions suivantes pour traiter les données JSON : Analyser les données JSON : utilisez json_decode() pour convertir une cha?ne JSON en un tableau PHP. Créer des données JSON?: utilisez json_encode() pour convertir un tableau ou un objet PHP en cha?ne JSON. Obtenez des valeurs spécifiques des données JSON?: utilisez les fonctions de tableau PHP pour accéder à des valeurs spécifiques, telles que des paires clé-valeur ou des éléments de tableau.

Laravel et ThinkPHP sont tous deux des cadres PHP populaires et ont leurs propres avantages et inconvénients dans le développement. Cet article comparera les deux en profondeur, mettant en évidence leur architecture, leurs fonctionnalités et leurs différences de performances pour aider les développeurs à faire des choix éclairés en fonction de leurs besoins spécifiques de projet.

Les tableaux PHP peuvent être convertis en cha?nes JSON via la fonction json_encode() (par exemple : $json=json_encode($array);), et inversement, la fonction json_decode() peut être utilisée pour convertir du JSON en tableaux ($array= json_decode($json);) . D'autres conseils incluent d'éviter les conversions profondes, de spécifier des options personnalisées et d'utiliser des bibliothèques tierces.

Utilisation du framework ThinkPhp6 combiné avec le client Elasticsearch-PHP pour faire fonctionner Elasticsearch ...
