Skip to content

Commit

Permalink
Merge pull request #268 from wayofdev/docs/updates
Browse files Browse the repository at this point in the history
docs: updating readme
  • Loading branch information
lotyp authored May 18, 2024
2 parents de8364c + c0add68 commit 637ed79
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 70 deletions.
7 changes: 0 additions & 7 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,6 @@ repos:
- id: check-added-large-files
args: ['--maxkb=600']

- repo: https://github.com/commitizen-tools/commitizen
rev: v3.26.0
hooks:
- id: commitizen
stages:
- commit-msg

- repo: local
hooks:
- id: php-cs-fixer
Expand Down
144 changes: 81 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,13 @@

Wrapper with pre-defined rules around the [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) package — A tool to automatically fix PHP Coding Standards issues.

If you **like/use** this package, please consider **starring** it. Thanks!
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.

<br>

If you **like/use** this package, please consider ⭐️ **starring** it. Thanks!

<br>

Expand All @@ -38,100 +44,110 @@ If you **like/use** this package, please consider **starring** it. Thanks!
Require as dependency:

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

<br>

## 🛠 Configuration

1. 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.
### → Setup

2. Example contents of `.php-cs-fixer.dist.php` file:
- 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
<?php
<?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;
```

declare(strict_types=1);
### → Composer Script

use WayOfDev\PhpCsFixer\Config\ConfigBuilder;
use WayOfDev\PhpCsFixer\Config\RuleSets\DefaultSet;
- Add `scripts` section to `composer.json`:

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

require_once 'vendor/autoload.php';
### → Git

return ConfigBuilder::createFromRuleSet(new DefaultSet())
->inDir(__DIR__ . '/src')
->inDir(__DIR__ . '/tests')
->addFiles([__FILE__])
->getConfig();
```
- Place `.build` folder file into `.gitignore`

```diff
+/.build/
/vendor/
```

3. Place `.php-cs-fixer.cache` file into `.gitignore`
### → GitHub Actions

To use in GitHub Actions, do...

<br>

## 💻 Usage

### → Running

Fix coding standards by simply running console command:

### → Directly

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

### → Using Makefile

To use with our `Makefile`:

1. Add `scripts` section to `composer.json`:

```json
{
"scripts": {
"cs-fix": "php vendor/bin/php-cs-fixer fix -v",
"cs-diff": "php vendor/bin/php-cs-fixer fix --dry-run -v --diff"
}
}
```
### → Via Composer Script

2. Use `Makefile` code to run PHP-CS-Fixer tests:
To use via composer script commands:

```bash
# Run inspections and fix code
$ make cs-fix

# Check coding standards without applying the fix
$ make cs-diff
```
- Fixes code to follow coding standards using php-cs-fixer:

<br>
```bash
composer cs:diff
```

## 🧪 Running Tests
- Runs php-cs-fixer in dry-run mode and shows diff which will by applied:

### → PHPUnit tests
```bash
composer cs:fix
```

To run tests, run the following command:
### → Using Makefile

```bash
make test
```
**To use with `Makefile`**

### → Static Analysis
- Fixes code to follow coding standards using php-cs-fixer:

Code quality using PHPStan:
```bash
make lint-php
```

```bash
make stan
```
- Runs php-cs-fixer in dry-run mode and shows diff which will by applied:

### → Coding Standards Fixing

Fix code using The PHP Coding Standards Fixer (PHP CS Fixer) to follow our standards:

```bash
make cs-fix
```
```bash
make lint-diff
```

<br>

Expand All @@ -158,9 +174,11 @@ You are more than welcome. Before contributing, kindly check our [contribution g

## 🫡 Contributors

<a href="https://github.com/wayofdev/php-cs-fixer-config/graphs/contributors">
<img align="left" src="https://img.shields.io/github/contributors-anon/wayofdev/php-cs-fixer-config?style=for-the-badge" alt="Contributors Badge"/>
</a>
<p align="left">
<a href="https://github.com/wayofdev/php-cs-fixer-config/graphs/contributors">
<img align="left" src="https://img.shields.io/github/contributors-anon/wayofdev/php-cs-fixer-config?style=for-the-badge" alt="Contributors Badge"/>
</a>
</p>

<br>

Expand Down
11 changes: 11 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@
"description": "Package adds custom rule-sets to php-cs-fixer",
"license": "MIT",
"type": "library",
"keywords": [
"php-cs-fixer",
"php-cs-fixer-config",
"php-cs-fixer-rules",
"configuration",
"code-style",
"code-standards",
"code-quality",
"php",
"static-analysis"
],
"authors": [
{
"name": "Andrij Orlenko",
Expand Down

0 comments on commit 637ed79

Please sign in to comment.