phpstan-dba :PHPSTANベースのSQL静的分析とデータベースアクセスレイヤーのタイプ推論phpstan-dbaは、PHPSTAN静的コード分析のジョブをデータベース内のデータ型を認識させます。この情報を手元に置いて、ドメインモデルとデータベーススキーマの間のタイプの矛盾を検出することができます。さらに、SQLクエリの結果を処理するコードのエラーを検出できます。
この拡張機能は、ルールに固執する限り、次の機能を提供します。
doctrine/dbal 、 mysqli 、およびPDOのビルドインサポート Doctrine ormを使用している場合は、phpstan-doctrineと並行してphpstan-dbaを使用する場合があります。
注記
現時点では、MySQL/MariadBおよびPGSQLデータベースのみがサポートされています。技術的には、他のデータベースをサポートすることは大きな問題ではありません。
PHPSTAN -DBA- 2023年5月のBossのようなSQLクエリをチェックし、Frankfurt Main(ドイツ)のPHP UserGroupで確認してください。
DEMO-PRの「ファイル変更」タブを参照して、すぐに一目で表示されます。
プロジェクトをサポートすることを検討してください。そうすれば、このツールをすべての人にとってさらに速くすることができます。
まず、Composerを使用してインストールします。
composer require --dev staabm/phpstan-dba第二に、 phpstan-dba-bootstrap.phpファイルを作成します。これにより、 phpstan-dbaを構成できます(これには、データベース接続の詳細が含まれて、データベースを内省するために、これを実行しない場合は、レコードを表示して再生しません。
<?php // phpstan-dba-bootstrap.php
use staabm PHPStanDba DbSchema SchemaHasherMysql ;
use staabm PHPStanDba QueryReflection RuntimeConfiguration ;
use staabm PHPStanDba QueryReflection MysqliQueryReflector ;
use staabm PHPStanDba QueryReflection QueryReflection ;
use staabm PHPStanDba QueryReflection ReplayAndRecordingQueryReflector ;
use staabm PHPStanDba QueryReflection ReplayQueryReflector ;
use staabm PHPStanDba QueryReflection ReflectionCache ;
require_once __DIR__ . ' /vendor/autoload.php ' ;
$ cacheFile = __DIR__ . ' /.phpstan-dba.cache ' ;
$ config = new RuntimeConfiguration ();
// $config->debugMode(true);
// $config->stringifyTypes(true);
// $config->analyzeQueryPlans(true);
// $config->utilizeSqlAst(true);
// TODO: Put your database credentials here
$ mysqli = new mysqli ( ' hostname ' , ' username ' , ' password ' , ' database ' );
QueryReflection:: setupReflector (
new ReplayAndRecordingQueryReflector (
ReflectionCache:: create (
$ cacheFile
),
// XXX alternatively you can use PdoMysqlQueryReflector instead
new MysqliQueryReflector ( $ mysqli ),
new SchemaHasherMysql ( $ mysqli )
),
$ config
);注記
PGSQLの構成はかなり似ています
第三に、 phpstan.neonファイルを作成または更新して、bootstrapfilesにphpstan-dba-bootstrap.phpが含まれています。
PHPSTAN/Extension-Installerを使用していない場合は、 dba.neonも含める必要があります。
あなたのphpstan.neon次のように見えるかもしれません:
parameters :
level : 8
paths :
- src/
bootstrapFiles :
- phpstan-dba-bootstrap.php
includes :
- ./vendor/staabm/phpstan-dba/config/dba.neon最後に、 phpstanを実行します
./vendor/bin/phpstan analyse -c phpstan.neon