首頁 > 後端開發 > php教程 > 使用PHP開發跨平台桌面應用程序的3種方法

使用PHP開發跨平台桌面應用程序的3種方法

Christopher Nolan
發布: 2025-02-19 09:26:10
原創
638 人瀏覽過

使用PHP開發跨平台桌面應用程序的3種方法

php作為跨平台桌面應用程序開發語言?褻瀆!儘管如此,這是可能的。

幾年前,那些有興趣將PHP帶到台式機的人都是現在已長期被廢棄的GTK PHP。從那以後,新玩家出現了,儘管讓我們首先回答“為什麼”。

>

鑰匙要點

儘管它主要用於Web開發,但PHP仍可用於開發跨平台桌面應用程序。本文討論了三個主要工具:nightrain,wxphp和tidesdk。 Nightrain是一套預包裝的PHP託管先決條件,非常適合基本應用。但是,它具有局限性,包括在Windows上啟動命令提示符,該提示符可能會混淆非技術用戶,並且無法同時運行多個應用程序而無需更改設置。
    >
  • > wxphp是包裝WXWIDGETS庫的PHP擴展名,允許創建多平台桌面應用程序。它提供了更簡單的用戶體驗,應用程序僅是可以雙擊的文件,但缺少HTML5功能並且具有學習曲線。
  • >
  • tidesdk是一個開源項目,它使用HTML,CSS,JS和其他腳本語言(如PHP)來渲染應用程序。但是,它有幾個弊端,包括過時的PHP版本,不同的DOM API,並且需要多個環境為不同平台構建應用程序。
  • >
  • 其他選項,例如PHPDESKTOP,Webinder和PHP GTK,要么過時,Windows-contryustrusive或兩者兼而有之,因此它們對多平台解決方案的可行性降低了。 在為桌面開發PHP應用程序時,可能並非總是合理的,因為知道該選項的存在對於某些方案可能很有用。
  • 為什麼?
  • >為什麼有人會為桌面開發跨平台PHP應用程序?為什麼不選擇可以真正可以將操作系統低級API(例如Adobe Air)綁定到的東西呢?為什麼不喜歡過時,過時的東西,但是像爪哇一樣可靠?為什麼不將其製作為Chrome應用程序,如果您需要本機支持,請使用本機客戶端?地獄,如果您想要腳本語言,為什麼不和Python一起去呢?一切都在進行,只要我們避免必須將服務器與整個Shebang捆綁在一起,對
  • >
>我的頭頂,我可以想到幾個遙遠的場景:

  1. >您需要在簡單的語法和良好的結構(即PHP)之間進行良好的中間立場,並且您不願意學習新語言,例如ActionScript
  2. >您正在與高度計算機文盲的公司一起運行它,而迫使他們為您的公司應用程序使用良好的瀏覽器的唯一方法是將其嵌入您提供的應用程序中。它仍然是一個網絡應用程序,但在無頭的Chrome中打開!
  3. >
  4. >您想避免為自己的個人申請支付託管費用,並且想在USB棒上隨身攜帶。您只需將其插入,運行它,然後您的應用就在那裡 - 從前使用相同的SQLite DB。如果您需要在線同步,請單擊按鈕,將整個DB導出發送到Dropbox或某些此類服務,從而確保您實際上即使沒有計算機也可以訪問您的“ Web應用程序”。 >您不需要低級OS API訪問 - 您只想製作基於瀏覽器的遊戲,輔助應用程序,或類似簡單的內容。 php對此很好,您已經知道了語言。
  5. >
這些情況看起來可能像抓住稻草,的確,我真的想不出一個真正的,實用的理由,想要做到這一點沒有可行的選擇。不過,很高興知道這是可能的。讓我們看看如何。

1。 nightrain

