【发布时间】:2019-09-08 04:12:53
【问题描述】:
我现在正在开发 OpenCart 项目,该项目大量使用 XML 配置进行扩展(称为 OCMOD)。
XML 配置是声明与 PHP/CSS/JavaScript 代码注入的混合,请参阅下面的实际 OCMOD 修改文件的一部分:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<name>some name</name>
<id>some ID</id>
<version>some version</version>
<code>some code</code>
<author>author</author>
<link><![CDATA[link]]></link>
<file path="catalog/controller/product/product.php">
<operation>
<search><![CDATA[
$product_info = $this->model_catalog_product->getProduct($product_id);
]]></search>
<add position="after"><![CDATA[
// some PHP code here
$s = 'hello world';
echo $s;
]]></add>
</operation>
</file>
</modification>
我使用 PHPStorm 2019.2 进行开发。默认情况下,它与plugin to inject code 捆绑到源文件中。
是否有任何技术可以实现注入 XML 代码的语法高亮显示?
附:我找到了this answer,但它不符合我的需求,因为我的文件中的 PHP 注入没有 <?php 和 ?> 标记。
【问题讨论】:
-
对于 PhpStorm,要像 PHP 一样处理代码,文件必须与“PHP 文件”文件类型相关联。您不能随机获取文件并说“这个位是 PHP”,因为 PHP 支持在 IDE 中还没有“PHP 作为可注入语言”实现。下一个 2019.3 版本的 PhpStorm 将带有 Injectable PHP。 ATM 我不知道这是否适用于您的示例(以及它的整体工作方式),因为它没有 PHP 标记...需要等待 2019.3 EAP 程序启动,然后才能尝试。
-
现在这张票看起来像是一场比赛(尚未实施:youtrack.jetbrains.com/issue/WI-47857)——它指的是与您类似的案例(参见github.com/Combodo/iTop/blob/develop/datamodels/2.x/…)。随时用您的示例发表评论(以便开发人员知道需要此类功能)。
-
@LazyOne,感谢您在 YouTrack 中的回复和评论。你可以回答这个问题,我会接受的。
标签: xml phpstorm opencart2.x cdata ocmod