eyeos2中文开发手册.doc

上传人:仙人指路1688 文档编号:2392450 上传时间:2023-02-17 格式:DOC 页数:25 大小:181.50KB
返回 下载 相关 举报
eyeos2中文开发手册.doc_第1页
第1页 / 共25页
eyeos2中文开发手册.doc_第2页
第2页 / 共25页
eyeos2中文开发手册.doc_第3页
第3页 / 共25页
eyeos2中文开发手册.doc_第4页
第4页 / 共25页
eyeos2中文开发手册.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《eyeos2中文开发手册.doc》由会员分享,可在线阅读,更多相关《eyeos2中文开发手册.doc(25页珍藏版)》请在三一办公上搜索。

1、EyeOS 2开发手册翻译:zenoleo QQ群:10899268翻译得不好,大家见谅。发现错误可以通过qq联系我。目录0.许可证21.简介21.1.什么是eyeOS?31.2.应用系统32.操作32.1.系统结构42.2.数据库和用户的个人文件夹53.开发环境54.组件64.1.内核64.2.服务64.3.库64.4.框架74.5.引导程序76. MMAP Exec的和extern96.1。MMAP106.2.Exec的107.Structure和功能的应用程序118.Creating我们的第一个应用程序149.Qooxdoo189.1.eyeOS使用Qooxdoo类1811.UserMa

2、nager1912.ProcManager2013.文件系统接口2116.Conversion的Office文档2717.Dbus2718.NetSync Real Time2819.Database连接3019.1。泛型DAO3019.2。直接连接3320.References和进一步阅读330.许可证.本文件的内容正在出版的“创作共用许可证: -非商业性-署名-相同方式共享3.0声明页面 您可以查看许可协议的条款摘要. 1您可以在下面的地址.查看全文本 许可证2 您可以自由:要共享 -复制,分发和传输工作。混合 -适应的工作。在下列情况下:署名 -您必须归因于作者或授权人(但不以任何方式表

3、明他们赞同你或你的工作使用)指定的方式工作。非商业 -您可能无法使用本作品用于商业目的。相同方式共享 -如果您改变,转换,或建立这项工作时,您可以分发的工作,只有在这个相同或类似的 许可证。1.简介本文件的目的是提供必要的在eyeOS环境下开发的知识;,能够构建应用程序,修改现有的应用程序,开发一般的系统组件,并了解其架构。 本文档的读者是技术人员,例如,分析师和Web开发人员。JavaScript和PHP的知识是必需的,以及Web开发的整体理解。了解面向对象编程也将是有帮助的。 1.1.什么是eyeOS?eyeOS是一个在线桌面,为用户提供了类似桌面的界面,类似于计算机上的界面。eyeOS对

4、于开发人员提供了一套工具,允许您开发在线桌面应用程序,通过类似在本地桌面上的方式。在eyeOS的应用程序的开发使用JavaScript的图形库,允许开发人员在更高层的概念工作,例如窗口,按钮,列表等,而不是层或低级别的XHTML。eyeOS的目标同时包括用户和开发人员,应用程序的工作方式类似于本地桌面应用,隐藏在web环境中工作所产生的问题。eyeOS是为这些人:希望他们的用户在一个可控制的方式通过Web界面访问资源,访问控制和用户帐户,有适应环境的能力,以符合他们的公司或组织的形象,并创造所有新特性和功能,以满足他们的需求。1.2.应用系统由于能够开发出具有绝对的确定性,另一个应用程序不干扰

5、你的应用程序高度重视,我们已经制定eyeOS是整个应用系统的发展是尽可能简单。在一定意义上eyeOS是像一个传统的操作系统,其中每个应用程序单独运行它自己的进程和其自身的进程ID(PID),其中每个应用程序可以有不同的执行权限。因此,一个应用程序在eyeOS是一个独立的组件,您可以安装或卸载,就像任何Windows或Linux应用程序。您也可以定义安全规则的设置,以便只有一个用户或用户组可以看到,安装和使用桌面上的应用程序。后面我们将会看到,该系统提供一个API来管理应用程序,用户运行的是,例如,关闭正在运行的应用程序,或运行新的应用。这是该系统能够运行,而不相互干扰,每个应用程序和运行相同的

