桌面软件是不是没前途了

quanwei9958 发布于 2015/11/12 20:51
阅读 5K+
收藏 1
  现在做桌面的,开发周期长,难度也比较大,升级不容易,安装包太臃肿,各种不好各种垃圾。 虽然接触时间不算长,不过感觉这个产业已经到尾端了。 不得不说一声,桌面必死。好了不说了,我的php教程下载好了。
加载中
1
figer1
figer1

没有早期那么火是真的,但我们完全不使用桌面软件是不可能的,死了就更不可能了,PC硬件设备的出货量的确下跌的很厉害,但是手机一两年一换,而PC十年一换,手机小小的屏幕空间有限的运算能力都难能以完全替代PC。

至于说到前途这个事情,人要有本事,捡拉极卖烧饼都会有前途,要是没本事,就是天天写手机应用或者做网站也成不了马云。至于你说的桌面软件开发周期长,难度也比较大......我倒不觉得, 桌面软件也不是都要写的很复杂,正如用PHP的不是都要去写个wordpress道理一样,简单有简单的写法, 随便举个 aardio 的例子:

import win.ui;/*DSG{{*/
var winform = ..win.form(text="Kxui - Kxdwn.";right=469;bottom=318;bgcolor=16777215;border="none")
winform.add(
btnClose={cls="plus";text="r";left=439;top=4;right=466;bottom=27;bgcolor=16760919;color=11765504;dr=1;dt=1;font=LOGFONT( name='Webdings';h=-19 );notify=1;z=1};
navBorder={cls="static";left=90;top=5;right=91;bottom=314;bgcolor=16760832;notify=1;z=7};
plus1={cls="plus";text="常规设置";left=0;top=15;right=90;bottom=46;bkBottom=4;bkLeft=9;bkRight=11;bkTop=3;font=LOGFONT( name='微软雅黑';h=-14 );notify=1;z=2};
plus2={cls="plus";text="操作习惯";left=0;top=47;right=90;bottom=78;bkBottom=4;bkLeft=9;bkRight=11;bkTop=3;font=LOGFONT( name='微软雅黑';h=-14 );notify=1;z=3};
plus3={cls="plus";text="个性定制";left=0;top=79;right=90;bottom=110;bkBottom=4;bkLeft=9;bkRight=11;bkTop=3;font=LOGFONT( name='微软雅黑';h=-14 );notify=1;z=4};
plus4={cls="plus";text="皮肤资源";left=0;top=112;right=90;bottom=143;bkBottom=4;bkLeft=9;bkRight=11;bkTop=3;font=LOGFONT( name='微软雅黑';h=-14 );notify=1;z=5};
plus5={cls="plus";text="高级设置";left=0;top=140;right=90;bottom=171;bkBottom=4;bkLeft=9;bkRight=11;bkTop=3;font=LOGFONT( name='微软雅黑';h=-14 );notify=1;z=6}
)
/*}}*/
 
namespace theme{ 
    radio = {
        group = "nav";
        background = {
            default = 'GIF89a\x16\0\x0B\0\x80\x01\0\0\xC0\xFF\xFF\xFF\xFF!\xF9\x04\x01\0\0\x01\0,\0\0\0\0\x16\0\x0B\0\0\x02\x0F\x8C\x8F\xA9\xCB\xED\x0F\xA3\x9C\xB4\xDA\x8B+\xD8\xBC\x15\0;'
        }
        color = {
             hover = 0xFF57c0ff; 
             active = 0xFFffc057; 
        }
        checked = {  
             color = {
                hover = 0xFF57c0ff; 
                 active = 0xFFffc057; 
             }
             background = { 
                 default= 'GIF89a\x16\0\x0B\0\x80\x01\0\0\xC0\xFF\xFF\xFF\xFF!\xF9\x04\x01\0\0\x01\0,\0\0\0\0\x16\0\x0B\0\0\x02\x19\x8C\x8F\xA9\xCB\xED\x0B"xPR%\xE7Eys\xEB\x19]\x18\x8C\xA4\x93EM\x01\0;'
             }
        }
    }
    close = {
        color = {
            hover = 0xFF57c0ff; 
            active = 0xFFffc057; 
        } 
    }
}
winform.plus1.skin(theme.radio);
winform.plus2.skin(theme.radio);
winform.plus3.skin(theme.radio);
winform.plus4.skin(theme.radio);
winform.plus5.skin(theme.radio); 
winform.btnClose.skin(theme.close); 
 
