導航:首頁 > 編程語言 > phpapp介面框架

phpapp介面框架

發布時間:2022-05-31 22:24:08

1. 使用php開發app的介面,什麼框架比較好

框架使用並不是必要的app通訊 一般是xml json格式的數據可能用到的函數fsockopen curl simplexml json_encode json_decode等等

2. 如何利用Thinkphp框架開發移動端介面詳解

方案一:給原生APP提供api介面

使用TP框架時 放在common文件夾下文件名就叫function.php


<?php
/**
*Createdbyzhangkx
*Email:[email protected]
*Date:2015/8/1
*Time:23:15
*/

/******api開發輔助函數*******/

/**
*@paramnull$msg返回正確的提示信息
*@paramflagsuccessCURD操作成功
*@paramarray$data具體返回信息
*Functiondescript:返回帶參數,標志信息,提示信息的json數組
*
*/
functionreturnApiSuccess($msg=null,$data=array()){
$result=array(
'flag'=>'Success',
'msg'=>$msg,
'data'=>$data
);
printjson_encode($result);
}

/**
*@paramnull$msg返回具體錯誤的提示信息
*@paramflagsuccessCURD操作失敗
*Functiondescript:返回標志信息『Error',和提示信息的json數組
*/
functionreturnApiError($msg=null){
$result=array(
'flag'=>'Error',
'msg'=>$msg,
);
printjson_encode($result);
}

/**
*@paramnull$msg返回具體錯誤的提示信息
*@paramflagsuccessCURD操作失敗
*Functiondescript:返回標志信息『Error',和提示信息,當前系統繁忙,請稍後重試;
*/
functionreturnApiErrorExample(){
$result=array(
'flag'=>'Error',
'msg'=>'當前系統繁忙,請稍後重試!',
);
printjson_encode($result);
}

/**
*@paramnull$data
*@returnarray|mixed|null
*Functiondescript:過濾post提交的參數;
*
*/

functioncheckDataPost($data=null){
if(!empty($data)){
$data=explode(',',$data);
foreach($dataas$k=>$v){
if((!isset($_POST[$k]))||(empty($_POST[$k]))){
if($_POST[$k]!==0&&$_POST[$k]!=='0'){
returnApiError($k.'值為空!');
}
}
}
unset($data);
$data=I('post.');
unset($data['_URL_'],$data['token']);
return$data;
}
}

/**
*@paramnull$data
*@returnarray|mixed|null
*Functiondescript:過濾get提交的參數;
*
*/
functioncheckDataGet($data=null){
if(!empty($data)){
$data=explode(',',$data);
foreach($dataas$k=>$v){
if((!isset($_GET[$k]))||(empty($_GET[$k]))){
if($_GET[$k]!==0&&$_GET[$k]!=='0'){
returnApiError($k.'值為空!');
}
}
}
unset($data);
$data=I('get.');
unset($data['_URL_'],$data['token']);
return$data;
}
}


查詢單個果品詳細信息
/**
*發布模塊
*
*獲取信息單個果品詳細信息
*
*/
(){
//檢查是否通過post方法得到數據
checkdataPost('id');
$where['id']=$_POST['id'];
$field[]='id,fruit_name,high_price,low_price,address,size,weight,fruit_pic,remark';
$releaseInfo=$this->release_obj->findRelease($where,$field);
$releaseInfo['remark']=mb_substr($releaseInfo['remark'],0,49,'utf-8').'...';
//多張圖地址按逗號截取字元串,截取後如果存在空數組則需要過濾掉
$releaseInfo['fruit_pic']=array_filter(explode(',',$releaseInfo['fruit_pic']));
$fruit_pic=$releaseInfo['fruit_pic'];unset($releaseInfo['fruit_pic']);
//為圖片添加存儲路徑
foreach($fruit_picas$k=>$v){
$releaseInfo['fruit_pic'][]='http://'.$_SERVER['HTTP_HOST'].'/Uploads/Release/'.$v;
}
if($releaseInfo){
returnApiSuccess('',$releaseInfo);
}else{
returnApiError('什麼也沒查到(+_+)!');
}
}


