PhpTorch is a package for documentation purposes. It uses nikic/php-parser to parse a php class, which can then be modified using highlighting actions.
The end result will be printed as code with torchlight annotations.
Example:
$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);
Then you can provide the output to torchlight which will result in:
For now check the highlighter class public methods or consult the tests.
- Add support for non class files.
$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);
If you want to use this in Jigsaw, you should require "torchlight/torchlight-jigsaw": "^0.3.4",
in addition to this
package.
Then you can start a code snippet with 3 backticks followed by phptorch like this:
\```phptorch
{ JSON }
##CODE##
<?php ...
\```
Linked file:
{
"file": "../../examples/blog/app/Models/Blog.php",
"collapseAll": "",
"focusProperties": [
"slugAttributes"
]
}
Inline code:
{
"collapseAll": "",
"focusProperties": [
"slugAttributes"
],
"diffMethods": [
{
"methods": "someMethod",
"addRemove": "remove"
}
],
"focusMethods": "someMethod"
}
##CODE##
<?php
class Example {
public bool $slugAttributes = false;
public function someMethod(): void {
}
}
class Foo {
}