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 Coding Standard Laravel Package

unleashedtech/php-coding-standard

Opinionated PHP coding standard by Unleashed Tech, built on PHP-CS-Fixer rules and presets to keep code style consistent across projects. Easy to install via Composer and integrate into CI for automated linting and formatting.

View on GitHub
Deep Wiki
Context7

Unleashed Technologies PHP_CodeSniffer Coding Standard

Latest Version Total Downloads Build Status Software License

A PHP coding standard for Unleashed Technologies, originally based on doctrine/coding-standard.

Overview

This coding standard is based on PSR-1 and PSR-2, with some noticeable exceptions/differences/extensions based on best-practices adopted by Symfony, Doctrine, and the wider community:

  • Keep the nesting of control structures per method as small as possible
  • Add spaces around a concatenation operator $foo = 'Hello ' . 'World!';
  • Add spaces between assignment, control and return statements
  • Add spaces after the colon in return type declaration function (): void {}
  • Add spaces after a type cast $foo = (int) '12345';
  • Use single-quotes for enclosing strings
  • Always use strict comparisons
  • Always add declare(strict_types=1) at the beginning of a file
  • Always add native types where possible
  • Omit phpDoc for parameters/returns with native types, unless adding description
  • Don't use @author, @since and similar annotations that duplicate Git information
  • Use parentheses when creating new instances that do not require arguments $foo = new Foo()
  • Use Null Coalesce Operator $foo = $bar ?? $baz
  • Use Null Safe Object Operator $foo = $object?->property
  • Prefer early exit over nesting conditions or using else
  • Always use fully-qualified global functions (without needing use function statements)
  • Forbids the use of \DateTime

For full reference of enforcements, go through src/Unleashed/ruleset.xml where each sniff is briefly described.

Installation

You can install the Unleashed Coding Standard as a Composer dependency in your project:

composer require --dev unleashedtech/php-coding-standard

Then you can use it like this:

vendor/bin/phpcs --standard=Unleashed /path/to/some/files.php

You can also use phpcbp to automatically find and fix any violations:

vendor/bin/phpcbf --standard=Unleashed /path/to/some/files.php

Project-Level Ruleset

To enable the Unleashed Coding Standard for your project, create a phpcs.xml.dist file with the following content:

<?xml version="1.0"?>
<ruleset>
    <arg name="basepath" value="."/>
    <arg name="extensions" value="php"/>
    <arg name="parallel" value="80"/>
    <arg name="cache" value=".phpcs-cache"/>
    <arg name="colors"/>

    <!-- Ignore warnings, show progress of the run and show sniff names -->
    <arg value="nps"/>

    <!-- Directories to be checked -->
    <file>src</file>
    <file>tests</file>

    <!-- Include full Unleashed Coding Standard -->
    <rule ref="Unleashed"/>
</ruleset>

This will enable the full Unleashed Coding Standard with all rules included with their defaults. From now on you can just run vendor/bin/phpcs and vendor/bin/phpcbf without any arguments.

Don't forget to add .phpcs-cache and phpcs.xml (without .dist suffix) to your .gitignore. The first ignored file is a cache used by PHP CodeSniffer to speed things up, the second one allows any developer to adjust configuration locally without touching the versioned file.

For further reading about the CodeSniffer configuration, please refer to the configuration format overview and the list of configuration options.

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
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
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