winform.btnClose.oncommand = function(id,event){
    winform.close()
} 
 
winform.wndproc = function(hwnd,message,wParam,lParam){
    if( message == 0x201/*_WM_LBUTTONDOWN*/ ) {
         winform.hitCaption();
    }
}
 
import win.ui.minmax; 
win.ui.minmax(winform);
 
import win.ui.shadow;
win.ui.shadow(winform,70,7); 
 
winform.show();
win.loopMessage();


看,其实写桌面软件的代码,也可以象写PHP代码那么舒服的。

夲仒無道
夲仒無道
回复 @eechen : 哎哟,天天看你发言,你真是够拼的。
eechen
eechen
回复 @magiclogy : 哪些方面?是标准吗?跨平台吗?还是微软自己玩。WebSocket/WebRTC/WebGL/Canvas/Video/Audio,这些HTML5技术囊括了全双工通信,即时通讯,3D渲染,2D绘图,音视频.http://segmentfault.com/q/1010000003764874/a-1020000003991383
m
magiclogy
回复 @eechen : 微软.net的xaml技术,就技术层面上很多地方比html5先进
eechen
eechen
用jQuery DOM元素绑定某种事件,AJAX异步加载数据,显示隐藏元素,设置样式等等,要比原生桌面简单得多.事件驱动方便回调的JS写交互界面还是很合适的.而且JS不用编译解释执行,有个浏览器和编辑器就能进行图形界面编程,入门门槛低得多.
quanwei9958
quanwei9958
升级诟病那还有
0
夜行生物
夜行生物
QQ还是不能只有网页版啊
eechen
eechen
回复 @quanwei9958 : IE是拦路虎。如果浏览器都是Chrome和Firefox的水准,那么HTML5强大的特性早就普及了,富客户端开发成本绝对要比Windows客户端开发低得多。而且运行在浏览器这个沙盒里,对用户计算机来说,也更加安全。
quanwei9958
quanwei9958
QQ特例了,老牌程序,不是想离就离得。 但是对于从事桌面来讲,还是没前途
0
kangxin1234
kangxin1234
PHP是最好的语言,没有之一,我也要去学一下。桌面程序我不懂
eechen
eechen
PHPer都会写浏览器前端代码吧。把PHP部署到客户端,由用户浏览器来展示界面。启动程序时,就是用PHP建立一个HTTP服务器(5.4内置),然后调用系统浏览器打开网页。数据可以用PHP内置的SQLite存储。代码可以加密或者混淆。去掉不用的扩展,连同PHP打包后应该小于10MB吧。比JRE小得多了。
0
z
zrl0506
有些项目还是必须用桌面软件的,你要不看看数据量比较大,有对安全要求高的项目
0
figer1
figer1

@eechen 你的理念很有意思,向你学习,不知道你能不能演示一下你所说的:“jQuery DOM......AJAX...........事件驱动..............." 等等,就象你说的“简单得多,很方便.................”,复杂的就不用了,就我上面发的那个界面,发点具体的代码给我们学习一下,想学习一下怎么个更简洁更方便。

你知道最好兼容XP,WIN7,WIN8,WIN10一大堆,能生成EXE文件,体积最好不要大于1MB,最好不需要运行库..........你如果说要放到  webos里才能运行,那还是算了,我现在还不想用基于HTML的webos替代桌面系统。

举个例子,现在扁平化界面很流行,这种通常要自己实现窗口的阴影边框,在aardio里就是一句代码:

import win.ui.shadow;
win.ui.shadow(winform,70,7);

不知道你怎么用jQuery为浏览器窗口加阴影效果这些呢?

另外,我们写桌面软件,还经常要实现异形透明窗口,举个例子,显示一个透明的flash动画,那用aardio代码写很简单:

import win.flashBox 
var flash = win.flashBox(text="aardio Form";right=599;bottom=399)
flash.movie = "http://update.aau.cn/aardio/samples/transparent.swf";

flash.show() 
win.loopMessage();

不知道你用jQuery怎么更简单的搞定?


或者可以看看 aardio系列教程:使用plus控件制作精美界面 这种小而美的桌面窗口拖拉几下就可以出来,九宫格切图,桌面透明异形等等,不知道你用jQuery方不方便?!


另外js做桌面软件的UI还有些要命的问题,非常卡,内存泄漏(参考EXTJS,DOJO等等),浏览器都是用单页面单进程来做到完全释放,网页的生命周期不长,可是桌面软件就不同了,可能要运行几天或几个月的都有,不知道你都是怎么解决的。

至于你说的chrome内核,webkit内核做桌面软件,哦,这个并不难,aardio里加载一个webkit内核也就3.xMB,参考 使用webkit内核开发桌面软件界面

import win.ui;
/*DSG{{*/
var winform = win.form(text="webkit浏览器简单示例";right=1123;bottom=570) 
/*}}*/

//导入webkit支持库
import web.kit.form;  
var wbKitView= web.kit.form(winform); //创建webkit浏览器窗口

//使用external接口定义网页脚本可调用的本地函数
wbKitView.external = {

    hitCaption = function(){
        winform.hitCaption();
    };
    close = function(){
        winform.close();
    };
    aardioCall = function(str){ 
        winform.msgbox(str);
    };
}

wbKitView.html = /** 
    <a href='javascript:external.close();'>关闭窗口</a> 
    
    <div onmousedown='javascript:  
        external.hitCaption();
        return false;
    ' style="-webkit-user-select: none;cursor:default;background:#cce;padding:25px;margin:10px;">拖动窗口</div>
    
    <a href='javascript:
        external.aardioCall("你好,我是webkit");
    '>调用aardio函数external.aardioCall()</a> 
**/ 

winform.show() 
win.loopMessage();

但是很可惜的是,桌面软件的界面远比网页要复杂,即使随便带个webkit,支持HTML5,CSS3很容易,但用JS做桌面界面似乎还是不太现实。

另外你说的“运行在浏览器这个沙盒里,对用户计算机来说,也更加安全”,这个能叫安全?!随便说几个读下U盘,取下硬盘序列号,获取CPU信息,有时候还要跑点汇编机器码,写个注册表,操作本地文件数据库............一大堆一大堆,全都做不了,这叫安全?你不如说把手和脚都剁了更安全。





0
figer1
figer1
另外,用PHP做桌面软件倒不是不行,但并不需要在用户电脑上启动一个“web服务器” - 这不太安全,而且搞不好还出现端口冲突,占用资源也大,其实PHP是可以直接以CGI方式执行的,类似webkit的组件还可以实现虚拟文件系统,写几句 aardio代码来调用PHP执行后输出网页:
import fsys;
import string.list;
import process.popen;
import console;

var prcs = process.popen(
    "E:\php\php-cgi.exe", {"-c";"E:\php\php.ini"},  
    {
        environment = {
            SystemRoot = "E:\";
            REDIRECT_STATUS = 200;
            PHP_SELF = "1.php";
            SCRIPT_FILENAME = "C:\1.php";
            REQUEST_METHOD = "POST";
            CONTENT_TYPE = "application/x-www-form-urlencoded";
            CONTENT_LENGTH = 8;
            GATEWAY_INTERFACE = "CGI/1.1";
            QUERY_STRING = "id=123&test=1";
            HTTP_COOKIE = "uid=1;authcode=123456;";
            SERVER_SIGNATURE = "aardio Web Server/1.0";
        }
    }
);

prcs.write("var=test"); 
for( all,out,err in prcs.each() ){
    console.log( out,err );
} 

prcs.close(); 
console.pause();

另外PHP也提供接口,可以作为一个脚本解释器来运行,下面用 aardio实现的调用PHP执行PHP代码然后输出到浏览器控件的页面上:

import web.form;
/*DSG{{*/
var winform = win.form(text="aardio form";right=713;bottom=652) 
/*}}*/

//创建web窗体
var wb = web.form( winform  );
wb.go("about:blank")
 
import php;
php.print = function( msg ) {
	wb.document.write(msg)
}

//生测测试的PHP文件
phpcode = /*
<?php 
	echo "<p>Hello World</p>"; 
	phpinfo(INFO_ALL); 
?>
*/
 
php.exec( phpcode ) 

//显示窗体
winform.show() 
win.loopMessage();

但很可惜,即使能让PHP跑在桌面程序中,真正用PHP来写桌面程序还是非常困难的,即使是世界最好的编程语言、也有他不适合使用的地方,这个世界不是除了最时髦的就是被淘汰的,除了最成功的都是该死的 






