8000 GitHub - ghostwriter/phormat: [WIP] PHP code formatter.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ghostwriter/phormat

Repository files navigation

Phormat

GitHub Sponsors Automation Supported PHP Version Downloads

PHP code formatter.

Warning

This project is not finished yet, work in progress.

Installation

You can install the package via composer:

composer require ghostwriter/phormat

Star ⭐️ this repo if you find it useful

You can also star (🌟) this repo to find it easier later.

Usage

vendor/bin/phormat <path> --dry-run

Configuration

wip - work in progress

<?php

declare(strict_types=1);

use Ghostwriter\Phormat\NodeVisitor\ChangeToShortArrayNodeVisitor;
use Ghostwriter\Phormat\NodeVisitor\DeclareStrictTypesNodeVisitor;
use Ghostwriter\Phormat\NodeVisitor\ImportFullyQualifiedNamesNodeVisitor;
use Ghostwriter\Phormat\NodeVisitor\MakeClosureAndFunctionStaticNodeVisitor;
use Ghostwriter\Phormat\NodeVisitor\PERCSNodeVisitor;
use Ghostwriter\Phormat\NodeVisitor\SortClassLikeMemberStatementsAlphabeticallyNodeVisitor;
use Ghostwriter\Phormat\NodeVisitor\SortClassLikeStatementsAlphabeticallyNodeVisitor;
use Ghostwriter\Phormat\NodeVisitor\SortMatchExpressionsAlphabeticallyNodeVisitor;
use Ghostwriter\Phormat\NodeVisitor\SortUseStatementsAlphabeticallyNodeVisitor;
use Ghostwriter\Phormat\PhormatConfig;

/** @var non-empty-string $workingDirectory */
$workingDirectory = \getcwd() ?: __DIR__;

/** @psalm-suppress UncaughtThrowInGlobalScope */
return PhormatConfig::new()
    ->visitors([
        PERCSNodeVisitor::class,
        // ChangeToShortArrayNodeVisitor::class,
        // DeclareStrictTypesNodeVisitor::class,
        // ImportFullyQualifiedNamesNodeVisitor::class,
        // MakeClosureAndFunctionStaticNodeVisitor::class,
        // SortClassLikeMemberStatementsAlphabeticallyNodeVisitor::class,
        // SortClassLikeStatementsAlphabeticallyNodeVisitor::class,
        // SortMatchExpressionsAlphabeticallyNodeVisitor::class,
        // SortUseStatementsAlphabeticallyNodeVisitor::class,
    ]);
    ->paths([
        $workingDirectory . '/bin',
        $workingDirectory . '/src', 
        $workingDirectory . '/tests'
    ])
    ->exclude([
        PERCSNodeVisitor::class => [
            $workingDirectory . '/resources',
        ],
        $workingDirectory . '/.cache',
        $workingDirectory . '/docs',
        $workingDirectory . '/tests/fixture'
        $workingDirectory . '/vendor',
    ]);
    ->phpVersion(8, 2); // To use a specific PHP version when parsing the code

Credits

Changelog

Please see CHANGELOG.md for more information on what has changed recently.

License

Please see LICENSE for more information on the license that applies to this project.

Security

Please see SECURITY.md for more information on security disclosure process.

About

[WIP] PHP code formatter.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 2

  •  
  •  

Languages

0