Совместим ли phplint с автозагрузчиком композитора?

Я просто возвращаюсь в PHP и пытаюсь все делать правильно с самого начала. Итак, я установил PHPLint 2.1_20151116 и я не могу заставить его работать с автозагрузкой композитора. Является ли это возможным?

Например, я пытаюсь добавить тестовый пример в Laravel / Envoy, но я не могу получить ошибку «необъявленный родительский класс TestCase».

Структура папок:

envoy
├── tests
│   ├── RemoteProcessorTest.php
│   ├── SSHConfigFileTest.php
│   └── TestCase.php

Содержимое RemoteProcessorTest.php:

<?php
namespace Laravel\Envoy;
class RemoteProcessTest extends TestCase
{
}

Если я бегу ./vendor/bin/phpunit тогда я получаю ошибку: No tests found in class "Laravel\Envoy\RemoteProcessTest"., Что не является синтаксической ошибкой, поэтому похоже, что все верно. Но phplint все еще жалуется.

$ cd envoy
$ phpl --php-version 5 --print-path relative --print-column-number --tab-size 4 --no-overall tests/RemoteProcessorTest.php
BEGIN parsing of tests/RemoteProcessorTest.php
1:  <?php
2:  namespace Laravel\Envoy;
3:
4:  class RemoteProcessTest extends TestCase
5:  {

{
\_ HERE
==== 5:1: ERROR: undeclared parent class TestCase
6:  }
END parsing of tests/RemoteProcessorTest.php

Есть ли обходной путь для этого?

0

Решение

Возможно, я не смогу ответить на вопрос напрямую, поскольку рассматриваемый репо кажется слишком ограниченным, чтобы дать вам то, что вы ищете. Я оставлю это сообществу, чтобы ответить на вопрос непосредственно.

Вот несколько альтернатив, которые, надеюсь, помогут.

Если вы хотите проверить синтаксис, в PHP есть встроенный линтер. Просто:

$ php -l filename.php

или же --syntax-check вместо -l,

Существует также это на Packagist в качестве жизнеспособной альтернативы. https://packagist.org/packages/gamegos/php-code-sniffer

Он имеет конфигурационный файл с именем phpcs.xml, который вы можете проверить в своем репо и включить через композитора.

# composer.json
...
require-dev {
"gamegos/php-code-sniffer": "0.4.0"}
...

В файле phpcs.xml есть тег начальной загрузки, который даст ему информацию, чтобы найти классы Laravel среди ваших собственных.

<?xml version="1.0" encoding="UTF-8"?>
<ruleset>
<rule ref="Gamegos" />
<arg name="bootstrap" value="vendor/autoload.php" />
</ruleset>

После установки с Composer у вас будет 3 бинарных файла:

  • поставщик / бен / phpcbf
  • поставщика / bin / phpcs
  • поставщик / bin / phpcs-перед фиксацией

Вы можете найти множество вариантов настройки в репозитории Github. https://github.com/gamegos/php-code-sniffer

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]