paragonie/stern

Stern lets you built type-safe PHP projects, even if your project's users aren't writing type-safe code

v1.0.1 2021-04-19 03:01 UTC

This package is auto-updated.

Last update: 2024-04-12 08:49:00 UTC


README

Build Status Latest Stable Version Latest Unstable Version License

Stern lets you built type-safe PHP projects, even if your project's users aren't writing type-safe code.

Requires PHP 7+

Usage

Using Stern is simply:

  1. Make your class use the SternTrait.
  2. Rename your methods from whateverName to strictWhateverName.
  3. Enjoy strict-typing whether your users like it or not.

Example

  <?php
  declare(strict_types=1);
  namespace YourVendor\YourNamespace;

  class YourClassThatUsesStrictTypes
  {
+      use \ParagonIE\Stern\SternTrait;
  
      /* ... */
  
-     public function foo(string $param = ''): bool
+     public function strictFoo(string $param = ''): bool
      {
      }
  }

Docblock Usability

For better usability (especially with type-aware IDEs like PHPStorm), make sure you use @method docblocks.

  <?php
  declare(strict_types=1);
  namespace YourVendor\YourNamespace;

+   /**
+    * @method bool foo(string $param = '')
+    */
  class YourClassThatUsesStrictTypes
  {
+      use \ParagonIE\Stern\SternTrait;
  
      /* ... */
  
-     public function foo(string $param = ''): bool
+     public function strictFoo(string $param = ''): bool
      {
      }
  }