Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项

Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项,第1张

概述编者语: 对于一个新事物,如果你花点心机还是有很多收获的。        前两篇,分别讲述了入门和在Linux下部署,现在得说说如何在Linux下开发了。在Linux下开发,相对比在Mac下开发更灵活。        我们先来看看构建基于Perfect的网站服务的编译方式                如图通过引用基础库PerfectLib和数据链接,中间件模块创建你的网页文件,并用makefil

编者语: 对于一个新事物,如果你花点心机还是有很多收获的。

前两篇,分别讲述了入门和在linux下部署,现在得说说如何在linux下开发了。在linux下开发,相对比在Mac下开发更灵活。
我们先来看看构建基于Perfect的网站服务的编译方式

如图通过引用基础库Perfectlib和数据链接,中间件模块创建你的网页文件,并用makefile打包生成你的网站动态库。所以如果你只是在linux下构建项目,你只需要先创建好你的Handlers.Swift即可。对比起在Xcode通过模版或者Framework的方式简洁不少。这里大家会想能否用Swift Package Manager引用Perfectlib的方式对Handlers.swift进行编译?现阶段是不可以的,由于Perfect是用动态库的方式打包Perfectlib而Package Manager不支持动态库的引用,所以如果你想整合Package Manager直接编译你的Handlers.swift是不可以的。(你只能寄望苹果尽快支持)。现在你只能用makefile动态编译。

根据上面的方式我们开始在linux下创建我们的Perfect项目。

1. 关于创建的路径,个人建议放在Github下载的Perfect目录下,因为你需要引用对应的基础库,比较容易管理和调用。这里我在Perfect文件夹创建了一个Demo文件夹,作为新项目的目录。

2. 在Demo文件夹下创建一个PerfectHandlers.swift 和 makefile。建议大家使用IDE进行编辑,这里我建议使用Visual Studio Code,虽然是微软的产品,但是胜在对swift支持较好,对比起atom更稳定。

看看我们的PerfectHandlers.swift,和前面说的一样,代码如下:

[plain]view plaincopy

print?

importPerfectlib publicfuncPerfectServerModuleInit(){ Routing.Handler.registerGlobally(); Routing.Routes["GET",["/","index.HTML"]]={(_:WebResponse)inreturnIndexHandler()} } classIndexHandler:RequestHandler{ funchandleRequest(request:WebRequest,response:WebResponse){ response.appendBodyString("helloswift") response.requestCompletedCallback() } }

而makefile就是我们把Demo编译成动态库的关键文件了,先看看代码:

[plain]view plaincopy

print?

#MakefileforPerfectServer TARGET=Demo OS=$(shelluname) DEMO_SRC="PerfectHandlers.swift" PERFECT_ROOT=../Perfectlib SWIFTC=swift SWIFTC_FLAGS=-frontend-c-module-cache-path$(MODulE_CACHE_PATH)-emit-module-I/usr/local/lib-I$(PERFECT_ROOT)/linked/libEvent\ -I$(PERFECT_ROOT)/linked/OpenSSL_linux-I$(PERFECT_ROOT)/linked/ICU-I$(PERFECT_ROOT)/linked/sqlite3-I$(PERFECT_ROOT)/linked/linuxBrIDge MODulE_CACHE_PATH=/tmp/modulecache linux_SHliB_PATH=$(shelldirname$(shelldirname$(shellwhichswiftc)))/lib/swift/linux SHliB_PATH=-L$($(OS)_SHliB_PATH) LFLAGS=$(SHliB_PATH)-lFoundation-lswiftCore-lswiftGlibc/usr/local/lib/Perfectlib.so-Xlinker-rpath-Xlinker$($(OS)_SHliB_PATH)-shared all:$(TARGET) modulecache: @mkdir-p$(MODulE_CACHE_PATH) $(TARGET):modulecache $(SWIFTC)$(SWIFTC_FLAGS)$(DEMO_SRC)-o$@.o-module-name$@-emit-module-path$@.swiftmodule clang++$(LFLAGS)$@.o-o$@.so clean: @rm*.o

makefile 这里有几个关键的地方需要注意,

a. TARGET是编译目标和你的项目名保持一致,这里就是TARGET = Demo

b. DEMO_SRC 这个是需要把你的所有swift文件包含进去,因为要一起打包到静态库内,你可以参考Examples/Authenticator内的makefile

3. 在终端,编译即可,执行sudo make编译成功如下图

4. 把生成的Demo.so迁移到Perfect/var/www/PerfectlibrarIEs中(改目录的创建和使用请参考http://www.jb51.cc/article/p-yfemoxvn-bac.html)

5. 执行sudo ./perfectServerhttp.sh start 即可
在linux下创建Perfect项目,让Perfect项目的维护和升级更有保障了,而且比在Xcode下创建项目更加简单直接,建议大家上手使用

总结

以上是内存溢出为你收集整理的Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项全部内容,希望文章能够帮你解决Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1075475.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存