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

Mo4 Coding Standard Laravel Package

mayflower/mo4-coding-standard

PHP_CodeSniffer ruleset for the MO4 coding standard. Extends Symfony’s standard with extra sniffs for array formatting (alignment, multiline rules), property docblocks (@var), and lexicographically sorted use statements (configurable ordering).

View on GitHub
Deep Wiki
Context7
11.0.2

Changed

  • Fix AlphabeticalUseStatements sorting trait use statements (#235)
11.0.1

Changed

  • Fix VariableInDoubleQuotedString sniff wrapping property/array access (#233)
11.0.0

Changed

  • PHPCS 4.0 or later is required.
  • Various updates to rules for PHP 8.1+ code, see #224 for the diff of ruleset.xml

Removed

  • Support for PHP < 8.1
10.0.2

Changed

  • Raised minimum Symfony CS release, fixes #218
10.0.1

Changed

  • Fix uninitialized string offset in UnnecessaryNamespaceUsage, fixes #212
10.0.0

Changed

Allow dealerdirect/phpcodesniffer-composer-installer 1.x

Added

  • Add SlevomatCodingStandard.Arrays.ArrayAccess
  • Add SlevomatCodingStandard.Attributes.AttributesOrder
  • Add SlevomatCodingStandard.Attributes.DisallowAttributesJoining
  • Add SlevomatCodingStandard.Attributes.DisallowMultipleAttributesPerLine
  • Add SlevomatCodingStandard.Classes.EnumCaseSpacing
  • Add SlevomatCodingStandard.Functions.NamedArgumentSpacing
9.0.1

Changed

  • Fix invalid property case (fixes a runtime error when using PHPCS 3.8.0+)
9.0.0

Added

  • Add PHP 8.1 support
  • Add SlevomatCodingStandard.Classes.BackedEnumTypeSpacing
  • Add SlevomatCodingStandard.Classes.ForbiddenPublicProperty
8.0.0

Added

  • Add MO4.WhiteSpace.ConstantSpacing
  • Add MO4.WhiteSpace.MultipleEmptyLinesSniff

Changed

  • refactored tests
7.0.0

Added

  • Add PHP 8.0 support
  • Add Generic.WhiteSpace.ArbitraryParenthesesSpacing
  • Add Squiz.PHP.DisallowMultipleAssignments
  • Add SlevomatCodingStandard.Arrays.SingleLineArrayWhitespace
  • Add SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly
  • Add SlevomatCodingStandard.Functions.UnusedParameter
  • Add SlevomatCodingStandard.Functions.UselessParameterDefaultValue

Changed

  • Raised minimum PHPCS release
  • Raised minimum Slevomat CS release
6.0.0

Added

  • Add SlevomatCodingStandard.Classes.DisallowMultiConstantDefinition
  • Add SlevomatCodingStandard.Commenting.UselessInheritDocComment
  • Add SlevomatCodingStandard.Functions.StaticClosure
  • Add SlevomatCodingStandard.Namespaces.UseSpacing
  • Add PSR12 (excluding conflicting rules)

Changed

  • Raised PHP requirement to 7.2
5.0.0

Added

  • Add Squiz.WhiteSpace.FunctionSpacing
  • Add Squiz.WhiteSpace.MemberVarSpacing
  • Add PSR12.Traits.UseDeclaration
  • Add SlevomatCodingStandard.Namespaces.FullyQualifiedGlobalFunctions

Changed

  • Raised minimum Slevomat CS release and adapt MO4 ruleset
  • Raised minimum Symfony CS release
  • Raised minimum PHPCS release
  • Support PHP 7.4
4.0.0

Added

  • New sniffs from Slevomat, see comments in the ruleset

Changed

  • Raised minimum Symfony CS release
3.2.2

Changed

  • Add [@group](https://github.com/group) to default ignoredAnnotationNames
  • Add ignoreMultiline for if vs. ternary
3.2.1

Changed

  • Raised minimum Symfony CS release
  • Use strict typing in MO4 sniff code
3.2.0

Changed

  • Raised minimum Symfony CS release
3.1.0

Changed

  • Raised minimum Symfony CS release
  • Raised minimum Slevomat CS release
3.0.1

Changed

  • Updated dealerdirect/phpcodesniffer-composer-installer dependency
3.0.0

Added

  • PHP 7.3 support
  • Windows support
  • Integration tests
  • New sniffs from upstream rulesets, see comments in the ruleset
  • Autofixer for MO4.Arrays.ArrayDoubleArrowAlignment, fixes #91

Changed

  • Raised PHP requirement to 7.1
  • Detection of more comments after declarations, fixes #96
  • Documentation about upstream sniffs moved from README to comments per rule in the ruleset

Removed

  • Support for PHP 5.6 and PHP 7.0
  • PEAR as installation method
2.1.2

Changed

  • prefer builtin-functions for performance
2.1.1

Changed

  • Check for empty needle when calling strpos, fixes #78
2.1.0

Changed

  • PHPCS version 3.2.3 or later is required.
2.0.0

Added

  • MO4.Arrays.ArrayDoubleArrowAlignment
  • MO4.Arrays.MultiLineArray
  • Generic.Arrays.ArrayIndent
  • Squiz.WhiteSpace.OperatorSpacing
  • The behaviour of MO4.Formatting.AlphabeticalUseStatements can be configured with the property order. Possible values are: dictionary, string, string-locale or string-case-insensitive.
  • Static code analysis with PHPStan.
  • Various cloud based code quality tools like: Scrutinizer CI, codecov.io, ...

Changed

  • PHPCS version 3.2.0 or later is required.
  • Code complies to PHPCS coding standard version 3.2.0.
  • Default ordering of MO4.Formatting.AlphabeticalUseStatements is now dictionary instead of string.
  • Updates and fixes for class documentation.
  • Improve testing and code coverage.
  • Unknown test files will not trigger wrong type exceptions anymore, but report decent error messages with RuntimeException.
  • Many fixes and stability improvements.

Removed

  • MO4.Formatting.ArrayAlignmentUnit
    • replaced by MO4.Arrays.ArrayDoubleArrowAlignment and MO4.Arrays.MultiLineArray.
  • MO4.Formatting.UseArrayShortTag
    • replaced by Generic.Arrays.DisallowLongArray.
  • Dead code from MO4.Strings.VariableInDoubleQuotedString.
1.0.0

Changed

  • MO4 coding standard can be installed as composer package and is released on packagist.org.
  • Replaced underlying Symfony coding standard.
  • PHPCS 3.0 or later is required.
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