eechen
eechen
比如把PHP和phpMyAdmin打包成为一个解压即用的MySQL管理工具,这个包大小约为15MB,跟依赖JRE和.NET的应用比,不算大吧。关键是还能轻松实现跨平台。
eechen
eechen
操作系统支持6万多个端口,根本不用担心端口不够用。去掉不用的扩展,PHP精简打包后可以小于10MB,这个环境远比JRE和.NET都要小,CLI HTTP Server内存占用也很小,20MB以下。。B/S的运行模式,Web开发者最熟悉不过,直接就能上手,根本不用关心如何处理PHP-CGI返回的数据。界面完全有用户浏览器实现。
0
eechen
eechen
用jQuery实现标签页,一点也不难:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery Tab</title>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0">
<style>
* {
	margin: 0;
	padding: 0;
}
.clear {
	clear: both;
}
.wrap {
	overflow: hidden;
	width: 360px;
	height: 90px;
	border: 2px solid #eee;
	margin: 40px auto 0;
	padding: 0;
}
.menu {
	float: left;
	width: 80px;
	height: 90px;
	background: #eee;
}
.menu a {
	display: block;
	color: #2d2d2d;
	text-decoration: none;
	text-align: center;
	outline: none;
	border-radius: 3px 0 0 3px;
	height: 30px;
	line-height: 1.8em;
}
.menu a:hover, .menu a.active {
	background: #fafafa;
}
.content {
	float: left;
	width: 280px;
	height: 90px;
	background: #fafafa;
}
.content div {
	text-align: center;
	line-height: 5em;
}
</style>
<script src="http://www.oschina.net/js/2012/jquery-1.7.1.min.js"></script>
<script>
$(document).ready(function() {
	$(".menu a").mouseover(function() { //还可以绑定其他事件如:click
		var index = $(this).index();
		$(".content div").eq(index).show().siblings("div").hide();
		$(this).addClass("active").siblings("a").removeClass("active");
	});
});
</script>
</head>
<body>
<div class="wrap">
	<div class="menu">
		<a href="javascript:void(0);" class="active">常规设置</a>
		<a href="javascript:void(0);">操作习惯</a>
		<a href="javascript:void(0);">个性定制</a>
	</div>
	<div class="content">
		<div>常规设置</div>
		<div style="display: none;">操作习惯</div>
		<div style="display: none;">个性定制</div>
	</div>
	<div class="clear"></div>
</div>
</body>
</html>
eechen
eechen
回复 @figer1 : PHP内置HTTP Server和SQLite,所以Web服务器和数据库存储服务都不需要部署MySQL和Apache。用户的数据可以直接存储到本地的SQLite当中。在Linux上,系统的几乎所有运行时数据都可以通过访问文件来获得,PHP拿数据分析后显示不是什么难事。我不在乎这种应用是否是“桌面应用”,只要在某些场合能解决问题即可。
figer1
figer1
回复 @eechen : 即使是你说的只是是简单的把PHP,MYSQL,WEB服务器搬到客户端,浏览器开发桌面界面仍然有很多问题,不会比桌面开发简单和速度快,所以一般桌面软件会用其他界面引擎,而把浏览器控件限制在窗口的部份区域显示网页,如果只是把web服务器搬到客户端电脑上,不能与系统流畅的交互调用系统API操作注册表访问本地文件系统,那无论搬到哪都只能叫“网页”,不能叫桌面软件
eechen
eechen
回复 @figer1 : 这你就错了。我这里说的是为什么桌面开发会没落,而你却一直用桌面应用的标准来衡量B/S应用。面向浏览器开发,门槛和开发速度都远比桌面开发快和简单。我说的把PHP部署到客户端这种思路不是为了完全替代桌面开发,而是可以让Web开发者做某些特定的应用,比如做一个MySQL管理工具、SQLite管理工具等等这些。
figer1
figer1
你完全理解错了,不是说你jQuery做不出来一个简单的选项卡,你码了这么多代码只是实现了一个简单的网页,根本不能算是一个完整的桌面软件的窗口, 你的创建窗口、移动,最小化最大化、阴影,消息循环......这些东西在哪?你没有桌面软件最基本的很多东西。
0
冬日暖阳85
冬日暖阳85

我用Delphi开发了一个ETL工具,有一个管理界面,菜单,展示窗口等。启动后就一直运行。有一个守护进程随操作系统自启动,会监控这个ETL程序是否在运行,没运行就启动一个,但不会重复启动多个。

最长纪录是启动后运行了四个多月,因为操作系统(windows 2003 Server,同时跑了很多服务和应用)要重启。


