Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: updating readme #268

Merged
merged 3 commits into from
May 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading