Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Cs Fixer Config Laravel Package

wayofdev/cs-fixer-config

View on GitHub
Deep Wiki
Context7

PHP CS Fixer Config

Wrapper with pre-defined rules around the PHP-CS-Fixer package โ€” A tool to automatically fix PHP Coding Standards issues.

This repository aims to provide a standardized way to apply coding standards across multiple projects, ensuring consistency and adherence to best practices. By using predefined rulesets, it simplifies the setup process and allows teams to quickly integrate PHP-CS-Fixer into their development workflow.

If you like/use this package, please consider โญ๏ธ starring it. Thanks!

๐Ÿ“œ Custom Rulesets

WayOfDev\PhpCsFixer\Config\RuleSets\DefaultRuleset::class

Based on @Symfony ruleset

WayOfDev\PhpCsFixer\Config\RuleSets\ExtendedPERSet::class

Based on @PER-CS2.0 ruleset

๐Ÿ’ฟ Installation

โ†’ Using composer

Require as dependency:

composer req --dev wayofdev/cs-fixer-config

๐Ÿ›  Configuration

โ†’ Setup

  • Create PHP file and name it .php-cs-fixer.dist.php and place it inside root directory of project. It will be recognized by PHP CS Fixer automatically.

  • Example contents of .php-cs-fixer.dist.php file:

     <?php
    
     declare(strict_types=1);
    
     use WayOfDev\PhpCsFixer\Config\ConfigBuilder;
     use WayOfDev\PhpCsFixer\Config\RuleSets\DefaultSet;
    
     require_once 'vendor/autoload.php';
    
     $config = ConfigBuilder::createFromRuleSet(new DefaultSet())
         ->inDir(__DIR__ . '/src')
         ->inDir(__DIR__ . '/tests')
         ->addFiles([__FILE__])
         ->getConfig()
     ;
    
     $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/php-cs-fixer.cache');
    
     return $config;
    

โ†’ Composer Script

  • Add scripts section to composer.json:

    {
        "scripts": {
    +       "cs:diff": "php vendor/bin/php-cs-fixer fix --dry-run -v --diff",
    +       "cs:fix": "php vendor/bin/php-cs-fixer fix -v"
        }
    }
    

โ†’ Git

  • Place .build folder file into .gitignore

    +/.build/
     /vendor/
    

โ†’ Makefile

  • If you are using Makefile, create a Makefile with a lint-php and lint-diff targets:

    +APP_RUNNER ?= php
    +APP_COMPOSER ?= $(APP_RUNNER) composer
    +
    +prepare:
    +  mkdir -p .build/php-cs-fixer
    +.PHONY: prepare
    
    +lint-php: prepare ## Fixes code to follow coding standards using php-cs-fixer
    +  $(APP_COMPOSER) cs:fix
    +.PHONY: lint-php
    
    +lint-diff: prepare ## Runs php-cs-fixer in dry-run mode and shows diff which will by applied
    +  $(APP_COMPOSER) cs:diff
    +.PHONY: lint-diff
    

Or, you can check for one of our pre-configured Makefile from any of these repositories:

https://github.com/wayofdev/php-cs-fixer-config/blob/master/Makefile

https://github.com/wayofdev/laravel-package-tpl/blob/master/Makefile

โ†’ GitHub Actions

  • To use this package in GitHub Actions, add a coding-standards.yml workflow to your repository:

    ---
    
    on:  # yamllint disable-line rule:truthy
      pull_request:
        branches:
          - master
      push:
        branches:
          - master
    
    name: ๐Ÿงน Fix PHP coding standards
    
    jobs:
      coding-standards:
        timeout-minutes: 4
        runs-on: ${{ matrix.os }}
        concurrency:
          cancel-in-progress: true
          group: coding-standards-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
        strategy:
          matrix:
            os:
              - ubuntu-latest
            php-version:
              - '8.1'
            dependencies:
              - locked
        permissions:
          contents: write
        steps:
          - name: โš™๏ธ Set git to use LF line endings
            run: |
              git config --global core.autocrlf false
              git config --global core.eol lf
    
          - name: ๐Ÿ› ๏ธ Setup PHP
            uses: shivammathur/setup-php@2.30.4
            with:
              php-version: ${{ matrix.php-version }}
              extensions: none, ctype, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter
              ini-values: error_reporting=E_ALL
              coverage: none
    
          - name: ๐Ÿ“ฆ Check out the codebase
            uses: actions/checkout@v4.1.5
    
          - name: ๐Ÿ› ๏ธ Setup problem matchers
            run: |
              echo "::add-matcher::${{ runner.tool_cache }}/php.json"
    
          - name: ๐Ÿค– Validate composer.json and composer.lock
            run: composer validate --ansi --strict
    
          - name: ๐Ÿ” Get composer cache directory
            uses: wayofdev/gh-actions/actions/composer/get-cache-directory@v3.1.0
    
          - name: โ™ป๏ธ Restore cached dependencies installed with composer
            uses: actions/cache@v4.0.2
            with:
              path: ${{ env.COMPOSER_CACHE_DIR }}
              key: php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}
              restore-keys: php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-
    
          - name: ๐Ÿ“ฅ Install "${{ matrix.dependencies }}" dependencies with composer
            uses: wayofdev/gh-actions/actions/composer/install@v3.1.0
            with:
              dependencies: ${{ matrix.dependencies }}
    
          - name: ๐Ÿ› ๏ธ Prepare environment
            run: make prepare
    
          - name: ๐Ÿšจ Run coding standards task
            run: composer cs:fix
            env:
              PHP_CS_FIXER_IGNORE_ENV: true
    
          - name: ๐Ÿ“ค Commit and push changed files back to GitHub
            uses: stefanzweifel/git-auto-commit-action@v5.0.1
            with:
              commit_message: 'style(php-cs-fixer): lint php files and fix coding standards'
              branch: ${{ github.head_ref }}
              commit_author: 'github-actions <github-actions@users.noreply.github.com>'
            env:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    

Or, you can check for one of our pre-configured workflows from any of these repositories:

https://github.com/wayofdev/php-cs-fixer-config/blob/master/.github/workflows/coding-standards.yml

๐Ÿ’ป Usage

Fix coding standards by simply running console command:

โ†’ Directly

vendor/bin/php-cs-fixer fix -v

โ†’ Via Composer Script

To use via composer script commands:

  • Fixes code to follow coding standards using php-cs-fixer:

    composer cs:diff
    
  • Runs php-cs-fixer in dry-run mode and shows diff which will by applied:

    composer cs:fix
    

โ†’ Using Makefile

To use with Makefile

  • Fixes code to follow coding standards using php-cs-fixer:

    make lint-php
    
  • Runs php-cs-fixer in dry-run mode and shows diff which will by applied:

    make lint-diff
    

๐Ÿ”’ Security Policy

This project has a security policy.

๐Ÿ™Œ Want to Contribute?

Thank you for considering contributing to the wayofdev community! We are open to all kinds of contributions. If you want to:

You are more than welcome. Before contributing, kindly check our contribution guidelines.

Conventional Commits

๐Ÿซก Contributors

๐ŸŒ Social Links

๐Ÿงฑ Resources

โš–๏ธ License

Licence

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky