Препроцессировать PHP в любой текстовый документ с помощью File Watcher в продукте JetBrains

Существует так много языков предварительной обработки или компиляции, каждый из которых имеет свою собственную кривую обучения, например. (scss, sass, jade, typescript), и число, похоже, не уменьшается.

Было бы здорово, если бы разработчики могли выполнять PHP для создания любого текстового документа так же, как вышеприведенное компилируется в нативный (html, css, js) с помощью файловых наблюдателей.

Преимущества

  1. Нет дополнительной кривой обучения.
  2. Один язык.
  3. Уменьшите повторяющееся кодирование.
  4. Генерируйте свой код за меньшее время с меньшим количеством ошибок
  5. Создавайте согласованный код, соответствующий вашим стандартам.
  6. больше времени сосредоточьтесь на планировании нашего приложения.

ЧТО Я ПРОБОВАЛА

Отредактировав исходный код Jade и изменив расширение с html на php.

File:       jade.js

Location:   npm\node_modules\jade\bin\

Line:       249

Мне удалось выполнить файл Jade на PHP

введите здесь описание изображения

КАК, Я ДУМАЮ, ЭТОГО МОЖНО ДОСТИЧЬ

таких транспиляторов может быть несколько.

шаблон-css -> компилируется в css

шаблон-php -> компилируется в php

template-js -> компилируется в javascript.

и так далее.

Средний синтаксический анализатор или наблюдатель за файлами будет выполнять в основном 3 задачи.

  1. Замените расширение файла с template-filetye на php.

  2. Выполняет новый файл file.php против исполняемого файла PHP или парсера, необходимого так же, как в браузере.

  3. Вернуть наблюдателю файлов указанный текст.

Это код в файле jade.cmd

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\node_modules\jade\bin\jade.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  "%~dp0\node_modules\jade\bin\jade.js" %*
)

Примечание. Я не понимаю командный файл. Я не модифицировал этот файл, но сказал, что он может быть полезен любому, кто хочет помочь.

Вдохновение

http://www.codesmithtools.com/product/generator

Ссылки, которые МОГУТ быть полезными

http://php.net/manual/en/function.exec.php

http://php.net/manual/it/install.windows.commandline.php

Любая помощь в создании файлового наблюдателя или любого другого подходящего имени будет принята с благодарностью.


person Koofah    schedule 19.06.2016    source источник


Ответы (1)


Если вы ищете только способ просмотра и выполнения php-файлов из IDE при их изменении, то у вас уже есть все необходимое.

Взгляните на этот наблюдатель за файлами в PhpStorm.

Этот наблюдатель за файлами будет запускать $PhpExecutable$, что в моем случае преобразуется в /usr/lib/php каждый раз, когда файл в Working directory изменяется, и помещает STDOUT в файл в том же каталоге, но с новым расширением .txt.

IDE автоматически группирует входной и выходной файлы, чтобы ими было легче управлять.

Если вам нужно что-то более продвинутое, вы всегда можете написать собственный скрипт, который можно запустить вместо $PhpExecutable$, и использовать управление выводом php.

Например:

#!/usr/bin/env php
<?php

ob_start();
// ... preprocess? init some variables?
include $argv[1];
$output = ob_get_clean();
// ... postprocess $output?
echo $output; // echo to STDOUT, or to file with file_put_contents(preg_replace('/\.php$/', '.txt', $argv[1]), $output);
person Michal Bieda    schedule 22.06.2016
comment
Я получаю недопустимый исполняемый файл. - person Koofah; 23.06.2016
comment
@Koofah звучит так, как будто он не может найти исполняемый файл php, убедитесь, что он указан в системном пути. Если это не удается, вы можете ввести абсолютный путь для php (в моем случае /usr/bin/php в Ubuntu может отличаться на Mac, других системах Linux или Windows) - person Michal Bieda; 23.06.2016
comment
Спасибо. Это работает, как и ожидалось, я указал полный путь к исполняемому файлу. у меня есть 2 вопроса. 1. в каком расширении я должен сохранить пользовательский скрипт. 2. В пользовательском сценарии я хотел бы выполнить, например. file.template-txt в .txt и file2.template-css в .css - person Koofah; 23.06.2016
comment
Я не знаю расширение для сохранения пользовательского файла. Я продолжаю получать сообщения, происходящие при выполнении исполняемого файла PHP Watcher, который не может запустить файл. ошибка = 193, %1 не является допустимым приложением для Win 32. - person Koofah; 23.06.2016
comment
В Windows вы должны установить исполняемый файл Program в php и поместить свой собственный скрипт в поле Arguments, чтобы он выглядел примерно так: myCustomScript.php $FilePath$ - person Michal Bieda; 23.06.2016
comment
оно работает . Спасибо. Хотелось бы, чтобы многие разработчики могли использовать это для записи нескольких файлов. В настоящее время я использую его для написания моего html, css js и даже php файла только с PHP. Шаблонирование скал. - person Koofah; 23.06.2016
comment
можно изменить пути вывода для обновления, например, template-php на .php , template-css на .css, используя регулярное выражение? ИмяФайлаБезРасширения. ($fileExtension) без шаблона динамически?. Звучит немного натянуто, но возможно ли это? - person Koofah; 23.06.2016
comment
он не складывается, как структуры каталогов, так как я использую метод размещения содержимого файла, который выводит в новый файл - person Koofah; 23.06.2016