Pull to refresh

Comments 15

Я являюсь сторонником мнения, что утилиты для разработки на каком-то языке должны быть написаны на нем же.
Скажите, а IDE у вас тоже на php?
Тут я могу показаться непоследовательным, но все же нужно быть объективным — на данный момент (вероятно, и в будущем) PHP не позволяет написать хорошей IDE. Хотя для него есть, конечно, библиотеки для GUI, но других проблем языка это не решает: производительность, ресурсы.
А почему не используете composer? Много проблем бы решило. Консольную часть можно было писать с использованием компонента console symfony2.
Да, спасибо, composer я планировал использовать.
Мне достаточно автозапуска тестов на комите. Помогает в этом IDE. Даже в Вашем случае лучшим выходом был бы плагин для IDE.
Дело в том, что в случае TDD, которому я стараюсь следовать при разработке, тесты прогоняются намного чаще, чем делаются коммиты. Раньше в моей IDE не было плагина, который бы гонял тесты на изменения файлов. Но сейчас поискал и, говорят, они все же сделали возможность отслеживать изменение файлов и вешать свои обработчики (обработчик надо написать самому, разумеется). Кроме того, это все же решение не для всех редакторов/IDE.

По поводу тестов на коммите. Вы же, наверное, там прогоняете все тесты? autotest же гоняет тесты только над той областью, где произошли изменения. Это может быть как один единственный файл (при небольшом установленном таймауте будет именно так), так и ближайшая общая папка для нескольких измененных файлов. Соответственно, тесты гоняются быстрее и чаще, поэтому о проблемах узнаешь гораздо быстрее.
Тут я исходил из своих привычек, пожалуй. Я могу внести изменения в файл, потом быстро убрать их. Фактически хеш файла не изменится, но время модификации будет другое. Конечно, с точки зрения производительности это может стать проблемой для очень больших проектов, но это покажет время, думаю. В действительности, в данный момент есть еще одна проблема — я слежу абсолютно за всеми файлами, таким образом, хеш генерируется и для любой статитки, что явно лишнее. Это я намерен в ближайшее время исправить.
Спасибо за инструмент. Приятно видеть хороший код на PHP!

От себя хотел бы добавить, что использование таких компонентов как symfony/console облегчили бы вам жизнь и сделали код еще проще, а symfony/process позволили бы также решить проблемы запуска в различных ОС, для вычисления хеш сум думаю было бы удобнее использовать RecursiveDirectoryIterator.
Спасибо за совет.
Внедрил RecursiveDirectoryIterator.
Думаю, позже заюзаю и symfony/console.
Было бы немного интереснее в последствии прикрутить inotify/fsevents/ReadDirectoryChangesW вместо бесконечного цикла для отслеживания изменений в файлах. Есть расширение для php для работы с inotify, но полноценного такого нету.
Спасибо за рекомендацию, использование бесконечного цикла меня самого совсем не радует, поэтому присмотрюсь к вариантом.
Нормальное решение все-равно потребует реализации экстеншена на Си/Си++. С другой стороны это не так уж и сложно реализовать.
Взгляните на github.com/henrikbjorn/Lurker. Он использует inotify если возможно, а если нет, то работает как у вас. Но, возможно, Lurker мог бы освободить вас от лишних телодвижений.
Большое спасибо, посмотрю!
Sign up to leave a comment.

Articles