6、应用程序的多个实例,通过这个API。eyeOS系统处理低级别的操作,例如,当用户关闭一个应用程序的过程中被自动删除。开发商不担心这些细节,但如果需要的话,可以介入和整个系统的改变默认的行为和行动。2.操作从技术上讲,eyeOS是用PHP和JavaScript开发Web应用程序。PHP用来开发服务器端的架构,而JavaScript用于创建和管理桌面和应用程序,显示在Web浏览器客户端。所有的eyeOS的应用,如登录,注册,或计算器,是一个JavaScript和PHP脚本的集合。甚至桌面本身是一个eyeOS的应用程序,可以修改。当第一次加载系统,用户的Web浏览器下载所有必要的JavaScript

7、库,然后开始使用AJAX与服务器通信。这样,在整个用户会话中只有一个页面加载,其余的操作都是通过AJAX请求。在第一次加载时,eyeOS系统运行所需要的JavaScript库被下载。当应用程序第一次运行,具体到每个应用程序的JavaScript文件下载需求。下一次运行应用程序,系统将使用已经在缓存中的JavaScript。当用户在eyeOS运行一个应用程序,一个可视化窗口通常会出现,使用户能与它进行交互。窗口创建一个高层次的JavaScript库Qooxdoo;这很像是GTK、Qt、Java Swing,或类似的用户界面开发工具包。当用户界面要求JavaScript在服务器上执行一个操作,通信

8、库用于发送消息(这是低层次的AJAX请求)给应用程序的创建者所定义的PHP函数。通过本文,eyeOS如何工作将逐渐变得更清晰,这将给你一个非常有用的系统的概述。应用程序运行在与其他应用程序隔离的环境中。因为它执行的任何处理都必须通过操作系统,所以系统可以保证安全性。在任何情况下,开发人员能够从系统访问资源或信息(指图片、css等),而无需使用系统的API(因为没有人会检查权限或操作安全)。2.1.系统结构在eyeOS,组件和系统功能通过JavaScript和PHP划分。有一些JavaScript端的功能,简化应用开发,包括了必须使用的应用程序的特定结构。同样,在PHP运行的服务器端,也有库和A

9、PI。 正如你可以看到,应用程序分为两部分的部分,在客户端(浏览器)上运行和在Web服务器上运行的部分。客户端上运行的部分,通过JavaScript描绘用户界面。当你需要做一些操作,例如读取数据库,你可以通过API调用一个服务器端的PHP函数。 2.2.数据库和用户的个人文件夹 在eyeOS所有组件都是模块化的,就是说eyeOS系统包含一系列的组件,如用户管理。组件的内部划分成更小的元件,如公共用户管理API,这个组件处理用户的软件,并管理用户的数据。下一个元件,是负责响应保存数据的请求,接收用户的数据,被称为provider。provider是组件的一小部分,其任务是保存eyeOS的数据。这

10、种模块化使我们在编写整个系统时都无需担心在后端的数据库类型。如果我们要使用不同类型的数据库,那么我们可以简单地开发一个新的provider,而无需接触组件或应用程序的其余部分。正因为如此,当有人问你eyeOS的用户保存在哪里,实在是没有明确的答案。事实上,一切都取决于所使用的provider。默认是使用MySQL数据库,但是我们可以很容易地开发Oracle或微软SQL Server的provider,甚至非关系引擎的provider。eyeOS系统内用户的文件存储在服务器的文件系统。稍后,我们将彻底分析eyeOS目录结构;现在重要的是,要了解用户的文件没有存储在数据库中。3.开发环境由于eye