Nightrain是一組預包裝的PHP託管先決條件,目前由PHP 5.5.x提供動力。這是用Python編寫的包裝器,它使用PHP的內部服務器託管您的應用程序,從而避免了Apache和nginx並最大程度地減少配置Shenanigans。但是,這也意味著一些更高級的方面不可用,您只能真正將其用於非常基本的應用程序。

>另一個很大的騙局是,在Windows上,首先啟動命令提示符,然後啟動“應用程序”。如果您想使用該應用程序,則必須保持命令窗口的打開狀態,這可能會使方案的技術文盲的人有點混亂。

>更重要的是,您默認情況下只能運行一個ngrain應用程序,因為它實際上在端口8000上啟動了一台服務器,然後使打開“秘密”的無頭瀏覽器訪問localhost:8000 。如果要啟動幾個不同的nightrain應用程序,則需要更改設置中的端口。這也意味著簡單地訪問Localhost:8000在主機機器的瀏覽器中會向您顯示同一應用。

Nightrain與開箱即用的大多數PHP應用程序/框架兼容,只要您將數據庫更改為SQLite(即使用的),並調整捆綁的php.ini,以使某些缺失的擴展名(如果有)。 MySQL沒有捆綁,並與常規堆棧一起安裝它並不簡單。無論如何,使該應用程序上游將SQLite數據發送到您用於集中式數據庫的服務器非常簡單,因此僅在系統運行的系統上僅使用SQLITE有些邏輯。 到目前為止,該應用程序的最大缺點是它使用WX小部件為無頭瀏覽器供電,並且在Windows上,這似乎歸功於IE7。如上所述,通過WXPYTHON進行更改,似乎有可能,但尚未嘗試。一個人只能希望瀏覽器對像很快就會更新到更可用的東西 - 直到那時,直到所有其他關鍵缺點都固定了,我什至無法開始想像nightrain的用途。

>

2。 wxphp

WXPHP代表“ PHP的WXWIDGETS”,是包裝WXWIDGETS庫的PHP擴展程序,該庫允許編寫多個平台桌面應用程序,該應用程序使用可用於不同平台可用的本機圖形組件。 -

wikipedia

>您將WXPHP安裝為一個單獨的程序,然後通過簡單地對其進行雙重鍵入來支持執行.wxphp文件。

這意味著您的應用程序僅僅是文件,您可以輕鬆地將它們分發。您可以像往常一樣將代碼整理到文件和類中,並分發文件夾。主.wxphp文件然後可以包含這些其他資源。

>

>該安裝帶有幾個示例,其中包括一個初始化WebView並在WX框架中加載WXPHP網站的示例。要注意的一件事是,使用WXPHP,您不會像網絡上那樣開發網站。換句話說,您不會開發離線網站,而是將各種WX小部件串在一起。因此,庫有一些學習曲線,您將缺乏可能習慣的HTML5功能,或者網絡開發的簡單性。有一些概念證明了運行和服務請求的內部PHP服務器的概念,但這是實驗性和復雜的,並且再次公開了Local主機,就像Nightrain一樣。 WXPHP還帶有一個可愛的表單構建工具,該工具將幫助您通過Wysiwyg編輯器自動生成WXPHP應用程序所需的PHP代碼。 使用PHP開發跨平台桌面應用程序的3種方法>

在您將WX視為瑣碎之前,人們已經開發了更多的基本應用程序。例如,這是一個帶有遠程調試和插件API的PHP編輯器。

如果您認真對待PHP桌面開發,那麼與夜間衛星相比,WXPHP是迄今為止更好的選擇,即使Nightrain允許您為GUI編寫良好的舊HTML。 WX的最大優勢之一是,一旦安裝,可以在鼠標的單擊時運行所有.wxphp文件。沒有其他安裝,沒有尷尬的控制台窗口。對於技術文盲的人來說,這是天哪 - 您可以通過簡單的電子郵件輕鬆地在公司內部分發該應用程序,並且更新過程與覆蓋文件一樣簡單。

3。 tidesdk

