【问题标题】:How to move "PHP.Laravel + VueJS" app to Hybrid app?如何将“PHP.Laravel + VueJS”应用程序移动到混合应用程序?
【发布时间】:2018-09-20 00:53:35
【问题描述】:

我有一种任务管理器应用程序,它的后端是用 PHP 编写的,前端是用 vuejs+HTML+CSS 编写的,所以我的理解是,将前端部分捆绑成一个混合体是相当容易的像 Electron 这样的应用程序,但我也想摆脱服务器端交互并允许所有数据库存储参与用户的计算机。

我可以想象一个精通技术的用户能够轻松设置 Laravel+MySQL 并在他或她的桌面上运行服务器,但当然,我的最终愿景是让整个设置过程和数据处理对用户来说是不可见的用户。

我见过任务管理器将任务存储到文件中,然后通过 Electron 和 JS 读取和写入,但我认为,我宁愿坚持使用数据库,除了数据库、模型和控制器之外,我想我可以跳过让该应用在服务器上运行会提供所有额外的未来。

任何建议如何最好地做到这一点?最好不要向 JS+PHP 添加额外的语言。或者,如果这是不可能的,那么保持 VueJS+HTML+CSS 前端不变但将 PHP 代码翻译成可以为跨平台编译的其他语言,或者至少是 Linux + MacOS 的其他替代方案是什么? ?

【问题讨论】:

    标签: web-applications vue.js electron desktop-application multi-device-hybrid-apps


    【解决方案1】:

    我建议删除 PHP。如果您准备进行一些编码工作,您应该将每个 PHP 函数移植到 JavaScript 中,并使用 LocalStorage 或一些节点友好的 ORM(如 Waterline)来满足您的存储需求。 Electron 基本上是一个浏览器,后面有一个服务器。如果您需要服务器做的只是存储数据,请使用 Node.js。随着技术的相互迁移,其他任何事情都会给您带来更多的工作,并且在未来出现问题的风险更大。

    【讨论】:

    • 这个答案和问题都在这里和 Atom/Electron 论坛之间交叉发布。 Stack Overflow 不适合长时间讨论解决方案或代码审查,因此可能应该在论坛上讨论技术细节。这是该主题的链接:discuss.atom.io/t/…
    • 感谢有关如何使用堆栈溢出的评论,我不太熟悉将哪些通道用于哪些目的,我希望对此事有不同的看法......
    • 这里的社区投入了一种正式的问答形式,为后代记录下来,对未来的读者具有最大的参考价值。技术细节占有一席之地,但是对于通过其他渠道进行代码开发的规划讨论来说,它是首选的。如果有直接回答问题的代码 sn-ps,可以编辑答案以包含更完整的解决方案。
    【解决方案2】:

    所以我只是自己经历这个,我不得不说这取决于你目前使用多少 laravel 来显示你的网站。对我来说,我已经在使用 Vue、Vuex、Vue Router,所以我只是抓住了electron-vue 并开始引入我所有的 Vue 组件、js 文件和 SCSS 文件。不得不在这里和那里更改一些导入目录,为 webpack 安装 SCSS 编译器,并删除剩下的几个 Blade 功能,但之后我的前端与我的网站完全相同。抓取内容就像连接到各种 API 端点以获取数据一样简单,使用通行证设置 OAuth2 以进行用户登录,并在本地存储中缓存一些细节。到目前为止,我不需要任何其他东西,但是使用电子,您可以(或多或少)像常规应用程序一样完全访问操作系统。前端站点和后端 api / 后端电子实例之间的交互一直是比较棘手的部分,但我只是通过简单的教程并一一构建我想要的功能。

    我的建议是首先将 Vue 前端移到 vue-electron 中。然后,一旦您完成了该设置,就开始对您的端点进行 API 调用。我建议观看一些 https://laracasts.com 使用 laravel 作为 API 等的视频(不附属,只是对 Jeffrey 的工作质量非常满意)。一旦你开始尝试使用 laravel 作为 API 后端,我想你会发现事情刚刚开始到位并且有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多