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