LINUX.ORG.RU

[глобально] [надежно] расширенная проверка синтаксиса PHP


0

0

Иещтся сабж. Желательно как плагин к Eclipse PDT для раширенного синтаксического контроля во время кодинга.

В основном для проверок:
Обращение к неинициализированной переменной
Обращение к несуществующему методу
Неверное число параметров
Неправильные типы параметров

anonymous

Ответ на: комментарий от anonymous

CLI - расшифровывается как command line interpreter. Интерпретатор коммандной строки. Стандартная фича. Ну может понадобиться доставить пакет типа php_cli. Отлично встроен в редактор Geany. При запуске, выпригивает терминал со всеми warnings, errors и номерами строк где эти ошибки обнаружены. Очень удобно. Помогает существенно экономить время.

mares
()
Ответ на: комментарий от mares

P.S. Думаю вызов несложно будет встроить куда угодно, хоть и в Eclipse, хоть куда еще.

Вот этот скрипт используется в Geany - geany_run_script.sh:

#!/bin/sh

php "<file>"

echo "

------------------ (program exited with code: $?)"

echo "Press return to continue" #to be more compatible with shells like dash dummy_var="" read dummy_var rm $0

где <file> - подставить проверяемый файл.

mares
()
Ответ на: комментарий от mares

Он входит в стандартную поддержку?

Я скачал ZIP архив с сайта php - там нет файлов с именами типа php_cli.

Гугл фигню выдает всякую.

anonymous
()
Ответ на: комментарий от mares

Блин. Это же стандартный php.exe.

Так и надо было называть, а то ищу какие-то несуществующие php_cli.exe

anonymous
()
Ответ на: комментарий от mares

Это не то.

Он делает те же проверки, что и чекер PDT.

Прийдется Eclipse самим делать.

anonymous
()

Как вы это себе теоретически-то представляете? В PHP динамическая типизация, я могу передавать методам любые объекты и вызывать их методы. Естественно, определить, что я действительно передал, можно только на стадии выполенения. А если таки в параметрах ты указываешь интерфейс, то PDTшный парсер с таким вполне справляется.

BobiKK
()
Ответ на: комментарий от BobiKK

>Обращение к неинициализированной переменной
//$asd=3;
$a = $asd; - unintialized identifier $asd

>Обращение к несуществующему методу
$this->hello() - method not found
>Неверное число параметров

function asd($a, $b)
{
}

asd(4,6,7), asd(4) - wrong number of parametrs

>Неправильные типы параметров


function asd(MyClass $a)
{
}

asd(4), asd($objectNotComatibleWithMyClass) - wrong type

anonymous
()
Ответ на: комментарий от BobiKK

С динамической типизацией это никак не связано.

Неинициализированную переменную на этапе парсинга определить очень просто.

Почему до сих пор это не сделано - не понятно.

anonymous
()
Ответ на: комментарий от anonymous

>>Обращение к неинициализированной переменной >//$asd=3; >$a = $asd; - unintialized identifier $asd

А если она была инициализирована в инклюдах или самим похапэ?

anonymous
()
Ответ на: комментарий от anonymous

>function asd(MyClass $a) >{ >} >asd(4), asd($objectNotComatibleWithMyClass) - wrong type

Таки я же вроде бы сказал: если ты указываешь тип/класс/интерфейс то о.к., это всё возможно и pdt (не знаю, что у вас за проблемы) подобные ошибки будет показывать.

$this->hello(), $this->hello отловить тоже тяжело, в силу __get,__set,__call и иже с ними.

Ну и всё это не имеет значения, если тут инклюды имеют место быть

BobiKK
()
Ответ на: комментарий от anonymous

Во из-за этих а если - страдают девелоперы.

Это проблема парсера.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.