@superkolya

Как скрыть ошибки в phpstan?

Есть проект на phalcon framework. При прогоне через phpstan разумеется выдается ошибка типа
Class App\Validation\PhalconValidationWithAssertion not found and not be autoloaded.


При настройке phpstan.neon добавил вот такую настройку:
parameters:
  ignoreErrors:
    - '#Class Phalcon\\[a-zA-Z0-9\\]+ not found and could not be autoloaded\.#'

И при повторном прогоне через phpstan получаю вот такие сообщения:

Error message "Class Phalcon\Di\InjectionAwareInterface not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Http\Request not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Mvc\ModelInterface not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Logger\Adapter not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Logger\Formatter\Line not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Logger\Formatter not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Mvc\Model not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Mvc\Model not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Mvc\User\Component not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Mvc\User\Component not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Mvc\User\Component not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Mvc\User\Component not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.
Error message "Class Phalcon\Events\EventsAwareInterface not found and could not be autoloaded." cannot be ignored, use excludes_analyse instead.

Разумеется, исключить файлы как рекомендует phpstan я не могу, ибо тогда половина проекта не будет анализироваться. Есть ли какие-нибудь варианты обхода?

Еще есть проблемы с автолоадером composer'а. Если запускать проект, то autoload composer'а работает нормально, но если пытаться прогнать phpstan'ом, то он начинает выдавать ошибки:
Requests/Request.php                                           
 ------ --------------------------------------------------------------- 
         Class App\Requests\AbstractRequest not found and could not be  
         autoloaded.

Когда файл класса Request.php:
<?php
namespace App\Requests;

class Request extends AbstractRequest
{

}

Файл AbstractRequest:
<?php
namespace App\Requests;

abstract class AbstractRequest extends \Phalcon\Http\Request
{
    public function validate()
    {
        return true;
    }
}

а в composer.json секция автолоадера:
"autoload": {
        "psr-4": {
            "App\\": "app/",
            "Db\\": "db/",
            "Domain\\": "Domain/"
        }
    },

Запускаю phpstan из докер контейнера, предварительно пробросив туда ФС проекта. phpstan файл vendor/autoload.php видит, так же пробовал в phpstan.neon путь до autoload.php composer'а, результат тот же. Подскажите что не так делаю
  • Вопрос задан
  • 450 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы