Как переместить приложение PHP.Laravel + VueJS в гибридное приложение?

У меня есть своего рода приложение диспетчера задач, бэкэнд которого написан на PHP, а интерфейс — на vuejs+HTML+CSS, поэтому я понимаю, что довольно легко связать интерфейсную часть в гибридное приложение чем-то как Electron, но я также хочу избавиться от взаимодействия на стороне сервера и позволить всему хранилищу базы данных участвовать на компьютере пользователя.

Я могу представить, что технически подкованный пользователь сможет легко настроить Laravel + MySQL и запустить сервер на своем рабочем столе, но, конечно же, мое окончательное видение состоит в том, чтобы весь процесс установки и обработка данных были невидимы для пользователя.

Я видел диспетчеры задач, которые хранят задачи в файлах, а затем читают и пишут через Electron и JS, но я думаю, что я предпочитаю использовать базу данных, а кроме базы данных, моделей и контроллеров, я думаю, что могу пропустить все дополнительные варианты будущего. это обеспечит запуск этого приложения на сервере.

Любое предложение, как лучше всего это сделать? Желательно без добавления лишнего языка в JS+PHP. Или, если это невозможно, каковы другие альтернативы, чтобы сохранить внешний интерфейс VueJS + HTML + CSS как есть, но перевести код PHP на какой-либо другой язык, который можно скомпилировать для кросс-платформы, или, по крайней мере, Linux + MacOS ?


person Captain Husayn Penguin    schedule 10.04.2018    source источник


Ответы (2)


Я бы предложил удалить файл PHP. Если вы готовы немного поработать над программированием, вам следует перенести каждую функцию PHP в JavaScript и использовать LocalStorage или какую-нибудь другую ORM, удобную для Node, например Водопровод для ваших нужд хранения. Electron — это, по сути, браузер с сервером, привязанным к задней части. Если все, что вам нужно от сервера, это хранить данные, используйте Node. Все остальное потребует от вас дополнительной работы и повышенного риска того, что что-то сломается в будущем, поскольку технологии будут мигрировать друг от друга.

person Holland Wilson    schedule 12.04.2018
comment
Этот ответ и вопрос были размещены между здесь и на форумах Atom / Electron. Stack Overflow не предназначен для длительного обсуждения решений или обзора кода, поэтому обсуждение технических особенностей, вероятно, должно происходить на форуме. Вот ссылка на тему: discuss.atom.io/t/ - person Holland Wilson; 13.04.2018
comment
спасибо за замечания о том, как использовать переполнение стека, я не очень хорошо знаю, какие каналы использовать для каких целей, и я хотел бы иметь другой взгляд на этот вопрос ... - person Captain Husayn Penguin; 14.04.2018
comment
Сообщество здесь инвестирует в формальный стиль вопросов и ответов, записанных для потомков с максимальной справочной ценностью для будущих читателей. Технические детали имеют место, но предпочтительно, чтобы обсуждения планирования разработки части кода происходили по другим каналам. Если есть фрагменты кода, которые непосредственно отвечают на вопрос, ответ можно отредактировать, чтобы включить более полное решение. - person Holland Wilson; 14.04.2018

Итак, я просто прохожу через это сам, и я должен сказать, что это будет зависеть от того, сколько laravel вы используете для отображения своего веб-сайта в настоящее время. Что касается меня, я уже использовал Vue, Vuex, Vue Router, поэтому я просто взял electron-vue и только начал переносить все свои компоненты Vue, файлы js и файлы SCSS. Пришлось изменить несколько каталогов импорта здесь и там, установить компилятор SCSS для веб-пакета и удалить оставшиеся несколько функций Blade, которые у меня были, но после этого у меня был точно такой же интерфейс, как и на моем веб-сайте. Захват контента был таким же простым, как подключение к различным конечным точкам API для данных, использование паспорта для настройки OAuth2 для входа пользователей и кэширование некоторых данных только в локальном хранилище. До сих пор мне не нужно было ничего сверх этого, но с электроном у вас есть (более или менее) полный доступ к ОС, как обычное приложение. Взаимодействие между интерфейсным сайтом и серверным API/серверным экземпляром электрона было более сложной частью, но я просто просматриваю простые учебные пособия и создаю функции, которые мне нужны, одну за другой.

Я бы посоветовал начать с простого переноса интерфейса Vue на vue-electron. Затем, когда у вас есть эта настройка, начните делать вызовы API к своим конечным точкам. Я бы порекомендовал посмотреть несколько видеороликов https://laracasts.com об использовании laravel в качестве API и т. д. (не связанные, просто очень доволен качеством работы Джеффри). Как только вы начнете экспериментировать с использованием laravel в качестве серверной части API, я думаю, вы обнаружите, что все становится на свои места и обретает смысл.

person Xander Luciano    schedule 13.04.2018