findRelease()方法的model
/**
*查詢一條數據
*/
publicfunctionfindRelease($where,$field){
if($where['status']==''||empty($where['status'])){
$where['status']=array('neq','9');
}
$result=$this->where($where)->field($field)->find();
return$result;
}


app端接收到的數據(解碼json之後)
{
"flag":"success",
"message":"",
"responseList":{
"id":"2",
"fruit_name":"蘋果",
"high_price":"8.0",
"low_price":"5.0",
"address":"天津小白樓水果市場",
"size":"2.0",
"weight":"2.0",
"remark":"急需...",
"fruit_pic":[
"http://fruit.txunda.com/Uploads/Release/201508/55599e7514815.png",
"http://fruit.txunda.com/Uploads/Release/201508/554f2dc45b526.jpg"
]
}
}


app端接收到的數據(原生json串)
代碼如下:

{"flag":"success","message":"","responseList":{"id":"2","fruit_name":"u82f9u679c","high_price":"8.0","low_price":"5.0","address":"","size":"2.0","weight":"2.0","remark":"u6025u9700...","fruit_pic":["http://fruit.txunda.com/Uploads/Release/201508/55599e7514815.png","http://fruit.txunda.com/Uploads/Release/201508/554f2dc45b526.jpg"]}}

方案二:另外我們還可以通過ThinkPHP實現移動端訪問自動切換主題模板,這樣也可以做到移動端訪問

ThinkPHP的模板主題機制,如果只是在PC,只要需修改 DEFAULT_THEME (新版模板主題默認是空,表示不啟用模板主題功能)配置項就可以方便的實現多模板主題切換。

但對於移動端與PC端,也許你會設計完全不同的主題風格,且針對不同的來路提供不同的渲染方式,其中一種比較流行的方法是「響應式設計」,但就本人經歷而言,要實現完全的「響應式設計」並不是那麼容易,且解決兼容問題也是個難題,假設是大型站點,比如:淘寶、網路、拍拍這些,響應式設計肯定是滿足不了需求的,而是需要針對手機訪問用戶提供單獨的手機網站。

ThinkPHP 完全能夠實現,而且非常的簡單。與TPM的智能模版切換引擎相同,只要對來路進行判斷處理就行了。

一、將 ismobile() 加入到{項目/Common/common.php}

functionismobile(){
//如果有HTTP_X_WAP_PROFILE則一定是移動設備
if(isset($_SERVER['HTTP_X_WAP_PROFILE']))
returntrue;

//此條摘自TPM智能切換模板引擎,適合TPM開發
if(isset($_SERVER['HTTP_CLIENT'])&&'PhoneClient'==$_SERVER['HTTP_CLIENT'])
returntrue;
//如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息
if(isset($_SERVER['HTTP_VIA']))
//找不到為flase,否則為true
returnstristr($_SERVER['HTTP_VIA'],'wap')?true:false;
//判斷手機發送的客戶端標志,兼容性有待提高
if(isset($_SERVER['HTTP_USER_AGENT'])){
$clientkeywords=array(
'nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile'
);
//從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字
if(preg_match("/(".implode('|',$clientkeywords).")/i",strtolower($_SERVER['HTTP_USER_AGENT']))){
returntrue;
}
}
//協議法,因為有可能不準確,放到最後判斷
if(isset($_SERVER['HTTP_ACCEPT'])){
//如果只支持wml並且不支持html那一定是移動設備
//如果支持wml和html但是wml在html之前則是移動設備
if((strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml')!==false)&&(strpos($_SERVER['HTTP_ACCEPT'],'text/html')===false||(strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml')<strpos($_SERVER['HTTP_ACCEPT'],'text/html')))){
returntrue;
}
}
returnfalse;
}

二、在{項目/Lib/}創建一個 CommonAction.php,假設你的項目已公共控制器,則無需創建,直接加在裡面就行了。

{
Publicfunction_initialize(){
//移動設備瀏覽,則切換模板
if(ismobile()){
//設置默認默認主題為Mobile
C('DEFAULT_THEME','Mobile');
}
//............你的更多代碼.......
}
}

