phpstan-dba : PHPSTAN 기반 SQL 정적 분석 및 데이터베이스 액세스 계층의 유도 추론 phpstan-dba 는 PHPSTAN 정적 코드 분석 작업이 데이터베이스 내 데이터 유형을 인식하게합니다. 이 정보를 통해 도메인 모델과 데이터베이스 스키마 사이의 유형 불일치를 감지 할 수 있습니다. 또한 SQL 쿼리의 결과를 처리하는 코드의 오류를 감지 할 수 있습니다.
이 확장자는 규칙을 고수하는 한 다음과 같은 기능을 제공합니다.
doctrine/dbal , mysqli 및 PDO 에 대한 지원 교리 ORM을 사용하는 경우 phpstan-doctrine과 함께 phpstan-dba 사용할 수 있습니다.
메모
현재 MySQL/Mariadb 및 PGSQL 데이터베이스 만 지원됩니다. 기술적으로 다른 데이터베이스를 지원하는 것은 큰 문제가 아닙니다.
PHPSTAN -DBA- 2023 년 5 월 보스와 같은 SQL 쿼리를 프랑크푸르트 메인 (독일)의 PHP 사용자 그룹에서 확인하십시오.
빠른 한눈에 DemoPR의 '파일 변경'탭을 참조하십시오.
프로젝트 지원을 고려 하여이 도구를 모든 사람에게 더욱 빠르게 만들 수 있습니다.
먼저 작곡가를 사용하여 설치하십시오.
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