PHP程式員開發win32應用程式之夢

來源:互聯網
上載者:User

標籤:blog   http   java   使用   檔案   2014   問題   代碼   

相信做純WEB開發的PHP程式員都會想過,要是PHP能開發windows本地應用程式多好,於是上網一尋找出來的很多都是“PHP-GTK”的老文章,這東西好像已經沒人維護了,隨便看了下,也就沒去細研究了。


前陣子折騰了node-webkit,這東西可以用javascript + chorme核心blink 開發本地應用,滿足純WEB程式員開發本地應用程式的夢想。

node-webkit有幾個優點:

1、內建blink核心,跟隨google升級,支援現代瀏覽器特性,媽媽再也不用擔心我的瀏覽器安全色問題了

2、內建nodejs,就是加強版的javascript,WEB程式員入手快,nodejs功能強大

3、入門級開發流程比較簡單,沒有太多看不明白的東西

4、跨平台,三大作業系統都可用

5、國人開源項目,現在在github上很熱門

缺點:體積太大。  寫個hello wold,嗯,20M以上。 試了不少壓縮方法,最少的也要17M以上,頭痛

有道詞典前陣子也開源了類似項:叫有道hex,但我比較看好node-webkit,社區更活躍更成熟。


因為自己是PHPer,自然是寫PHP才夠酸爽,於是又在想其它解決方案。

有沒有一個綠色的php web server軟體呢,這樣可以把軟體做成綠色版,不用特意去安裝apache nginx之類的東西。

功夫不負有心人,找到了一個叫QuickPHP的好東西,作者本意是想做個方便快速調式PHP指令碼的工具,歪打正著,收下了。

研究了一會,發現是delphi寫的軟體,用exescope處理下,修改幾處文字和菜單,盡量不顯示出這貨是QuickPHP

再用C++邊學邊開發,弄個簡易的瀏覽器,其實就是產生一個表單,裡弄個IE控制項上去。 啟動表單的時候,用C代碼啟動QuickPHP,然後隱藏QuickPHP的表單。

(這裡還有個問題沒解決,否則就比較完美了,最小化後,隱藏託管欄上的表徵圖很麻煩,winxp和win7處理方法還不怎麼一樣,自己C能力太差,先放棄最佳化)


折騰兩天,成果

運行 localphp.exe可以看到效果


其中php.ini和ext目錄非必須,為了使用一些PHP擴充才加上

除掉非必要的擴充目錄(ext),剩下的檔案打包壓縮完就小几M,還算滿意


demo中的功能利用了js的非同步請求,達到無重新整理操作。當然你還可以最佳化css樣式、禁止js報錯、禁止複製文字、禁止右鍵菜單等手段讓它看去更像用戶端

本身php就有很多可以控制作業系統的函數,再加上可以用exec()執行命令列代碼,所以PHP能做的事情就很多了。


除了以上提到的PHP能做的事,其實還是很想讓PHP能調用系統裡的dll檔案,那就牛逼了。想像一下,用PHP找WangWang控制代碼、呼出WangWang聊友視窗、自動發送訊息給WangWang好友,多美麗的情境...


找了半天,發現兩個擴充php_w32api.dll和php_ffi.dll,可惜好像都沒有人維護了,新版的php都不能用。有興趣有能力的同學,可以到php官方去找,最佳化一下,編譯一份給偶用,萬分感謝。



總結一下,在這幾天實現想法的過程中,受益頗多:

1、PHP居然只要一個php5ts.dll就可以運行,還有sapi是什麼

2、C/C++其實也不是那麼可怕,學進去還是挺有意思的

3、辦法總比困難多


接下來想完善兩塊:

第一、徹底隱藏web server伺服器,即那個QuickPHP 或 者自己做個web server

第二、完成用WEB控制WangWang發送訊息功能。思路可以是

1、用PHP的擴充(如上面提到的w32api和ffi)來調用系統dll;

2、自己寫PHP擴充,在擴充裡實現發送WangWang訊息功能;

3、在主表單中實現發送WangWang訊息,通過某種機制讓PHP通知到C

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.