用PHP能实现这个ELT应用吗?

0
figer1
figer1

@eechen 浏览器写网页方便,不等于写桌面软件界面方便,你真的去写了就知道不方便了,另外端口需要到IANA申请不是你可以随便占用,如果是动态分配的端口这还是会带来麻烦,你说的把web服务器搬到客户端桌面...... 等于在说把飞机放在家里,每天开着上厕所也可以很快,请先明白web服务器不是为桌面软件而生、开放端口在客户端启动服务器还会带来安全问题(别说你这时候你又觉得安全不那么重要了)。

你说的“不用直接关心CGI返回的数据” - 换句话说CGI返回的数据你不能直接拿到了,你还需要用这种方式来做桌面界面,那么就是说功能代码与界面的每次交互都要“搭长途汽车”,加上网页本身的性能问题,本来原来很简单的直接调用,都要“搭长途汽车”GET,POST了,原来的每一句代码都要变成执行千万句代码了。

你说的这一套理论听起来似乎很美,但真正用这种方式去写桌面软件的很罕见。你说的什么跨平台,对桌面软件基本是多余的,在桌面这个平台上,非windows的市场占有率可以忽略。我要执行下批处理、写个注册表、调用个WINAPI,你却坚硬的表示:"不行,一定要跨平台..........",这不是耍流氓么。

另外理论上讲这样那样没意思,这不是问你怎么用jQuery写个桌面透明动画窗口你怎么方便? 别告诉我你写不出来! 桌面软件还经常需要用到多线程,别告诉我你要setTimeout,没事还来个脚本已超时是否继续执行的对话框.......

你不是老说用HTML5,CSS3做界面吗? 我来用 aardio 写个给你看看,就几句代码:

import win.ui;
/*DSG{{*/
var winform = ..win.form(text="webkit浏览器支持库";right=544;bottom=362;border="none")
winform.add()
/*}}*/

//导入webkit支持库
import web.kit.form; 

//创建webkit浏览器窗口
var wbKitView = web.kit.form(winform);

wbKitView.external = {
    hitmin = function(){
        return winform.hitmin();    
    }
    hitmax = function(){
        return winform.hitmax()
    }
    hitCaption = function(){
        return winform.hitCaption() 
    }
    close = function(){
        return winform.close()  
    }
};

wbKitView.html = /**  
<!doctype html>
<html>
<style>
html,body{
    margin:0; 
    background:#fff;
    height:100%; 
}

*{
    -webkit-user-select: none;
}

/*标题栏*/
#header{
    position:absolute;
    top:0px;
    left:0px;
    height:28px;
    width:100%;
    background:rgb(52,152,220);
    cursor:default;
}

/*中间内容栏*/
#container{
    box-sizing:border-box;/*使高度包含padding*/
    height:100%;
    width:100%; 
    padding-top:28px;
    padding-bottom:35px;
    margin:0 auto; 
    overflow:auto;   
}

/*底栏*/
#footer {
    height:35px;
    width:100%;
    position: absolute;
    bottom:0;
    left:0;
    z-index:100;
    background:rgb(239,237,238); 
    text-align:right;
    padding:3px 5px;
    box-sizing:border-box;
}

/*中间内容栏 左侧列*/
#container .lside{
    height:100%;
    width:150px; 
    float:left; 
    background:rgb(110,179,210);
}

/*中间内容栏 右侧列*/
#container .rside{
    height:100%;
    margin-left:150px; 
    background:#FFF;
}

#footer button{
    padding:4px 13px;
    font-size:12px; 
    background:rgb(27,174,93);
    color:white; 
    border:0;
}

#footer button:hover { 
    background:rgb(33,127,188);
    box-shadow: 0 0 5px rgba(81, 203, 238, 1);
    cursor:pointer;
} 

#footer button:active { 
    background:rgb(20,110,170);
    cursor:pointer;
} 

#header .title-bar{
    margin-right:75px;
    padding-left:10px;
    height:28px;
    line-height: 28px;
    font-size:9pt;
    color:#eee; 
} 

#header .ctrls{  
    width:75px;
    height:28px; 
    float:right;
}

#header .ctrls a{ 
    display:block; 
    float:left;
    height:14px;
    font-family:"Marlett";
    font-size:14px;
    padding:4px;
    color:#fff;
    cursor:default;
}

#header .ctrls a[id]:hover{ 
    background:#6ebccf; 
}

