Веб-морда к тэгам
Предпосылка первая: cli это конечно хорошо, но пользоваться этим для "штучной" работы - неудобно. Хочется иметь файл перед глазами как минимум для картинок и видео.
Предпосылка вторая: как проще всего написать переносимый гуй? Сделать вебморду! Шинды, слава б-гу, у меня уже нет, а вот андроиды есть.
В результате - был накидан прототип интерфейса для end-user'а, а данном случае - меня.
Дизайн был честно содран у cups'а, но только внешний вид, та страшные таблицы что внутри я брать не стал (вместо этого написав свои собственные страшные таблицы).
Первая версия - на php, но я посмотрел на тот лютый звиздец, что получился снёс её от греха подальше.
Ладно, пойдём длинным путём. Взял перл, взял html фреймворк на нём, и запилил вторую версию, в REST'ом и rout'ами.
Ключевые отличия от phpшной:
- self-contained. В фреймворке аж 2 встроенных веб-сервера, что позволяет вообще отказаться от апача/nginx'а/whatever и их настройки. Запустил - заработало.
- routes. Без анальных расширителей или server-side rewrites от php вы их не получите. Это только внешние проявления, но всёж-таки сравните:
/index.php?page=search&terms=bla-bla&page=2
vs/search/bla-bla/2
- Минимизация кода. Собственно всю механику веба можно скинуть на фреймворк. И писать, сцуко, само приложение, а не сначала нужный фреймворк, а на то что осталось из сил - приложение. Ну и я не настолько крут, чтобы за минимальное время написать приличный и безопасный фреймворк на пыхе.
Если это вообще возможно. - В публичной директории не лежит вообще ничего кроме статики. Инклюды/выполнение загруженного на сервер кода, что дело обычное для php, здесь значительно затруднены.
В сухом остатке, сейчас работает всё необходимое: листинг, предпросмотр, поиск и управление тэгами, и допиливается остальное. Публиковать пока не планирую (до аудита), т.к. писалось для себя и быстро, но кодом поделюсь по запросу.