Эта инструкция нужна только тем, кто не соблюдает простейшие стандарты де-факто вебразработки. Таковых бесконечно мало. Большинству достаточно одной командой поставить стан и типовой конфиг взять.
Но в любом случае PHPStan поможет найти скрытые баги и сделать код надежнее, даже если структура проекта нестандартная.
Шаг 1. Необходимо установить PHPStan https://github.com/phpstan/phpstan
parameters: phpVersion: 80100 bootstrapFiles: - bootstrap.php # подключить существующий загрузчик level: 9 # начать с минимального уровня paths: - node/ - skin/ - mods/
Конечно инструмент не скажет "вот это замени на это". Т.е. ошибку надо будет понять, проанализировать и исправить. Т.е. эта не халява отменяющая необходимость знаний. Этот инструмент только подсветит проблему.
Бдит стан за многим. Понимаю, что ты себя считаешь очень знающим, но рекомендую править. Т.к. если кто то будет пользоваться твоим фреймворком, это поможет избежать неоднозначностей. Для примера таких ситуаций:
/*** @param list<int> Входящий параметр* @result array<string,float> Результат*/function foo(array $props):array{ ...}
Проверь у себя метод core\Valid::Value если не менял стой версии, что у меня - то там опечатка есть
case 'LOGIC': if($vtp != 'bolean') { $val = $val == 'false' ? false : boolval($val); } break;
if($vtp != 'boolean') {
В общем прогнал я твой проект через анализатор. Могу тебе прислать его вывод. (ну или дам инструкцию как его запустить - там дел на минут). Понятно, что часть ошибок не существенные или идут от твоего подхода к коду.... Но тем не менее на минимальном уровне 75 на максимальном более 1000. (там больше 1000 уже не показывает точное число просто "1000+"
Я не спора для - думаю это может выловить вот подобные опечатки.
Ранее при принятии решения не оценивал с точки зрения визуального восприятия. А ты тут написал... :)
Мажорная версия. Минорные только когда добавляются новые фичи и обновление не требует вмешательства. А тут при обновлении считай проект не будет работать, пока не заменишь на новый синтаксис шаблоны или не пропишешь старый.
Я когда работал над пакетом инкремента версий на эту тему копал...
Подумал.. подумал. и выпустил версию 2.0.0 (т.к. ломается совместимость) где "из коробки" синтаксис с префиксом end.
При этом, при желании, в три строки можно настроить "старый" синтаксис (вдруг случилось чудо и на моем фреймворке кто то портал огромный запилил 🤣 )
Подумаю еще... :)
это уже дублирование. тут выбирать "/" или "end" но не вместе
В этом проекте все полностью покрыто. Даже информеры есть в readme. вот например для шаблонизатора
1 - Это сторонний сервис. Он там глубже чекает. Например плохой бал выдаст если слишком большая глубина условных.
2.- Степень покрытия тестами
3 - прогон тестов в рзаных версиях php , для шаблонизатора это 8.5 и 8.6 (это будущий релиз) , фреймворк еще и 8.4