11、OS应用在任何文本编辑器和Web浏览器的JavaScript和PHP,开发不够,开始发展。然而,一个共同的文本编辑器没有语法着色,缩进或代码完成功能。虽然它是可能的发展离不开这一切,它不会是理想的环境。由于eyeOS是一个Web应用程序,它需要一个Web服务器,数据库,和现代的Web浏览器运行。一个典型的设置是为开发本地计算机上安装Web服务器,使他们不需要上传到外部服务器来测试。在商业环境,这是典型的开发团队内部开发服务器上安装有eyeOS,使发展可以以协作的方式进行。eyeOS将被安装在Web服务器,请阅读eyeOS安装手册的要求和建议的软件和如何安装eyeOS。至于Web浏览器,Fire

12、fox是建议,因为它是免费的,跨平台,并支持扩展或添加功能到浏览器的插件使用 。它也有很大的尊重和对Web标准的快速运行JavaScript。Firefox可以从:要添加调试代码,错误报告,以及许多其他功能,真的是有用的Web开发Firefox的功能,你应该安装Firebug扩展: 对于一个代码编辑器中,有很多在互联网上免费提供节目。如Notepad+,NetBeans,jEdit的等,将是足够的。4.组件前面已提到,有PHP API提供给应用程序,事实上也有在PHP端的组件,这些是: 目录:4.1。内核4.2。服务4.3。库4.4。框架4.5。引导程序4.1.内核eyeOS内核是管理的其他组

13、件的组件。由于eyeOS是一个Web应用程序,内核并不像普通操作系统一样,但内核是核心组件,它管理其他组件的实例化,形成了eyeOS的引擎。对于开发者,内核是一种不可见的组件;你不需要直接与它进行交互,所以对它的研究将不会很有趣。4.2.服务服务是系统的组件,是eyeos运行必须的组件,并且管理eyeos内部的功能。例如,一个组件,它负责管理用户,它是一个服务。一个组件,它负责压缩zip文件,它不是一个服务,因为它不是eyeOS必须的组件。大多数服务会在后面分别更深入地讨论,例子包括进程管理器或用户管理,因为两者都是eyeOS必要的内部组件。所有的服务都有一个公共API,供应用程序访问,使他们

14、能与系统进行交互,例如通过用户服务的公共API创建一个新用户。4.3.库库负责对eyeOS系统提供支持和保障。库中的一个例子是为utf8的支持。因为PHP目前不支持UTF8,在eyeOS有一个库,添加这种支持。库是使系统工作所必不可少的,但与服务有区别,区别在于他们没有管理eyeOS中的任何东西,他们在一个较低的层次,提供支持和保障,确保运行eyeOS时,一切都在正确的环境中。4.4.框架框架是系统中的最高层的组件,也就是说,它们更接近应用并进一步远离低层次的细节。框架是不必要的组件,添加eyeOS功能,但没有对eyeOS自身进行更改。例如用户管理不是一个框架,因为它是一个服务。例如,一个框架

15、,负责转换Office文档成为应用程序使用的其他文件格式,另一个例子是解压Zip文件的框架。4.5.引导程序在所有操作发生之前,引导程序负责加载整个系统。当用户打开时按需加载应用程序,每次请求,所有的库、服务和框架都加载一次,这样每次用户运行一个程序时,所有组件都已经被加载并且可用。配置文件eyeOS /system/ conf /boot.xml中,包含加载项和加载顺序的配置。语法是一系列的元素,像这样. .library exceptions 20 在每个元素有子元素指定组件类型、名称和加载优先级。加载优先级是什么决定了组件的加载顺序。默认情况下所有组件都具有优先级为0,按字母顺序加载。如

16、果你想加载其他组件之前加载一个组件,只要设置其优先级为更大的数(10,20,30等)。 因此,可见,开发者有一系列的层,运行在程序底部,并保护他们远离低层次的细节,如PHP版本或安装的模块。然后应用程序可以把精力集中在功能和业务逻辑上。 5.目录结构重要的一点是要知道系统的结构,因此,你才能找到配置文件和其他组件。如果你看一下组成eyeOS的文件,你会看到,在第一级目录中,我们只有的index.php、settings.php和名为eyeOS的一个目录。Settings.php是一个配置文件。在其中的定义,是可以改变eyeOS行为的常量。例如数据库连接器的配置,以及许多其他的东西。在安装说明书

