Как встроить сервер в электронное приложение?

Я учусь создавать кроссплатформенное настольное приложение с использованием электроники. У меня есть опыт работы с PHP, поэтому я хочу интегрировать некоторые скрипты в разрабатываемое мной электронное приложение (скрипты в основном предназначены для обработки данных и их сохранения в БД SQLite).

Можно ли этого добиться?

1 ответ

Решение

Вы можете попробовать использовать gulp-connect-php, он запустит встроенный php-сервер при запуске вашего электронного приложения. Как сказал другой пользователь в комментариях, вам нужно объединить предварительно скомпилированные бинарные файлы php в ваше конечное приложение. Вот пример кода, который я использую в своих проектах для запуска некоторых php-скриптов в себе:

main.js

const { app, BrowserWindow } = require('electron');
var path    = require("path");
connect = require("gulp-connect-php");
var port = '8000';
var con = connect.server({
    port: port,
    hostname: "localhost",
    base: path.resolve(__dirname)+"/src/",
    keepalive: true,
    open: false,
    //bin: path.resolve(__dirname)+"/bin/php",
    root: "/",
    stdio: "inherit"
});

  let win;

  function createWindow () {

    win = new BrowserWindow({ width: 800, height: 600 });

    win.loadFile('index.html');

    win.on('closed', () => {

    win = null;
    });
  }

  app.on('ready', createWindow);

  app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
      app.quit();
    }
  });

  app.on('activate', () => {
    if (win === null) {
      createWindow();
    }
  });
Другие вопросы по тегам