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