1. Go to this page and download the library: Download nijidigital/phpstan-rules library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nijidigital / phpstan-rules example snippets
// Empty constructors
$now = new \DateTime();
$now = new \DateTimeImmutable();
// Relative date strings
$yesterday = new \DateTime('yesterday');
$nextMonth = new \DateTime('next month');
$twoHoursLater = new \DateTimeImmutable('+2 hours');
// Use absolute dates for fixed dates
$fixedDate = new \DateTime('2025-07-01 13:12:11');
// Use ClockInterface for current time and modifications
function doSomethingWithTime(ClockInterface $clock) {
$now = $clock->now();
$yesterday = $clock->now()->modify('-1 day');
$nextMonth = $clock->now()->modify('+1 month');
// (...)
}
class UnsafeMigration extends AbstractMigration
{
public function up(Schema $schema): void
{
// These operations may not be backward compatible
$this->addSql('DROP TABLE user');
$this->addSql('ALTER TABLE user CHANGE name email VARCHAR(255)');
$this->addSql('ALTER TABLE user DROP COLUMN name');
$this->addSql('DROP DATABASE test');
$this->addSql('TRUNCATE TABLE user');
}
}
class SafeMigration extends AbstractMigration
{
public function up(Schema $schema): void
{
// Safe operations (no ignore comment needed)
$this->addSql('ALTER TABLE user ADD COLUMN email VARCHAR(255)');
$this->addSql('CREATE INDEX idx_user_email ON user (email)');
$this->addSql('INSERT INTO user (name) VALUES (\'John\')');
// Unsafe operations marked as intentionally safe
/* @phpstan-ignore doctrineMigrations.unsafeMigration */
$this->addSql('DROP TABLE legacy_user');
/* @phpstan-ignore doctrineMigrations.unsafeMigration */
$this->addSql('ALTER TABLE user CHANGE name full_name VARCHAR(255)');
}
}
class MyMigration extends AbstractMigration
{
public function getDescription(): string
{
return ''; // Empty description
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE user ADD COLUMN email VARCHAR(255)');
}
}
class MyMigration extends AbstractMigration
{
public function getDescription(): string
{
return 'Add email column to user table';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE user ADD COLUMN email VARCHAR(255)');
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.