17、中包含此文件用到的指令。index.php文件与eyeOS系统的所有部分相关。每当一个请求发送到eyeOS或者运行一个应用程序,或执行任何操作,都要通过这个文件。eyeOS目录,被称为“eyeroot”或“root”,包含整个eyeOS,包括所有用户的数据。在这个目录里有一个名为htaccess的文件,其中有一条“拒绝所有”的规则,这是使其无法从浏览器访问这个目录。只有通过index.php文件可以访问eyeOS目录下的文件。在eyeOS目录中有以下的目录树.apps/extern/extras/system/tests/users/workgroups/Apps/在Apps目录里包含在eye

18、OS桌面上运行的应用程序或桌面本身。每个应用程序都有自己单独的目录,例如计算器应用程序在eyeos/apps/calculator目录里。extern/因为只有index.php文件是可以从外部访问,eyeOS必须有一些方法,使JavaScript文件,CSS,图片等,可用于浏览器,以便浏览器可以加载它们。这是extern目录存在的目的。需要通过浏览器访问的所有资源必须放置在extern目录,或其子文件夹内。当index.php文件收到这样的请求“index.php?extern=some_image.jpg”,extern目录下的some_image.jpg文件的内容被返回给浏览器,以便它可

19、以被加载。这将在以后更深入地讨论。extras/在此目录中,包括需要安装或配置eyeOS的所有脚本和文件,但不是eyeOS运行所需的文件。例如首次创建数据库的SQL文件。之后,他们没有在任何地方使用。system/system目录包含所有的系统组件,这是前面讨论过的。在system目录中,有frameworks目录,其中存放着框架,bootstrap目录包含引导程序,conf目录包含一般的系统配置,管理员可以修改,kernel目录存放着库和服务。tests/test目录包含系统的单元测试,也许不受应用程序开发人员所喜爱。users/在users目录中为每个用户建立了一个子目录。这个子目录包含用

20、户的文档和设置文件。例如,JoeyBloggs用户的目录是eyeos/users/JoeyBloggs。workgroups/workgroups目录包含用户的工作组。如果用户创建了一个名为“myGroup”的组,这个组的目录为eyeos/workgroups/myGroup。6.MMAP,Exec和extern在开始开发应用程序之前,有三个与eyeOS内部运行相关的概念必须了解,因此,他们有专有的一章来介绍。MMAP是一个服务,extern是一个服务,exec是一个JavaScript函数。6.1.MMAP正如我们在第5章中看到,所有对eyeOS的请求必须通过index.php文件传递。这意

21、味着,index.php文件根据请求的类型执行一个动作。您可以发送GET或POST变量到index.php。MMAP是系统服务,负责识别请求的类型、决定执行组件或调用其他eyeOS服务。MMAP与一个插件系统协同工作,对每个MMAP可管理的请求类型,MMAP都有一个相应的插件。当一个请求发送到index.php,index.php文件调用MMAP,然后MMAP从所有插件中找出一个能够处理该请求的插件。例如,有一个插件,如果请求没有任何GET参数,即用户访问没有任何参数被传递到index.php,那么该插件显示登录窗口。还有另外一个插件,如果参数extern存在,那么它会读取指定文件的内容,并返

22、回到浏览器。eyeOS里还有其他类型的请求,例如,当你想运行应用程序,一个请求将发送到index.php,该请求传递要执行的应用程序的名称,checknum(当前运行的进程的ID PID),和任何其他参数。完整的URL将类似于下面这样. MMAP运行应用程序,并收集其他类型的消息,例如,当一个应用程序的JavaScript要与应用程序的PHP通过AJAX沟通,以执行动作,如读取数据库(将有一个消息被MMAP收集到)。这些请求大多是不可见的,开发人员构建应用程序并不需要了解他们。然而,了解所有到index.php的请求,和MMAP决定对每个请求做什么(是有益的)。6.2.ExecExec是一个在