3. 開發app用php什麼框架最好

現在大多數的PHP培訓都是用thinkphp來教,,所以這幾年出來了一大批thinkphp開發的,而且現在小項目的APP,基本都是thinkphp

4. 用php做一個網站或者app,框架真的很重要嗎

其實並沒有重不重要這一說的。主要是看你是想要開發效率還是運行效率。
框架會犧牲你的運行效率,但是會大大提升開發效率。舉個例子。
我現在要寫個一路由 www.xxx.com/api
以laravel為例
Route::get('api',function(){
echo 'hello';
})

這樣我們就完成了一個訪問www.xxx.com/api,輸出hello字元的頁面了。
那麼沒有框架尼?額,我覺得這個頁面應該裝不下代碼了。
這里我並沒有說框架有多好,如今的銀彈法則依然存在,我們無法讓開發效率和運行效率同時提升。
所以必須在開發效率和運行效率選擇。框架因此而生。
至於框架的好與壞完全取決於個人的喜好,比如有些人喜歡thinkphp的自動控制器路由,有人喜歡laravel的手動可控路由,於是就有人開始了……
框架的好和壞畢竟不是那麼容易評定的,畢竟那麼多使用者尼。
所以選擇框架完全看需求,你老闆說讓你1小時不用框架做一個blog,如果不是大觸,我覺得真的會崩潰掉。
如果選擇框架,那估計也是10分鍾的事情。

5. 公司要做個APP, 用HTML5 打包,我是後端PHP ,以前用框架寫商城,恩,做APP,php可以用框架嗎

php框架例如:
Ci、Yii、Thinkphp3.2、laravel、Thinkphp5.0(適合做介面,和3.2不是一個概念)
二次開發開源商城:
ecshop、ShopNC、Ectouch、TPshop

6. 高並發的API介面選用什麼PHP框架合適

Yaf的其實本質上講,是個基礎框架,僅提供了一個簡單粗暴的基礎URI路由功能,完事了。
最關鍵是並發和多線程以及定時器等等,Yaf本身不能實現。
這點小性能沒有必要在乎,c框架有些bug讓你無從下手,phalcon就被坑過
如果想用的6都會去看框架源碼,用c寫的框架看源碼多麼痛苦
我覺得隨著php逐漸的發展,性能逐漸的優化,這種類型框架遲早會被淘汰的

7. php哪個框架適合做api

在所有輕量級框架中,我推薦 CodeIgniter。 美中不足就是,框架入門極其簡單。但是,如果實現 完全的、優雅的 restful,門檻就有點兒高了。CodeIgniter 實現 restful 時,和底層的 HTTP 協議有些脫節,這些可以通過擴展框架來實現,而且有時候需要結合伺服器去配置。

8. 使用php開發app的介面,什麼框架比較好

框架使用並不是必要的
app通訊 一般是xml json格式的數據
可能用到的函數
fsockopen curl simplexml json_encode json_decode等等

9. PHP框架開發的介面怎麼運行

裝nginx mysql 和php環境,然後把代碼文件放到nginx的html文件目錄下,然後配置nginx和php,如果是本地訪問就瀏覽器通過localhost/代碼文件目錄名/訪問,如果是域名訪問就要把域名綁定到伺服器Ip然後nginx中配置域名,然後瀏覽器通過域名訪問

10. 怎麼利用PHP框架語言開發手機app

一般的PHP框架都可以用來做app後台伺服器。因為原理上客戶端從你這邊拿的都是字元串數據,所以就算你不用框架也沒有問題,不過會引發後續的問題。PHP提供API給客戶端就好了,API描述方式有很多種:REST、SOAP等等均可。推薦REST。
PHP可以開發客戶端?
因為PHP是腳本語言,主要用於服務端的開發,是負責完成 B/S架構 或 C/S架構 的S部分,但是PHP可不僅僅只能在互聯網站上發展,一個PHP for Android(PFA)站點表示他們將可以發布編程模型、工具盒文檔讓PHP在Android上實現應用。
怎麼利用PHP框架語言開發手機APP?
第一:和 WEB 開發一樣,首先需要一些相關的參數,這些參數,都會由客戶端傳過來,也許是 GET 也許是 POST,這個需要開發團隊相互之間約定好,或者制定統一規范。
第二:有了參數,根據應用需求,完成數據處理,例如:任務進度更新、APP內購、一局游戲結束數據提交等等
第三:數據邏輯處理完之後,返回客戶端所需要用到的相關數據,例如:任務狀態、內購結果、玩家信息等等
P.S:數據怎麼返給客戶端?直接輸出的形式,如:JSON、XML、TEXT 等等。
第四:客戶端獲取到你返回的數據後,在客戶端本地和用戶進行交互!
php不能編寫 app應用程序,主要用於B/S結構(Browser/Server,瀏覽器/伺服器模式)開發使用。但是php可以作為伺服器與app應用交換數據服務端API.
學習APP現在流行的有三種手機平台,android、IOS,windows。他們都各有各自的編程語言,具體可以在網路搜索下各自平台製作學習。
移動後台都是 PHP、Python,Java都重,更別說C++了。看你用什麼協議了,http ,tcp/ip。nodejs 可以把路由,form表單驗證 寫成c++的模塊, 主要是提供介面給移動端APP調用,可以從成本、伺服器資源的佔用、開發效率、運行效率,後台復雜邏輯處理的能力 等 。目前我就知道的有jsp,asp,php。
利用PHP框架開發手機APP需要考慮兩種可能:
第一:如果需要即時通訊,也就是需要手機客戶端與服務端保持TCP長連接,服務端需要向客戶端推送數據的時候可以隨時通過這個長連接發送數據給客戶端,這樣便能做到客戶端與服務端及時通訊甚至客戶端與客戶端及時通訊。做到這需要PHP能維持很多客戶端連接,並且需要多進程支持,支持自己的通訊協議。這樣的應用傳統的nginx+php-fpm + 傳統的php框架是做不到的。如果是長連接即時通訊類的伺服器框架推薦一看下workerman,它是就是一個php的socket伺服器框架,非常適合做手機後台伺服器框架。
第二:如果不需要即時通訊的話,可以考慮直接走http協議,用nginx+php-fpm搭建一個webserver就好了,php框架可以採用thinkphp、yii等等,客戶端需要與伺服器通訊的時候向服務端get/post一個請求就好。
如果是比較簡單的手機APP,例如新聞客戶端這樣的不會涉及到長連接的服務,那麼可以考慮直接使用http協議。因為該協議幾乎被所有可以上網的設備支持,手機客戶端那邊也有大量相關的庫可以調用,省掉不少麻煩,其實確定了這三個:協議(HTTP)、數據表示方法(JSON)、請求數據的方法(REST)之後,基本上就可以開發一個簡單地服務端介面了(業務邏輯得自己琢磨),再加上手機客戶端那邊配套的設置搭起來,那麼就可以了。

閱讀全文

與phpapp介面框架相關的資料

熱點內容
什麼app進貨牛排比較好 瀏覽:107
為什麼鴻蒙用安卓app 瀏覽:82
手相面相pdf 瀏覽:374
軍犬不聽命令追出大門 瀏覽:913
程序員必背97件事 瀏覽:939
雲伺服器python怎麼讀取 瀏覽:29
哪裡買雲伺服器劃算 瀏覽:236
四川日報pdf 瀏覽:965
按摩解壓助眠小姐姐 瀏覽:411
風冷壓縮機水冷卻器 瀏覽:879
伺服器播放器如何打開方式 瀏覽:790
phppython快 瀏覽:365
pdf轉換word免費版 瀏覽:37
二手的有什麼APP 瀏覽:329
伺服器的應用鏡像是什麼 瀏覽:153
命令行的使用方法 瀏覽:514
怎麼讓圖片左右壓縮 瀏覽:656
白鹿原pdf 瀏覽:433
人民幣怎麼演算法 瀏覽:757
什麼app可以聽懂刺蝟說話 瀏覽:600