{eval=Array;=+count(Array);}
作為一名IT從業(yè)者,我來(lái)回答一下這個(gè)問(wèn)題。
首先,App開(kāi)發(fā)需要一系列開(kāi)發(fā)角色的參與,涉及到后端開(kāi)發(fā)工程師和前端開(kāi)發(fā)工程師,在技術(shù)選擇上目前也有多種不同的解決方案。從當(dāng)前PHP的應(yīng)用場(chǎng)景來(lái)看,PHP語(yǔ)言可以用于后端服務(wù)開(kāi)發(fā)。
PHP語(yǔ)言是IT(互聯(lián)網(wǎng))行業(yè)內(nèi)流行程度相對(duì)比較高的編程語(yǔ)言,但是由于PHP語(yǔ)言主要應(yīng)用在Web開(kāi)發(fā)場(chǎng)景下,所以在當(dāng)前的大數(shù)據(jù)、人工智能時(shí)代,PHP語(yǔ)言并沒(méi)有獲得更多的關(guān)注。雖然PHP語(yǔ)言并沒(méi)有在大數(shù)據(jù)時(shí)代拓展自身的開(kāi)發(fā)邊界,但是由于Web開(kāi)發(fā)領(lǐng)域的市場(chǎng)規(guī)模非常大,所以PHP語(yǔ)言依然是最為流行的編程語(yǔ)言之一。
目前App的開(kāi)發(fā)可以分為移動(dòng)端開(kāi)發(fā)部分和服務(wù)端(后端)開(kāi)發(fā)部分,在移動(dòng)端開(kāi)發(fā)主要涉及到Android開(kāi)發(fā)和iOS開(kāi)發(fā)兩大塊,其中Android開(kāi)發(fā)可以采用Java和kotlin,而iOS開(kāi)發(fā)可以采用OC和Swift。當(dāng)然,移動(dòng)端開(kāi)發(fā)也可以采用多種技術(shù)的混合使用,也可以采用框架(混合式)來(lái)加速開(kāi)發(fā)過(guò)程。
后端開(kāi)發(fā)技術(shù)的選擇也是比較多的,目前比較常見(jiàn)的后端開(kāi)發(fā)方案就包括Java、Python和PHP等,在大數(shù)據(jù)和云計(jì)算時(shí)代,采用Go語(yǔ)言也是一個(gè)不錯(cuò)的選擇。從這個(gè)角度來(lái)看,掌握PHP也是可以加入到移動(dòng)互聯(lián)網(wǎng)開(kāi)發(fā)團(tuán)隊(duì)的。
最后,PHP語(yǔ)言本身的優(yōu)點(diǎn)是比較多的,包括健全的語(yǔ)言生態(tài)體系和較短的開(kāi)發(fā)周期等等,但是由于PHP語(yǔ)言在大數(shù)據(jù)、云計(jì)算和人工智能等新興技術(shù)體系下沒(méi)有獲得更多的應(yīng)用場(chǎng)景,所以對(duì)于PHP程序員來(lái)說(shuō),可以關(guān)注一下Python語(yǔ)言,以便于提升自身的崗位級(jí)別和職場(chǎng)價(jià)值。
我從事互聯(lián)網(wǎng)行業(yè)多年,目前也在帶計(jì)算機(jī)專業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領(lǐng)域,我會(huì)陸續(xù)寫(xiě)一些關(guān)于互聯(lián)網(wǎng)技術(shù)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會(huì)有所收獲。
如果有互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等方面的問(wèn)題,或者是考研方面的問(wèn)題,都可以在評(píng)論區(qū)留言,或者私信我!
PHP是后端開(kāi)發(fā)語(yǔ)言,可以開(kāi)發(fā)任何的應(yīng)用,包括網(wǎng)站、APP,所以,PHP完全可以開(kāi)發(fā)APP。
編程開(kāi)發(fā)的流程,大致給你說(shuō)一下
1、需要一個(gè)IDE(集成開(kāi)發(fā)環(huán)境),是一個(gè)軟件,例如Eclipse、PhpStorm、Visual Studio、PyCharm等等,可以用來(lái)開(kāi)發(fā)相應(yīng)的語(yǔ)言應(yīng)用程序,然后,你需要去編寫(xiě)代碼,例如APP開(kāi)發(fā),需要工具有Android Studio(開(kāi)發(fā)安卓類APP)、Xcode(IOS類APP),還有國(guó)內(nèi)比較出名的混合開(kāi)發(fā)工具HBuilder X、APPCloud、APPCan等,可以同時(shí)發(fā)布發(fā)安卓和IOS,還有小程序等,推薦初學(xué)者使用。
2、第一步的開(kāi)發(fā)工具寫(xiě)完代碼,才剛剛開(kāi)始,我們還需要去獲取數(shù)據(jù),數(shù)據(jù)是存儲(chǔ)在后端服務(wù)器上的,例如存儲(chǔ)在ucloud云服務(wù)器上,你需要去編寫(xiě)后端代碼,可以用PHP、JAVA、C#、Go、Python等編程語(yǔ)言去寫(xiě),主要是查詢數(shù)據(jù),然后返回給APP展示、還有保存數(shù)據(jù)到服務(wù)器上。這步涉及的東西就多了,少年,路漫漫其修遠(yuǎn)兮。
3、最后,APP前端和后端都打通,一個(gè)APP就開(kāi)發(fā)完成。
當(dāng)然作為一個(gè)軟件系統(tǒng)不僅僅是這些,還有更復(fù)雜的東西,例如安全性、API、高并發(fā)等等,開(kāi)發(fā)的階段也需要學(xué)習(xí)更多的東西,例如開(kāi)發(fā)模式、算法、數(shù)據(jù)結(jié)構(gòu)等等,慢慢學(xué)習(xí)吧少年。
PHP是WEB后端語(yǔ)言,最好用于APP的后端數(shù)據(jù)接口編寫(xiě)。當(dāng)然,也可用html+php混合寫(xiě)web程序,最后封裝成web app,但性能不如原生app。
PHP是一個(gè)后端語(yǔ)言,可以為app實(shí)現(xiàn)數(shù)據(jù)接口和數(shù)據(jù)處理,如果按照提問(wèn)的角度而言,那肯定也算是可以的。
PHP的開(kāi)發(fā)優(yōu)勢(shì)主要集中在網(wǎng)上開(kāi)源代碼巨大,框架眾多,開(kāi)發(fā)流程極短,可以很快的開(kāi)發(fā)好自己的項(xiàng)目,基本沒(méi)有什么比較長(zhǎng)的開(kāi)發(fā)流程,開(kāi)發(fā)成本也低,學(xué)習(xí)起來(lái)也比較簡(jiǎn)單。這基本就是PHP語(yǔ)言web網(wǎng)站使用率如此高的原因之一。
所以你可以完全通過(guò)php來(lái)實(shí)現(xiàn)app的數(shù)據(jù)接口,然后再使用一些開(kāi)源的h5前端框架,快速的開(kāi)發(fā)出h5+app。整個(gè)開(kāi)發(fā)周期和流程都會(huì)相對(duì)于其它編程需要來(lái)說(shuō)短了不止一點(diǎn),而且技術(shù)難度也會(huì)非常的低,很容易自學(xué)入門。
但是,如果選用php作為后端語(yǔ)言處理php的接口,也會(huì)存在以下的問(wèn)題:
1.php相對(duì)于其它語(yǔ)言而言,性能不夠優(yōu)秀,如果是一個(gè)用戶量請(qǐng)求量極大的網(wǎng)站,很容易出現(xiàn)各種問(wèn)題。而這種層面的優(yōu)化同樣需要大量的人力物力,比如bilibili最開(kāi)始就是php開(kāi)發(fā)的,后來(lái)為了擁有更大的用戶承載量而全面Golang化。
2.php存在一定程度的安全問(wèn)題,因?yàn)樗呛A恐行【W(wǎng)站普遍使用的語(yǔ)言,以前也出現(xiàn)過(guò)各種形式的安全漏洞。相對(duì)于java,Python等語(yǔ)言來(lái)說(shuō),php的安全性仍然有待考量。
3.php往往是配套h5+進(jìn)行app開(kāi)發(fā),因?yàn)槿绻鸻pp再選用其它語(yǔ)言,基本完全失去了使用php的意義。但是h5+app也存在許多天然性的問(wèn)題,比如無(wú)法上架蘋(píng)果市場(chǎng),性能消耗比原生大等。
最后,以上都是我的個(gè)人之見(jiàn),因?yàn)樽约阂餐孢^(guò)一段時(shí)間的php開(kāi)發(fā),了解過(guò)這門語(yǔ)言當(dāng)然的一些現(xiàn)狀。
對(duì)于app的開(kāi)發(fā),個(gè)人還是建議如果選用開(kāi)發(fā)流程低耗時(shí)短的策略,那么建議使用nodejs搭配vue或者mui框架的方式。如果要追求質(zhì)量和性能,那么還是老老實(shí)實(shí)的學(xué)習(xí)原生的安卓開(kāi)發(fā)方式吧。
解答PHP是否可以開(kāi)發(fā)APP這個(gè)問(wèn)題以前首先你得先明白什么是PHP以及什么是APP。php是一種后端程序語(yǔ)言,控制著整個(gè)系統(tǒng)的運(yùn)行邏輯、數(shù)據(jù)交互等,而APP是前端,負(fù)責(zé)將視覺(jué)頁(yè)面體現(xiàn)到用戶面前,用戶主要操作也通過(guò)前端來(lái)實(shí)現(xiàn)。
任何一種后端語(yǔ)言都可以作為APP的交互后端,所以PHP當(dāng)然也可以,但是無(wú)法直接開(kāi)發(fā)APP。同時(shí)APP又具備多種開(kāi)發(fā)方式:
就是我們所熟知的需要通過(guò)安卓或者IOS語(yǔ)言的開(kāi)發(fā)者,開(kāi)發(fā)門檻較高,并且由于是兩種不同的前端語(yǔ)言,所以要做純?cè)_(kāi)發(fā)至少需要兩個(gè)工程師。至于后端工程師就要看前端的水平了,有一些安卓或者蘋(píng)果的工程師本身就兼具PHP或者JVAV開(kāi)發(fā)能力。
優(yōu)點(diǎn):響應(yīng)速度快,所有靜態(tài)資源都存儲(chǔ)在客戶端當(dāng)中,在下載客戶端的時(shí)候相當(dāng)于同時(shí)下載到本地了,即使沒(méi)有網(wǎng)絡(luò),頁(yè)面也能呈現(xiàn),只是動(dòng)態(tài)資源在沒(méi)有網(wǎng)絡(luò)的情況下不顯示而已。
注:靜態(tài)資源是指平時(shí)不需要更新和替換的資源,例如各種按鈕圖標(biāo),頁(yè)面框架、logo等信息。動(dòng)態(tài)資源是指需要經(jīng)常變動(dòng)的資源,比如說(shuō)商城app里面的商品信息和圖片就屬于動(dòng)態(tài)資源。
缺點(diǎn):開(kāi)發(fā)成本高,在需要更換靜態(tài)資源的時(shí)候必須通過(guò)APP的版本迭代來(lái)實(shí)現(xiàn)。
這種是目前小型技術(shù)服務(wù)公司最常用的手段,通過(guò)H5類型的各種前端語(yǔ)言框架來(lái)進(jìn)行頁(yè)面開(kāi)發(fā),然后在封包成IOS和安卓客戶端。這種開(kāi)發(fā)方式成本相對(duì)較低,現(xiàn)在一般有經(jīng)驗(yàn)的前端工程師就能采取這種方式來(lái)進(jìn)行開(kāi)發(fā)。
優(yōu)點(diǎn):開(kāi)發(fā)成本低,由于靜態(tài)資源同樣存儲(chǔ)在本地,所以響應(yīng)速度也相對(duì)比較快,同時(shí)由于現(xiàn)在很多前端語(yǔ)言框架都同時(shí)支持移動(dòng)端H5、小程序、封包APP,所以相當(dāng)于開(kāi)發(fā)一個(gè)能復(fù)用到很多平臺(tái)。
缺點(diǎn):雖然靜態(tài)資源是在本地,但是由于采用的是頁(yè)面框架,所以響應(yīng)速度相比純?cè)_(kāi)發(fā)來(lái)講還是比較慢,如果靜態(tài)資源過(guò)于臃腫打開(kāi)的時(shí)候甚至于會(huì)有一定的延遲才看得到頁(yè)面。
直接把一個(gè)移動(dòng)端頁(yè)面封包成APP,說(shuō)句難聽(tīng)的,就算是電腦端網(wǎng)頁(yè)都能封包成APP,現(xiàn)在網(wǎng)絡(luò)上有很多一鍵封包更具。其實(shí)這樣做出來(lái)的APP就相當(dāng)于是做了一個(gè)手機(jī)瀏覽器,每次打開(kāi)APP的時(shí)候APP自動(dòng)通過(guò)網(wǎng)址把移動(dòng)端網(wǎng)頁(yè)調(diào)用出來(lái)。
優(yōu)點(diǎn):當(dāng)然是沒(méi)有任何開(kāi)發(fā)成本了,除了IOS的開(kāi)發(fā)者證書(shū)要花錢買以外就是得花點(diǎn)錢買封包工具的會(huì)員了。并且這種做法幾乎不用迭代APP,因?yàn)槟憔W(wǎng)頁(yè)的前端代碼一修改訪問(wèn)的內(nèi)容也自動(dòng)修改了,靜態(tài)資源全部從你的服務(wù)器調(diào)用。
缺點(diǎn):訪問(wèn)速度極慢,因?yàn)檎麄€(gè)頁(yè)面都是從網(wǎng)絡(luò)上訪問(wèn)的。一旦網(wǎng)絡(luò)信號(hào)不好,就可能卡在開(kāi)屏界面一直進(jìn)不去或者進(jìn)去了一只在等待頁(yè)面刷新。同時(shí)由于頁(yè)面兼容性問(wèn)題,很多APP前端的功能都無(wú)法實(shí)現(xiàn)或者實(shí)現(xiàn)難度比較大!基本上無(wú)法實(shí)現(xiàn)APP的一些復(fù)雜交互功能。
這個(gè)問(wèn)題怎么回答你那?
首先你要大致了解PHP是什么語(yǔ)言可以干什么事情,APP是什么?安卓是什么? 可以干什么事情?IOS是什么?可以干什么事情?這些答案百度都會(huì)告訴你的。
先搞清楚整個(gè)架構(gòu)。
app:負(fù)責(zé)數(shù)據(jù)渲染(顯示、排版)
數(shù)據(jù)庫(kù):負(fù)責(zé)存儲(chǔ)數(shù)據(jù)
PHP:作為中間件處理請(qǐng)求返回?cái)?shù)據(jù)
*是否能跳過(guò)PHP,直接app->數(shù)據(jù)庫(kù)?
可以,但問(wèn)題是app被解包/破解后,數(shù)據(jù)庫(kù)的數(shù)據(jù)就危險(xiǎn)了。
回到問(wèn)題,
如果APP為純靜態(tài)數(shù)據(jù),那基本沒(méi)數(shù)據(jù)庫(kù)和PHP的事情了。
如果APP涉及動(dòng)態(tài)數(shù)據(jù),
那么PHP可以作為APP中的一環(huán)。
10
回答4
回答3
回答1
回答10
回答0
回答7
回答0
回答10
回答8
回答