Интерпретация PHP в BAS



  • Подскажите, пожалуйста, как можно запустить PHP код в BAS, желательно, чтобы код PHP был прописан в программе, без внешних файлов. Удалось запустить через консоль, используя php.exe, но в этом способе есть недостатки:

    1. Как дождаться выполнения командной строки, чтобы перейти к обработке результатов
    2. Как получить сам результат? Делаю запись логов в файл, но метод так себе)

    Буду благодарен за любую полезную информацию.



  • This post is deleted!


  • @миша нет ничего невозможного, я написал как можно запускать, но есть нюансы. возможно кто-то знает решение как работать проще. если вы не знаете, то смысл в вашем ответе про документацию. я читаю документацию и когда не нахожу ответа задаю вопрос, для этого и существует форум



  • @graf
    https://community.bablosoft.com/topic/4559/как-добавить-новый-встроенный-язык/2

    а при работе через php.exe можно вывод в лог делать?

    0c3ea608-bdc5-42e2-81d3-c9bcf3824110-image.png
    9bd985c1-5920-4f69-8745-b45dfea373c7-image.png

    кстати вызов команд консоли через стандартный модуль работает через создание bat файла.
    можно обращаться к api бас и работать без генерации



  • @tet-vivi said in Интерпретация PHP в BAS:

    а при работе через php.exe можно вывод в лог делать?

    запускал через командную строку, в командной строке делал перевод лога в файл.

    @tet-vivi said in Интерпретация PHP в BAS:

    кстати вызов команд консоли через стандартный модуль работает через создание bat файла.

    делал запуск консоли через node.js и после выполнения задачи процесс вроде как не завершается.



  • @graf

    api bas для прямого вызова команд консоли

    var loc_cmd = "";
    native_async("processmanager", "start", JSON.stringify({location: loc_cmd, working_folder: "", waitfinish: true, arguments: "", version: 2}))!
    
    var result_str = "";
    try{
        var split = _result().split(",")
        result_str = base64_decode(split[0])
        VAR_PROCESS_ERROR_OUTPUT = base64_decode(split[1])
    }catch(e)
    {
        result_str = _result()
    }
    

    api/действие запустить Процесс вполне отвечает 2 пунктам в шапке темы.
    есть опция ожидания выполнения команд, а так же получения результатов.

    можно модуль сделать для удобства.



  • @tet-vivi выглядит красиво, но пока что-то не удаётся добиться результата. в var loc_cmd указываю путь к папке, в которой находится исполняемый файл php.exe? верно? рабочую папку я так понял не обязательно указывать. а в аргументах ключи запуска php test.php?



  • @graf var loc_cmd = "C:\php.exe test.php"

    • working_folder - рабочая папка(откуда команда будет вызываться)
      например можно указать C:\ тогда можно не указывать путь к исполняемому файлу
    • waitfinish - ждать завершения
    • arguments - аргументы консольный команды. например сюда можно вынести test.php
    • location - консольная команда

    код можно использовать через действие выполнить код



  • @graf said in Интерпретация PHP в BAS:

    Подскажите, пожалуйста, как можно запустить PHP код в BAS, желательно, чтобы код PHP был прописан в программе, без внешних файлов. Удалось запустить через консоль, используя php.exe, но в этом способе есть недостатки:

    1. Как дождаться выполнения командной строки, чтобы перейти к обработке результатов
    2. Как получить сам результат? Делаю запись логов в файл, но метод так себе)

    Буду благодарен за любую полезную информацию.

    @support как то спросил, а какой код можно реализовать на php, который нельзя реализовать на node js?
    Это я к тому, что зачем все эти телодвижения? Вы хотите в BAS использовать уже чей то готовый код на php?



  • @Fox said in Интерпретация PHP в BAS:

    @support как то спросил, а какой код можно реализовать на php, который нельзя реализовать на node js?

    оффтоп

    Да, хочу использовать библиотеку апи телеграм https://docs.madelineproto.xyz/



  • @graf said in Интерпретация PHP в BAS:

    @Fox said in Интерпретация PHP в BAS:

    @support как то спросил, а какой код можно реализовать на php, который нельзя реализовать на node js?

    Звучит как начало какого-то фильма о мудреце))

    Кстати да :D

    Да, хочу использовать библиотеку апи телеграм https://docs.madelineproto.xyz/

    Если таки нет аналога на ноде, то, как вариант, поднимите полноценный php сервер с этой либой, а данные передавайте в BAS через get-запросы\websocket\базу\файлы



  • @Fox said in Интерпретация PHP в BAS:

    Если таки нет аналога на ноде, то, как вариант, поднимите полноценный php сервер с этой либой

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



  • @graf said in Интерпретация PHP в BAS:

    xampp

    Средний пользователь вспотеет от всех этих xampp :)) Лучше сделать свой сервер, хотя проще написать код самому без зависимостей.



  • @UserTrue xampp сложнее Open Server?

    @UserTrue said in Интерпретация PHP в BAS:

    Лучше сделать свой сервер, хотя проще написать код самому без зависимостей.

    зачем сервер?



  • @tet-vivi said in Интерпретация PHP в BAS:

    @UserTrue xampp сложнее Open Server?

    А разница? Обычный юзер одурет от всех шагов которые ему надо будет пройти, чтобы запустить это "чудо". При этом он на 99% что-то сделает неправильно и придется настраивать ему самому, вот для это и нужен свой сервер. Но тогда зачем тут бас... )))



  • @graf said in Интерпретация PHP в BAS:

    Да, хочу использовать библиотеку апи телеграм

    Под API телеграмм
    https://core.telegram.org/bots/samples



  • @UserTrue тогда нужно приложения делать с 1 кнопкой. включить/выключить.



  • @tet-vivi видимо вам незнакомо понятие юзабилити и пользовательский опыт.



  • @gomeapat смотрел уже, там всё через bot api работает, а мне нужно через обычное. Запустил всё через локальный сервер, все вопросы решились. Всем спасибо за помощь🤝


Log in to reply
 

  • 12
  • 8
  • 9
  • 3
  • 8
  • 4
  • 3
  • 2