99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

小技巧和淺談API適用范圍以及入門篇總結

2018-11-21 21:28 更新

PHALAPI-入門篇6(小技巧和淺談API適用范圍以及入門篇總結)

前言

先在這里感謝phalapi框架創(chuàng)始人@dogstar,為我們提供了這樣一個優(yōu)秀的開源框架.

本篇文章的目的在于把框架自帶的一些好用,封裝好的一些方便開發(fā)的類庫簡單的說一下,靈活使用可以提高開發(fā)效率,再就是因為在交流過程中有很多童鞋提出了一些關于什么樣的項目怎么用API和web端怎么使用API這類的問題,我就我的理解把我的一些想法和大家交流一下,最后是對于入門篇做一下總結,以及對后面的一些教程做一下說明.

附上:

喵了個咪的博客:w-blog.cn

官網(wǎng)地址:http://www.phalapi.net/

開源中國Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release

1. 小技巧

在這里介紹的是一些比較基礎是比如curl,log,和tools著一些基礎的,關于cache,Cookie等一些會在后面進階篇慢慢道來

1.1 curl請求類

其實在框架內部已經(jīng)提供了Curl的請求類位置是在/Phalpi/Phalapi/CUrl.php

// 構造方法接受參數(shù)為失敗重試次數(shù)默認是1可以自己指定
$curl = new PhalApi_CUrl(2);

// 進行GET 返回請求結果
$rs = $curl->get('http://phalapi.oschina.mopaas.com/Public/demo/?service=Default.Index');

// 進行POST 返回請求結果
$data = array('username' => 'dogstar');
$rs = $curl->post('http://phalapi.oschina.mopaas.com/Public/demo/?service=Default.Index', $data);

1.2 log日志類

在大部分時候都沒辦法實時知道報錯信息,但是如果發(fā)生了錯誤我們需要記錄起來,來提供給自己日后分析,或者是在運營環(huán)境中有個問題但是自己不是很確定可以通過debug日志的形式寫入文件進行分析,框架有提供這方面的功能,在接口init.php中已經(jīng)有下面這段話了

//日志紀錄
DI()->logger = new PhalApi_Logger_File(API_ROOT . '/Runtime', 
    PhalApi_Logger::LOG_LEVEL_DEBUG | PhalApi_Logger::LOG_LEVEL_INFO | PhalApi_Logger::LOG_LEVEL_ERROR);

這樣就已經(jīng)注冊了日志類API_ROOT . '/Runtime'這個是表示日志存放的路徑(一定要保證有寫入權限才能正常使用)使用如下

//error 系統(tǒng)異常類
DI()->logger->error('fail to insert DB', $data);
//對應的LOG
2015-02-07 20:37:55|ERROR|fail to insert DB|{"name":"dogstar","password":"123456"}

//info 業(yè)務紀錄類
DI()->logger->info('add user exp', array('name' => 'dogstar', 'before' => 10, 'addExp' => 2, 'after' => 12, 'reason' => 'help one more phper'));
//對應的LOG
2015-02-07 20:48:51|INFO|add user exp|{"name":"dogstar","before":10,"addExp":2,"after":12,"reason":"help one more phper"}

//debug 開發(fā)調試類
DI()->logger->debug('just for test', array('name' => 'dogstar', 'password' => '******'));
//對應的LOG
2015-02-07 20:37:55|DUBUG|just for test|{"name":"dogstar","password":"******"}

文件存放的文件路徑一般為Runtime/log/201502(年月)/20150207(年月日).log

1.3 tool工具類

工具類的路徑在/Phalpai/Phalapi/Tool.php中目前里面提供了兩個工具(IP地址獲取,隨機字符串生成)使用方法入下,自己會經(jīng)常使用的工具都可以放進去

//實例化工具類
$PhalApi_Tool = new PhalApi_Tool();

//生成一個"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"組成的一個隨機字符串根據(jù)輸入的值決定長度
$PhalApi_Tool->createRandStr(5);

//獲取請求的IP這里的IP是外網(wǎng)IP
$PhalApi_Tool->getClientIp();

2. 淺談API適用范圍

其實想談談這個的原因是應為有人有疑問,Api適用范圍是不是只局限于APP,還有就是如果是用 phalapi 提供一個后臺管理的web項目的話要怎么去做,在這里根據(jù)一些筆者本人的一些膚淺的了解談一談我的認為,分一下幾個場景進行說明.

2.1 移動端

我認為排在第一位的應該是移動應用比如Android和IOS上面的應用通訊肯定是需要使用到API通訊的(基本上是首選,很少有看到其他非接口形式的).

2.1 提供服務(主要是平臺類)

提供服務(主要是平臺類)比如銀行來說,提供的支付接口,付款接口等,還有就是一些外賣平臺,團購平臺都有自己的一套接入API接受數(shù)據(jù)(這一些可能會偏向高端一點)

2.1 長周期web項目

長周期web項目,為什么要叫做長周期web項目,因為短期的項目比如5天的一個抽獎活動我是覺得實在沒有必要去做成接口通訊的形式,這種短周期的項目直接拿著靜態(tài)頁面加上MVC框架去實現(xiàn)來的是劃算一點(因為API和web通訊成本還是比較大的),對于長周期的項目來說使用API是有好處的如下:

1.前后端分離,后端提供API服務,前端進行請求展示,讓前端專注做前端的事情,讓后端專注做后端的事情.

2.升級迭代可以有效的減小維護成本,當?shù)壍臅r候,如果是后端沒有變動,只是前端進行變動了可以很好的分開工作量.(前端一樣)

3.分離之后規(guī)范更加清晰,API有API的一套完整的開發(fā)規(guī)范,前端也一樣,就不會和MVC框架一樣代碼堆積在一個地方

4.高并發(fā)web項目優(yōu)化目標準確,優(yōu)化空間大,對于API來說就是可以單點優(yōu)化.

當前也有他的缺點,前期工作量會有所增加,溝通成本增加,但是我認為他帶來的好處是持續(xù)的

還有一個重點就是怎么實現(xiàn)通訊,我現(xiàn)在在項目中前端是使用js進行請求通訊的,這是比較常用的,還有一種設想PHP提供接口,然后node.js或者其他語言進行請求然后渲染出html代碼給到前端進行展示,這樣可以解決安全問題,而且node.js不需要進行數(shù)據(jù)操作性能也是非常好的.

3. 入門篇總結

經(jīng)過了一個月交流入門篇也就在這里結束了,在入門篇里面吧一些關于Phalapi的基本使用方式都過了一遍,我也希望大家能動手都操作一遍,當如入門篇講的是比較基礎的東西,經(jīng)驗老到的童鞋過一過就行了,在后面的進階篇里面跟過的會講到概念和思想性的東西,比如DI思想單例模式,三層的好處等,而在實戰(zhàn)篇中會著重講解如何運用到實際開發(fā)中,怎么多項目共用框架等一些比較實際的一些教程,也希望大家能夠進一步關注,再一次感謝喜歡Phalapi框架的你們,你們的關注就是我的動力!

注:筆者能力有限有說的不對的地方希望大家能夠指出,也希望多多交流!

官網(wǎng)QQ交流群:421032344 歡迎大家的加入!

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號