Челендж на 2026

ArbNet
На сайте с 27.10.2019
Offline
154
#631
Sly32 #:
Если честно - это гораздо интереснее твоего ФФ

Прикольная игрушка получилась.

Может работать как обычный чат и как агент, создавать и дорабатывать проекты, имеет память чата, сканирует и запоминает проект, может настраиваться под конкретный проект в конфиге, при открытии другого проекта меняется и конфиг и память проекта.

ЗЫ. Больше ничего не расскажу и не покажу, код выкладывать не буду.

S3
На сайте с 29.03.2012
Offline
395
#632
ArbNet #:
Больше ничего не расскажу и не покажу, код выкладывать не буду.

значит ничего у тебя нет. То что ты описал - делается на расте за полчаса. 

А те модели, которыми ты пользуешься - просто смех. Для детей. Естественно что они ничего не умеют. 

Александр Воробьев
На сайте с 03.02.2020
Offline
67
#633
ArbNet #:
Давай, ради интереса, может другим пригодится.

Эта инструкция нужна только тем, кто не соблюдает простейшие стандарты де-факто вебразработки. Таковых бесконечно мало. Большинству достаточно одной командой поставить стан и типовой конфиг взять. 

Но в любом случае PHPStan поможет найти скрытые баги и сделать код надежнее, даже если структура проекта нестандартная.

Шаг 1. Необходимо установить PHPStan https://github.com/phpstan/phpstan

Тут два варианта

Вариант 1 Если очень не хочется composer:
Скачай готовый исполняемый файл phpstan.phar отсюда: https://github.com/phpstan/phpstan/releases

Вариант 2 Рекомендую этим воспользоваться.
1.1 Установить composer Инструкция тут https://getcomposer.org/download/
1.2 Ставим стан. php composer.phar require --dev phpstan/phpstan если композер поставишь в проект или если глобально composer require --dev phpstan/phpstan

Шаг 2. Создаем bootstrap.php он необходим т.к. у тебя своя автозагрузка. Просто скопируй свой run.php в нем оставь все функции, установку констант и регистрацию автозагрузчика. остальное (например установка обработчика ошибок) убирай. 
В общем убери всё, что выполняет действия прямо сейчас (кроме регистрации автозагрузчика). Иначе анализатор зависнет или упадет.

Шаг 3. Создаем конфиг в корне проекта файл phpstnan.neon

parameters:
    phpVersion: 80100
    bootstrapFiles:
        - bootstrap.php  # подключить существующий загрузчик
    level: 9  # начать с минимального уровня
    paths:
        - node/
        - skin/
        - mods/

Версию php установи какую тебе надо именно в том формате как в примере. (там 8.1)
bootstrap.php - файл который делали на втором шаге
level - от 0 до 9. По хорошему надо начинать с уровня 1 устранять все ошибки и повышать пошагово. На 9 уровне там пипец какие условия :). Возможно в твоем фреймворке 9ый не возможен.
paths - каталоги где могут быть исходники

Шаг 4 Запуск
Если выбрал первый путь php phpstan.phar analyse
Если выбрал второй путь php vendor/bin/phpstan analyse 

php phpstan.phar analyse /papth/to/file.php - так можно проверить только один файл

Конечно инструмент не скажет "вот это замени на это". Т.е. ошибку надо будет понять, проанализировать и исправить. Т.е. эта не халява отменяющая необходимость знаний. Этот инструмент только подсветит проблему.

Бдит стан за многим. Понимаю, что ты себя считаешь очень знающим, но рекомендую править. Т.к. если кто то будет пользоваться твоим фреймворком, это поможет избежать неоднозначностей. Для примера таких ситуаций:


Стан бдит за более строгой типизацией чем php. Т.е. если написать

/**
* @param list<int> Входящий параметр
* @result array<string,float> Результат
*/
function foo(array $props):array{
    ...
}

то стан будет проверять, что на вход передается НЕ ассоциативный массив содержащий только целые числа, а результат обрабатывается как ассоциативный массив где ключ - строка, а значение - флоаты. В случае массивов он, с определенного уровня, вообще будет требовать уточнения типа, т.е. без подобного phpdoc не пропустит.  ИМХО это все важно для проектов класса фреймворк (т.е. расcчитано, что будут пользоваться другие разработчики)
GitHub - phpstan/phpstan: PHP Static Analysis Tool - discover bugs in your code without running it!
GitHub - phpstan/phpstan: PHP Static Analysis Tool - discover bugs in your code without running it!
  • phpstan
  • github.com
PHP Static Analysis Tool - discover bugs in your code without running it! - phpstan/phpstan

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий