@ie200

Как совместить golang с php?

Всем здравствуйте!

У меня многие пытаются узнать, можно ли совместить Golang с PHP и на оборот. Но... на просторе интернета мало информации, или же я плохо ищу. Однако, в последнее время я задался таким вопросом. И хотелось бы узнать правду.

Давайте представим такую ситуацию. Вы реализовывали MVC на PHP, к примеру: Систему для анализирования ассоциативных семантических ядер. После чего вы столкнулись с проблемой обработки данных. База данных отправляет ответ за 0.003 секунды. Но... из-за обработки данных загрузка пользовательской страницы составляет каких-то от 14 до 20 секунд. Понимаю, это не приемлемо!

Поэтому вы прибегаете к помощи Ajax запросов или же к разделению сервисов на Сервер и Пользователь. После чего чего загрузка пользовательской страницы составляет, примерно те же цифры, от 10 до 15 секунд.

Забыл сказать, что база данных отвечает вам примерно в 1 миллион строк. Что существенно влияет на обработку данных. Поэтому такая долгая загрузка пользовательской страницы.

Теперь поговорим о разделении сервисов на Сервер и Пользователь. Вы решаетесь на тестирования новых неведомых наук. Думаете что многопоточный язык Golang спасет весь мир. Значит появляется задача о внедрении данного языка в вашу систему, которая является обычным MVC.

После чего встает вопрос: как именно это сделать и как реализовать?

Есть некая архитектура директорий вашего проекта, которая должна существовать в экосистему (строго):
|- app /
    |- core /
        controller.php
        model.php
        route.php
        view.php
    |- lib /
        |- messages /
            errors.php
        |- security
        |- validation
        database.php
        vendor.php
    init.php

|- build /
    |- controllers 
        home.php
    |- models/
        |- home
            index.php

|- private /
    |- config
        routes.php
    |- database
        name_database.sql

|- public /
    |- api /
        connect.php
    |- docs
    |- res /
        |- src

|- template /
    |- errors /
        404.html
    |- layouts /
        default.html
    |- views /
        |- home /
            index.html

|- web /
    |- css
    |- js
    .htaccess
    index.php
.htaccess


Вам не обходимо внедрить Golang в PHP, для отправки запросов к базе данных, обработки данных, отправки ответа к пользовательской странице, которая написана на PHP. Но... у вас затруднение в реализации данной идеи.

Да, можно реализовывать с помощью websocket. Все же охота увидеть это не на словах, а на деле!

А теперь вопросы по реализации:
  1. Не могли бы вы предложить способ внедрения Golang в PHP?
  2. Не могли бы вы привести пример данной реализации?
  3. Какие еще альтернативы можете предложить? К примеру, совмещение Vue с PHP.
  • Вопрос задан
  • 312 просмотров
Пригласить эксперта
Ответы на вопрос 2
@FanatPHP

загрузка пользовательской страницы составляет, примерно те же цифры, от 10 до 15 секунд.
база данных отвечает вам примерно в 1 миллион строк
встает вопрос: как именно это сделать и как реализовать?


Два простых шага:
1. Оторвать руки тому, кто вот это всё написал, и засунуть их ему туда, откуда они у него растут.
2. Нанять PHP junior-a, который уже освоил базовый синтасис SQL и умеет запрашивать из БД нужное количество строк.

ЗЫ.
Какие еще альтернативы можете предложить? К примеру, совмещение Vue с PHP.

Внимательно присмотреться к тому, кто подаёт такие идеи для решения этой проблемы.
Ответ написан
Delgus
@Delgus
Ну сперва такие идеи.
1. Оптимизировать запрос, доставать только нужную информацию
2. Если задача долгая можно реализовать очередь. Задачи кидаются в очередь, потом по вебсокету доставляются на клиента.
3. Если данные одинаковые - кэшировать их

Но... из-за обработки данных загрузка пользовательской страницы составляет каких-то от 14 до 20 секунд


А вы точно уверены что данные долго обрабатываются, может их слишком много и поэтому они долго доставляются, или клиент их очень долго рендерит по тем же причинам. Сколько вес json?

А может вам оптимизировать алгоритм обработки данных? может проблема в обработке, цикл в цикле например у вас?

Есть некая архитектура директорий вашего проекта, которая должна существовать в экосистему (строго):


ПОЧЕМУ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы