Download the PHP package boring-o11y/wirestan without Composer

On this page you can find all versions of the php package boring-o11y/wirestan. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package wirestan

wirestan

Latest Version

PHPStan / Larastan rules for Livewire components.

Every public property on a Livewire component is part of the client-editable state: the browser can set any of them with $wire.set('prop', value), and Livewire will happily hydrate the new value on the next request. That is exactly what you want for a wire:model-bound input — and exactly what you don't want for $bookingId, $tenantId, $role, or anything else the server seeded in mount() and then trusted.

Livewire's answer is the #[Locked] attribute, which makes the property server-only. The failure mode of forgetting it is silent: nothing throws, the component works in the browser, and the IDOR only shows up when someone goes looking for it.

wirestan catches the omission in CI.

Requirements

Installation

Registering the rules

If you use phpstan/extension-installer (recommended), there is nothing else to do — the rule registers automatically.

Otherwise, include the bundled extension.neon from your phpstan.neon (or phpstan.neon.dist):

That's it — the rule now runs as part of your normal analysis:

Rules

Rule Identifier In one line
LockedPublicPropertyRule boringO11yWirestan.lockedPublicProperty Never-reassigned public properties must be #[Locked]

LockedPublicPropertyRule

Reports public properties of Livewire\Component subclasses that are never reassigned outside the lifecycle seed methods and are missing #[Livewire\Attributes\Locked].

The fix is one attribute:

What counts as a mutation

Writes inside the seed methodsmount, __construct, boot, booted, hydrate, dehydrate — are server-controlled initialisation, not user-driven mutation, so they do not exempt a property. A write anywhere else does.

Recognised as a mutation: plain assignment, compound assignment (.=, +=, …), reference assignment, ++/--, array-element writes ($this->rows[] = …), list destructuring ([$this->a, $this->b] = …), and $this->reset('name') with literal property names.

What the rule deliberately skips

Configuration

Override the reserved-property list from your phpstan.neon:

Adopting on an existing codebase

The rule will light up on any Livewire codebase that predates it. Generate a baseline so it only fails on new violations, then burn the entries down:

Each baselined entry is a real decision: add #[Locked] where the property is server-controlled, or confirm it is genuinely a wire:model-bound input and remove it from the baseline once the rule stops matching.

To silence an individual finding, use the error identifier:

Development

Tests use PHPStan's RuleTestCase against fixtures in tests/Fixtures, with minimal Livewire\* stubs in tests/Stubs so the package has no runtime dependency on Livewire itself.

License

MIT — see LICENSE.


All versions of wirestan with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
nikic/php-parser Version ^4.18 || ^5.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package boring-o11y/wirestan contains the following files

Loading the files please wait ...