23、JavaScript中通过eyeOS对象调用的函数。JavaScript中的eyeOS对象是应用程序用来访问基本系统功能的对象,例如运行应用程序。在JavaScript中,应用程序可以在任何时候调用exec函数,如下:eyeos.execute(myApplication, checknum, args); 第一个参数是要执行的应用程序的名称,第二个参数是当前应用程序进程的标识符,第三个参数是应用程序执行时必须得到的参数。请注意args可指定为NULL,或可以从函数调用中省略。请求到达index.php文件,并将它传递给mmap,然后找到可以管理应用程序执行的插件。运行应用程序的插件在用户的进

24、程表中插入一个新的进程,读取应用程序的JavaScript内容,并返回到浏览器。然后运行该应用程序并在eyeOS桌面上显示。7. 应用程序的结构和功能到目前为止,我们已经知道系统的工作原理和应用程序分为两个部分,一部分是JavaScript文件,创建了用户界面,另一部分是PHP文件,包含任何所需的服务器端处理。如数据库访问。应用程序存放在eyeOS/apps/目录下。目录应该具有和应用程序相同的名字,例如:notepad应用程序应放在eyeOS/apps/notepad目录下。在这个目录中至少有两个文件,分别是notepad.js和notepad.php。就像你想的那样,notepad.js文

25、件里存放的JavaScript代码用来创建用户界面,notepad.php包含业务逻辑,PHP文件内是可以被Javascript文件调用的函数,这些函数通过eyeOS的API用AJAX调用。当调用PHP函数时JavaScript有传递参数的能力,该功能由系统提供。如果PHP函数返回数据,数据会返回到发起请求的JavaScript中去。所有的这些都是通过callMessage功能函数实现,是eyeOS对象的一部分。其语法为:eyeos.callMessage(checknum, funtionname, args, function(e) alert(e););其中第一个参数是当前的应用程序的c

