【问题标题】:Preprocess PHP to any text document using File Watcher In JetBrains Product使用 JetBrains 产品中的 File Watcher 将 PHP 预处理为任何文本文档
【发布时间】:2016-06-19 22:56:00
【问题描述】:

有很多预处理或编译语言, 每个都有自己的学习曲线,例如(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 中了

我认为如何实现这一目标

可能有多个这样的转译器。

template-css -> 编译成 css

template-php -> 编译成 php

template-js -> 编译成 javascript。

等等。

中间解析器或文件观察器将主要执行 3 个任务

  1. 将文件扩展名从template-filetye替换为php。

  2. 针对 PHP 可执行文件或解析器执行新的 file.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" %*
)

注意:我看不懂cmd文件。 我没有修改此文件,但告诉过它可能对任何想提供帮助的人有所帮助。

灵感

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

可能有用的链接

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

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

任何有关构建文件监视程序或任何适当名称的帮助将不胜感激。

【问题讨论】:

    标签: php phpstorm webstorm jetbrains-ide file-watcher


    【解决方案1】:

    如果您只是在寻找一种在 IDE 更改时观察和执行 php 文件的方法,那么您已经拥有了所需的一切。

    看看这个file watcher in PhpStorm

    这个文件观察器将运行$PhpExecutable$,在我的例子中,每次Working directory 中的文件发生更改并将STDOUT 放入同一目录中的文件时,它都会转换为/usr/lib/php,但具有新的扩展名.txt

    IDE 会自动group input and output file,因此更易于管理。

    如果你需要更高级的东西,你总是可以编写自己的脚本来代替 $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);
    

    【讨论】:

    • 我得到无效的可执行文件。
    • @Koofah 听起来好像找不到 php 可执行文件,请确保您的系统路径中有它。如果失败,您可以输入php 的绝对路径(在我的情况下,/usr/bin/php 在 Ubuntu 上,在 Mac、其他 linux 系统或 Windows 上可能不同)
    • 谢谢它按预期工作,我定义了可执行文件的完整路径。我有 2 个问题。 1.我应该在哪个扩展中保存自定义脚本。 2.在自定义脚本中,我想执行例如file.template-txt 到 .txt 和 file2.template-css 到 .css
    • 我不知道保存自定义文件的扩展名。我在执行观察者的 PHP 可执行文件时不断发生“无法运行文件。错误 = 193,%1 不是有效的胜利32 应用程序。
    • 在 Windows 上,您应该将 Program 设置为 php 可执行文件并将您的自定义脚本放在 Arguments 字段中,使其看起来像这样:myCustomScript.php $FilePath$
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多