tidesdk的方法與上述兩個方法有些不同。 您安裝了SDK以能夠開發應用程序,並且每個平台都有某些先決條件。 Tidesdk實際上是重命名的鈦桌面項目。鈦仍然專注於移動設備,並放棄了桌面版本,該版本由一些開源並稱為Tidesdk的人接管。

>根據“入門指南”安裝,一旦我們擁有Tidesdk Developer App(一個幫助我們將應用程序捆綁到可分佈的軟件包)的助手應用程序),我們就可以開始開發。您使用潮汐構建的應用程序(通過輔助應用程序或通過命令行)既可以純粹可執行,也可以作為可安裝的軟件包分發,這些軟件包可獲得整個“應用程序”處理,包括嵌入的安裝過程,使其無法安裝,使其無法安裝通過Windows或其他操作系統上的軟件包管理器上的添加/刪除程序。

>

應用程序資源與WebKit客戶端和熟悉且廣泛的API結合使用。 API具有特權,提供文件系統訪問,使您可以讀取和管理文件。還提供了API來創建和與本地數據庫進行交互。網絡API允許創建客戶端和服務器或在低得多的級別與HTTP接口。也可以打開與其他服務的套接字連接。

通常,Tidesdk使用HTML,CSS和JS來渲染應用程序,但它也支持Python,Ruby和PHP等腳本語言。渲染背後的引擎是WebKit,這意味著它的啟動會很慢,但是它將支持最新的Web技術。

>

通過向清單文件添加模塊語句來激活>

請注意,使用腳本模塊進行腳本語言將對您的應用程序的安裝和運行時間產生重大的性能懲罰。

>有趣的是,Tidesdk具有一個對象橋,該對象橋可讓您在應用程序中使用PHP時,將數據從JS無縫轉換為PHP和Back。您可以在這裡閱讀更多信息,但是詳細的Tidesdk教程即將推出。

使用Tidesdk進行PHP桌面應用程序開發有幾個主要缺點:>

PHP開發工作流程嚴重記錄不足,並且非常容易受到錯誤的影響,但幾乎不可能進行調試。 捆綁的PHP版本已過時 - 在撰寫本文時版本5.3.x版本。雖然通過SDK安裝目錄中的/模塊文件夾,用最新的模塊文件夾替換它相對容易,但這是一個額外的滋擾,缺少許多現代PHP功能,這些功能可能會在桌面應用程序開發中使用,更不用說內置的服務器也可能在此處獲得深奧的用例。

    有一個學習曲線。 DOM API與您在Web開發中可能使用的不同。要在屏幕上迴聲,您需要調用$ document-> write()而不是迴聲。這是一個較小的區別,但沒有充分記錄,可以絆倒您。
  1. > 到目前為止,最大的缺點是彙編。通過構建應用程序獲得的包裝與您構建的平台綁定。要為多個環境構建應用程序,您需要擁有這些多個環境。 Windows/linux差異很容易通過虛擬機解決(儘管主機是Windows,並且您的Linux VM都比相反的方式更容易解決),但是除非您有OS X設備,否則祝您好運,除非您有OS X ,也是。
  2. tidesdk是一個整潔的選擇,但它遠非可用。它對HTML/CSS/JS的交付非常有用,但是當涉及PHP時,我相信WXPHP仍然是您最好的選擇。
  3. 其他選項
  4. 也有其他選項可用,但至少可以說。

phpdesktop類似於夜間,但僅是窗口。另一方面,它與Mongoose服務器捆綁在一起,因此可以執行並行請求。它還運行Chrome,這意味著渲染/打開的速度很慢,但支持最新的Web技術。它的Windows-Exexclusitive從此多平台解決方案列表中取消了資格。

>韋伯德和PHP GTK都過時了,可能不應該使用。除此之外,Webinder僅是Windows。