26、hecknum,函数的名称是根据PHP文件中的函数所命名的,args是要发送到该函数的参数,最后,我们定义了一个函数,在调用结束时执行 - 该函数称为回调函数。在上述例子中的回调函数只是简单地提示从PHP函数返回的值。 组成应用程序的JavaScript和PHP文件(在我们的案例中是notepad.php和notepad.js),必须有一个让应用程序工作的具体结构。对于notepad.js所需的最低限度的代码如下. function notepad_application(checknum, pid, args) var app = new eyeos.application.notepad(

27、checknum, pid, args); app.drawGUI(); qx.Class.define(eyeos.application.notepad, extend: eyeos.system.EyeApplication, construct: function(checknum, pid, args) arguments.callee.base.call(this, notepad, checknum, pid); , members: drawGUI: function() / code to create the GUI is here. ;第一个代码块定义了一个名为notep

28、ad_application的函数,这个函数是应用程序的入口,在程序运行时被调用。下面定义的那个类代表该应用程序,他是eyeOS的一个应用程序,它继承自eyeos.system.EyeApplication。notepad_application函数定义和执行了drawGUI方法。drawGUI用其中的代码来创建应用程序的图形用户界面(GUI)。PHP文件中最少的代码是.在这里,我们定义一个抽象类(它不能被实例化)称为NotepadApplication,他继承了EyeosApplicationExecutable。在execmodules一章,你会知道,应用程序可以从这个类扩展。如果您想添加

29、一个函数到PHP文件中且JavaScript可以调用它,将关键字“public”和“static”放在函数名前面。该函数必须放置在类定义中,如下.现在“myfunction”是可以使用的函数名,可以在您的应用程序的JavaScript端通过callMessage调用,如同前面看到的那样。需要注意的是,在应用程序目录中没有提及的info.xml文件,在原来的开发手册中有说明。这是用来指定应用程序的名称,图标,描述,作者,和其他应用程序的元数据。8.创建第一个应用程序实践可以解释一切,我们将开发一个应用程序,它从服务器显示当前的日期和时间,当按下“Get server time”按钮时。1.在ap

30、ps目录下创建一个名为servertime的目录。2.在servertime目录下创建一个名为servertime.js的JavaScript文件3.在这个文件中放入下面的代码. / Create main function. function servertime_application(checknum, pid, args) var app = new eyeos.application.servertime(checknum, pid, args); app.drawGUI(); / Define class for this application. qx.Class.define(

31、eyeos.application.servertime, extend: eyeos.system.EyeApplication, construct: function(checknum, pid, args) arguments.callee.base.call(this, servertime, checknum, pid); , members: drawGUI: function() / Create the window. var mainWindow = new eyeos.ui.Window(this, tr(Server Time); / Set the layout ma

32、nager the window is to use to Vertical Box. mainWindow.setLayout(new qx.ui.layout.VBox(); / Create label to display the time and add it to the main window. var timeLabel = new qx.ui.basic.Label(Press the button below to see the Server Time.); mainWindow.add(timeLabel); / Create button to call the PH

33、P function to get the time. var aButton = new qx.ui.form.Button(Get Server Time); / Add listener to do something when the button is clicked. aButton.addListener(click, function() eyeos.callMessage(this.getChecknum(), getTimeFromServer, null, function(theTime) timeLabel.setValue(The time is : + theTi

34、me); , this); , this); / Add the button to the main window. mainWindow.add(aButton); / Set min width and height of the window to stop it being too small. mainWindow.setMinWidth(300); mainWindow.setMinHeight(150); mainWindow.setAllowMaximize(false); / Remember to open the window, otherwise nothing wi

35、ll show on the screen. mainWindow.open(); );4.创建一个名为servertime.php的文件5.在这个文件中放入下面的代码. . 在eyeOS桌面上运行应用程序,您需要沿着屏幕上方找到“Application”菜单/选项卡,然后选择“添加应用程序”,并点击列表中servertime下面的绿色加号(+)按钮。添加后你可以通过点击它运行该程序。所以,像前面的章节中说明的那样,程序是由两个文件组成,servertime.js和servertime.php。在JavaScript文件中的代码用来创建用户界面,并包含一个事件监听器在按钮被点击时做一些事情。P

36、HP文件包含的代码从服务器获取日期和时间。在JavaScript文件中的事件监听器使用callMessage的API来调用PHP文件的getTimeFromServer函数并获取返回值。这样做使用AJAX,没有页面刷新。在JavaScript中使用qooxdoo(简称“QX”)的图形库。Qooxdoo允许你开发一个GUI,通过使用JavaScript,而不是XHTML和CSS。在qooxdoo里,您通过窗口工作,按钮和其他元素被添加到窗口。9.Qooxdoo正如我们在前面的章节中看到的,qooxdoo是一个图形库,用来创建用户界面,如同你使用QT,GTK,或Swing库。Qooxdoo独立于e

37、yeOS,是一个自由软件项目,它的网站是 http:/qooxdoo.org/eyeOS已经包括Qooxdoo,因此开发人员不必下载或添加任何东西。eyeOS上的所有应用程序都是用QX图形库开发的。阅读教程或qooxdoo API文档是至关重要的,这使你能理解并使用QX库进行开发。Qooxdoo是完全面向对象,并允许您定义类,做继承,和做所有典型的面向对象的事情。API和其他文件可以在这里找到http:/qooxdoo.org/documentation9.1.eyeOS中使用的Qooxdoo类虽然eyeOS大多采用标准Qooxdoo类,例如用qx.ui.button画一个按钮,也有一些eye

38、OS扩展qooxdoo类的特殊情况,创建我们自己的附加功能。例如eyeos.ui.Window类是qx.ui.Window的扩展。问题是,作为一个应用程序开发人员,你会使用MyWindow = new qx.ui.Window()获取一个窗口,但需要插入某个地方,因为qooxdoo架构中,所有要显示的部件(widgets)必须插入上层部件中。但是,桌面上的窗口的上级是什么部件?事实上,这确实有点复杂。为了让开发人员不必担心这一点,我们创建eyeos.ui.Window,实例化并调用Open方法时,窗口会自动插入到桌面上显示,而开发人员无需知道谁是该窗口的上级部件。目前,开发者做正常的应用程序时

39、,无需担心比创建eyeos.ui.Window更多的情况,因为剩余的扩展类用于eyeOS内部。10.应用程序模块(execmodules)我们已经看到了,您可以在PHP应用程序中添加静态公共方法,从JavaScript由callMessage调用。不过,所有的应用都有很多方法,例如,PHP中应该有一个“关闭”函数用来关闭应用程序。当你开发一个全新的应用程序时,每次都重新写这个函数将是一件痛苦的事,这就是为什么应用已经有一些这样的函数定义在PHP父类EyeosApplicationExecutable。这些函数都可以使用callMessage的JavaScript调用,就像由开发人员定义的任何其

40、他函数。这意味着,应用程序现在已经有一些可以执行的PHP函数,虽然开发者没有在PHP应用程序中定义任何东西。在eyeOS的默认函数位于 eyeos/system/Frameworks/Applications/Executables/EyeosModuIes/例如,如果您打开eyeos/system/Frameworks/Applications/Executables/EyeosModules/ContactsExecModule.php,在里面你会发现一系列的功能,可在你的应用程序中通过callMessage执行。例如:public static function getAllContac

41、ts($params)如果你想在你的程序中通过JavaScript运行它,你需要写如下代码. eyeos.callMessage(checknum, _Contacts_getAllContacts, params, function();callMessage只是像正常的,但通过PHP函数的名称来运行,因为它在ContactsExecModule里,你必须在函数名前的加入包的名称。包的名称必须有两个下划线在它的前面和一个在它的后面(即_Contacts_)。许多应用程序使用这些功能,以避免重复完全相同的代码。11.用户管理用户管理(UM)是一种服务,允许eyeOS用户服务与eyeOS应用进行

42、交互。它的一些功能包括创建新用户,列出所有用户,删除用户等。像其他eyeOS服务一样,所有调用都要检查运行操作的用户的权限,例如,通过调用UM,一个非管理员用户无法创建新用户或删除现有的用户。在一个PHP的例子里,我们可以使用UM查看用户是否存在. $exists = false; try $MyUManager-getUserByName ($username); $exists = true; catch (EyeNoSuchUserException $ e) 如果用户不存在,那么当你调用getUserByName函数时它会导致一个异常,这又导致$exist=true被跳过,最终将返回假

43、。我们也可能使用UM去获取系统中的所有用户的列表. $users = UMManager:getInstance()-getAllUsers();用户被填充到$users数组,数组中的每个对象代表系统中的一个用户,例如获得的第一个用户的用户名,你可以这样做. $username = $users0-getName();12.进程管理进程管理是eyeOS的服务,提供了一个API给应用程序,使他们能够运行应用程序,列出的进程,关闭进程等,用户可以只列出了属于他们的会话进程,而不包括另一用户的会话。进程管理器有一个方法来获取当前进程,使应用程序可以调用自己的进程,并操纵它,例如关闭当前进程。与每个进程相关联的用户权限,使用户对每个正在运行的应用程序可以有不同的权限,如同在传统的操作系统上。如果应用程序要得到当前用户是谁,它必须使用用户管理器得到当前进程,然后从那里提取进程的权限和用户,例如. $currentUser = ProcManager:getInstance()-getCurrentProcess()-getLoginContext()-getEyeosUser();这样,通过进程管理器,开发者调用当前进程,然后获

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号