ghostwriter / phormat

PHP code formatter.

Home Page:https://github.com/ghostwriter/phormat

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Phormat

Compliance Supported PHP Version GitHub Sponsors Code Coverage Type Coverage Psalm Level Latest Version on Packagist 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
vendor/bin/phormat <path>

Configuration

<?php

declare(strict_types=1);

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

$currentWorkingDirectory = getcwd() ?: __DIR__;

return PhormatConfig::new()
    ->paths([
        // $currentWorkingDirectory . '/bin',
        $currentWorkingDirectory . '/src',
        $currentWorkingDirectory . '/tests',
    ])
    ->exclude([
        $currentWorkingDirectory . '/vendor',
    ])
    ->visitors([
        // ChangeToShortArrayNodeVisitor::class,
        // MakeClosureAndFunctionStaticNodeVisitor::class,
        // DeclareStrictTypesNodeVisitor::class,
        // ImportFullyQualifiedNamesNodeVisitor::class,
        // SortClassLikeMemberStatementsAlphabeticallyNodeVisitor::class,
        // SortClassLikeStatementsAlphabeticallyNodeVisitor::class,
        // SortMatchExpressionsAlphabeticallyNodeVisitor::class,
        // SortUseStatementsAlphabeticallyNodeVisitor::class,
    ]);

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

PHP code formatter.

https://github.com/ghostwriter/phormat

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:PHP 100.0%