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

Php Cs Fixer Config Laravel Package

phootwork/php-cs-fixer-config

Reusable PHP-CS-Fixer configuration by phootwork. Provides a shared ruleset and presets to standardize code style across projects, making it easy to apply consistent formatting in CI and local development with minimal setup.

View on GitHub
Deep Wiki
Context7

php-cs-fixer-config

Continuous Integration

Phootwork PHP CS Fixer config

It's based on the ideas of prooph/php-cs-fixer-config.

Installation

Run

$ composer require --dev phootwork/php-cs-fixer-config

Add to composer.json;

"scripts": {
  "check": [
    "@cs",
  ],
  "cs": "php-cs-fixer fix -v --diff --dry-run",
  "cs-fix": "php-cs-fixer fix -v --diff",
}

Usage

Configuration

Create a configuration file .php-cs-fixer.php in the root of your project:

<?php

$config = new phootwork\fixer\Config();
$config->getFinder()
    ->exclude(['fixture'])
    ->in(__DIR__ . '/src')
    ->in(__DIR__ . '/tests')

$cacheDir = getenv('TRAVIS') ? getenv('HOME') . '/.php-cs-fixer' : __DIR__;

$config->setCacheFile($cacheDir . '/.php-cs-fixer.cache');

return $config;

Git

Add .php-cs-fixer.cache (this is the cache file created by php-cs-fixer) to .gitignore:

vendor/
.php-cs-fixer.cache

Travis

Update your .travis.yml to cache the php-cs-fixer.cache file:

cache:
  directories:
    - $HOME/.php-cs-fixer

Then run php-cs-fixer in the script section:

script:
  - vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --verbose --diff --dry-run

Fixing issues

Manually

If you need to fix issues locally, just run

$ composer cs-fix

Pre-commit hook

You can add a pre-commit hook

$ touch .git/pre-commit && chmod +x .git/pre-commit

Paste this into .git/pre-commit:

#!/usr/bin/env bash

echo "pre commit hook start"

CURRENT_DIRECTORY=`pwd`
GIT_HOOKS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

PROJECT_DIRECTORY="$GIT_HOOKS_DIR/../.."

cd $PROJECT_DIRECTORY;
PHP_CS_FIXER="vendor/bin/php-cs-fixer"

HAS_PHP_CS_FIXER=false

if [ -x "$PHP_CS_FIXER" ]; then
    HAS_PHP_CS_FIXER=true
fi

if $HAS_PHP_CS_FIXER; then
    git status --porcelain | grep -e '^[AM]\(.*\).php$' | cut -c 3- | while read line; do
        ${PHP_CS_FIXER} fix --config-file=.php_cs --verbose ${line};
        git add "$line";
    done
else
    echo ""
    echo "Please install php-cs-fixer, e.g.:"
    echo ""
    echo "  composer require friendsofphp/php-cs-fixer:3.0.0"
    echo ""
fi

cd $CURRENT_DIRECTORY;
echo "pre commit hook finish"

License

This package is licensed using the MIT License.

Editor/IDE Support

This repo contains a editors/ folder, which has contains files to apply formatting based on these rules into your editor or IDE. You can have a look, if your editor/IDE is supported. A pull request to support yours is welcome

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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport
twbs/bootstrap4
php-http/client-implementation
phpcr/phpcr-implementation
cucumber/gherkin-monorepo
haydenpierce/class-finder
psr/simple-cache-implementation
uri-template/tests