VKCOM / noverify

Pretty fast linter (code static analysis utility) for PHP
MIT License
673 stars 57 forks source link

added packaging support with @package, @internal php-doc #1164

Closed ngkoshkin closed 2 years ago

ngkoshkin commented 2 years ago

I added ability to mark class or method as @internal in some @package.

  1. @internal methods couldn't be call outside @package
  2. @package must be a start part of class namespace

For example:

namespace SomeLibrary\Something;

/**
 * @package SomeLibrary\Something
 * @internal
 */
class SomeClass {
    public static function doSomething(): void { }
} 
namespace SomeLibrary;

class Doer {
    public static function callDoSomething(): void {
        // trigger linter error "ERROR   packaging: call method \SomeLibrary\Something\SomeClass::doSomething outside package SomeLibrary\Something"
        Something\SomeClass::doSomething();
    }
}
i582 commented 2 years ago

Also please run make generate_checkers_doc to update the documentation.

i582 commented 2 years ago

Looks good 👍