phpstan dba
0.3.1
phpstan-dba :基於PHPSTAN的SQL靜態分析和數據庫訪問層的推理phpstan-dba使您的phpstan靜態代碼分析作業了解數據庫中的數據類型。借助此信息,我們能夠檢測到您的域模型和數據庫 - 施加之間的類型不一致。另外,可以檢測到代碼處理SQL查詢結果的錯誤。
只要您遵守規則,該擴展名提供以下功能:
doctrine/dbal , mysqli和PDO支持如果您使用學說ORM,則可以與Phpstan-Doctrine同時使用phpstan-dba 。
筆記
目前,僅支持MySQL/MariadB和PGSQL數據庫。從技術上講,支持其他數據庫並不是一個大問題。
PHPSTAN -DBA-在法蘭克福Main(德國)的PHP UserGroup(德國)的PHP UserGroup(德國),檢查您的SQL查詢。
請參閱Demo-pr的“更改文件”選項卡,以獲取快速瀏覽。
考慮支持該項目,因此我們可以使每個人更快地使該工具更好。
首先,使用作曲家安裝:
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