area17/phptorch

用于PHP文件的Torchlight助手

dev-main 2022-11-07 11:13 UTC

This package is auto-updated.

Last update: 2024-09-07 15:33:21 UTC


README

PhpTorch是一个用于文档的包。它使用nikic/php-parser来解析PHP类,然后可以使用高亮操作来修改。

最终结果将以带有torchlight注解的代码形式打印出来。

示例

$highlighter = \A17\PhpTorch\Highlight::new('PageController.php')
  ->focusMethods('getForm')
  ->diffImports(\A17\Twill\Services\Forms\Fields\Medias::class)
  ->focusImports(\A17\Twill\Services\Forms\Fields\Medias::class)
  ->diffInMethod('getForm', 7, 9);

然后你可以将输出提供给torchlight,这将产生

screenshot

可用方法

目前请检查高亮类公共方法或参考测试。

待办事项

  • 添加对非类文件的支持。

示例

直接使用

$highlighter = \A17\PhpTorch\Highlight::new('PageController.php')
  ->focusMethods('getForm')
  ->diffImports(\A17\Twill\Services\Forms\Fields\Medias::class)
  ->focusImports(\A17\Twill\Services\Forms\Fields\Medias::class)
  ->diffInMethod('getForm', 7, 9);

Jigsaw / markdown

如果你想在Jigsaw中使用这个包,你应该在当前包之外还需要"torchlight/torchlight-jigsaw": "^0.3.4",

然后你可以这样以3个反引号开始一个代码片段,后面跟phptorch

\```phptorch
{ JSON }
##CODE##
<?php ...
\```

链接文件

{
  "file": "../../examples/blog/app/Models/Blog.php",
  "collapseAll": "",
  "focusProperties": [
    "slugAttributes"
  ]
}

内联代码

{
    "collapseAll": "",
    "focusProperties": [
        "slugAttributes"
    ],
    "diffMethods": [
      {
        "methods": "someMethod", 
        "addRemove": "remove"
      }
    ],
    "focusMethods": "someMethod"
}
##CODE##
<?php

class Example {
  public bool $slugAttributes = false;
 
  public function someMethod(): void {
  }
}

class Foo {

}