結論

    雖然為台式機構建PHP應用程序的原因因用例而有所不同,而且通常不容易證明是合理的,但我相信如果您需要該選項,這是很好的。
  • 您是否在PHP中開發了桌面應用程序?如果是這樣,請讓我知道為什麼和您使用了哪種技術 - 我絕對希望您寫自己的經驗。知道還有其他選擇嗎?在評論中讓我知道!

    >

    >經常詢問的問題(常見問題解答)與PHP

    開發跨平台桌面應用程序

    >將PHP用於桌面應用程序開發有什麼好處?

    php是一種通用的腳本語言,主要用於Web開發。但是,由於其眾多好處,它也可以用於桌面應用程序開發。首先,PHP是跨平台,這意味著它可以在Windows,Linux和MacOS等各種操作系統上運行。這使得它非常適合開發可以在任何平台上運行的桌面應用程序。其次,PHP擁有龐大的開發人員社區,這意味著您可以在遇到問題時輕鬆找到資源和幫助。最後,PHP易於學習和使用,這對於桌面應用程序開發的初學者來說是一個不錯的選擇。

    我可以使用PHP來開發複雜的桌面應用程序嗎?用於開發複雜的桌面應用程序。儘管傳統上是用於網絡開發的PHP,但多年來它已經發展出來,現在包含了可以開發複雜桌面應用程序的功能。這些包括面向對象的編程,異常處理和名稱空間。此外,還有幾種PHP框架和工具,例如PHP桌面和PHP-GTK,可以幫助構建複雜的桌面應用程序。

    PHP桌面如何工作?

    >

    php桌面是一種工具,是一種允許的工具您可以使用PHP開發跨平台桌面應用程序。它將Web服務器,PHP解釋器,瀏覽器和JavaScript引擎嵌入到一個軟件包中。這意味著您可以使用PHP編寫應用程序,並且它將作為獨立的桌面應用程序運行。 PHP桌面處理所有後端流程,因此您不必擔心設置服務器或配置PHP環境。

    >

    什麼是PHP-GTK,如何將其用於桌面應用程序開發? >我可以使用PHP桌面應用程序訪問系統資源嗎? PHP具有幾個內置功能,可讓您與文件系統,網絡和其他系統資源進行交互。但是,請記住,訪問系統資源可以構成安全風險,因此,在開發應用程序時遵循最佳實踐非常重要。 >

    >將使用PHP用於桌面應用程序開發的局限性是什麼? 🎜>雖然可以將PHP用於桌面應用程序開發,但確實有一些局限性。 PHP的速度不如C或Java等編譯語言,因此它可能不適合需要高性能的應用。此外,PHP不是為桌面應用程序開發而設計的,因此它缺少其他桌面應用程序開發語言中常見的功能。但是,諸如PHP桌面和PHP-GTK之類的工具可以幫助克服其中的某些限制。

    >

    我可以將現有的PHP代碼用於桌面應用程序開發嗎?

    是的,您可以為您使用現有的PHP代碼作為現有的PHP代碼。桌面應用程序開發。如果您有PHP Web應用程序,則可以使用PHP桌面之類的工具將其轉換為桌面應用程序。這可以節省大量的時間和精力,因為您無需從頭開始重寫您的應用程序。

    >

    >我如何調試我的PHP桌面應用程序?

    >

    >調試PHP桌面應用程序類似於調試PHP Web應用程序。您可以使用PHP的內置錯誤報告功能顯示錯誤。此外,您可以使用Xdebug之類的PHP調試器來瀏覽您的代碼並查找錯誤。某些PHP桌面開發工具還提供調試功能。

    >我可以使用帶有PHP桌面應用程序的數據庫嗎?

    是的,您可以使用帶有PHP桌面應用程序的數據庫。 PHP支持廣泛的數據庫,包括MySQL,PostgreSQL和SQLite。您可以使用PHP的內置數據庫功能或PDO(例如PDO)的數據庫抽象層來與數據庫進行交互。就像在PHP Web應用程序中一樣,您可以存儲和檢索數據。

以上是使用PHP開發跨平台桌面應用程序的3種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板