#header .ctrls a[id]:active{ 
    background:#FF0000; 
} 

</style>
<body>
    <div id="header">
        <div class="ctrls"> 
            <a id="window-min" onclick="external.hitmin()">0</a>
            <a id="window-max" onclick="this.innerText = external.hitmax()?'2':'1';">1</a>
            <a id="window-close" onclick="external.close()">r</a>
        </div>
        <div class="title-bar" onmousedown="external.hitCaption()"> <span class=title> 我 的 软 件 </span></div>
    </div> 
    
    <div id="container"> 
    <div class="lside"> </div> 
    <div class="rside"> </div> 
    </div>
    
    <div id="footer">
        <button onclick="alert('hello')">点击这里</button>
    </div>
</body>
</html>
**/

//添加可拖动边框
import win.ui.resizeBorder;
win.ui.resizeBorder(winform);

//添加阴影
import win.ui.shadow;
win.ui.shadow(winform);

//限定最大化范围
import win.ui.minmax;
win.ui.minmax(winform);

winform.show();
win.loopMessage();

运行效果:


要不你用 PHP和phpMyAdmin就弄个这么简单的界面看看?弄过吗?


PHP不错,但桌面软件并不是很适合PHP(并不是说不能做),我认识的不少以前用PHP的写桌面软件也改用 aardio,包括PHPRPC/HPROSE的作者aardio也玩的很不错,开源项目斌哥豆瓣客户端的作者以前是用PHP的,接触aardio十几天完成这作品,类似这种界面你用浏览器还真不好弄:

类似这种桌面版的音乐播放器,还需要调用bass.dll libZPlay.dll这些组件,不但是调用WINAPI,还有大量的调用第三方DLL组件的API,这是桌面软件开发中最常见的需求,你用JS,PHP怎么弄?!

类似这种直接调用WINAPI,API的需求是大量的:

var ret,point = ::User32.GetCursorPos({
	int x=0; 
	int y=0;
});

类似这种你用JS,PHP怎么写?!

你说你不能调用WINAPI,不能调用第三方DLL的API,不能自由操作本地文件,不能操作注册表...... 所有东西只能限于你所说的浏览器沙箱 - 亲,那玩意儿不能叫“桌面软件”,你那就是个网页套了个马甲。


figer1
figer1
回复 @eechen : 技术没有国界思想,在aardio圈子里很少提国产这些,我们敬畏所有做的比aardio优秀的编程语言,包括比aardio优秀的PHP, 我从来没有说过aardio做服务端比PHP好,回答的仅仅是你说的“不能做”,我也从来没说过PHP"不能做"桌面软件,其实aardio用户里有不少优秀的PHP程序员,如果你用PHP做桌面软件更好,那是好事,希望可以推广普及!!!请继续努力
eechen
eechen
回复 @figer1 : 就像你说的那样,能写不代表适合写,AAuto在Web上根本无法和成熟的LAMP相提并论.如果真行,我期待国人用AAuto写一个能取代LAMP的服务架构.
figer1
figer1
回复 @eechen : 我希望你不要不要妄言你并不了解的知识,aauto没有哈希表库函数不能写一个discuz论坛你这话就说的太自大了一点,aauto理论上可以写一个web服务器,可以实现一个PHP这样的服务端脚本,carl用aauto实现的ERP企业管理系统全套的服务端客户端都是aauto开发,在群里有人提到把自己所有服务端的PHP用aauto实现并全部替换掉。
eechen
eechen
回复 @figer1 : PHP现在缺少的其实就是一个官方的"代码保护"的功能,像APC的apc_bin_dumpfile和apc_bin_loadfile的功能,用于导出内存中脚本的二进制文件,和运行时载入内存.这样加密密钥就可以保存在导出的二进制文件中,然后PHP用mcrypt扩展实现DES加解密数据,然后把加密的数据存储到SQLite当中.
eechen
eechen
回复 @figer1 : ext下的dll才是PHP的扩展库,ICU这个Unicode库不是必须的,5.3开始才带了这个库.基于PHP CLI Server和HTML部署到客户端B/S架构的应用,更方便跨平台和部署到服务器端,这是AAuto没法比的优势,而且PHP自身的众多优点(库函数,哈希表)这些东西,也远比AAuto应用广泛和简单,就像你没法用AAuto开发一个Discuz!论坛一样.
下一页
返回顶部
顶部