Я уже анонсировал новую фичу в блоголёте - иконки. Реализовал внутри постов меток/рубрик поддержку иконок, а вот сам класс иконок я так и не реализовал совсем по нескольким причинам, но сейчас наступило время доводки и реализации класса.

И так первое противоречие в классе иконок - это где хранить файлы иконок. Создавать отдельную папку в корне images или icon? Для такой папке потребуются права 777, чтобы можно было писать/удалять файлы в папке из скриптов. С другой стороны есть универсальный класс tfiles управления файлами и соответственно, должен ли знать/мочь управлять иконками этот класс? Эти два вопроса я никак не мог решить продолжительное время.

В конце концов я пришел к следующим выводам: класс иконок служит посредником для постов (рубрик/меток) для класса tfiles. То есть посты и рубрики обращаются к классу иконок, который берет свою информацию из класса файлов. То есть иконки это частный случай файлов. Папку для иконок можно будет поместить в папку files, таким образом будет доступ к иконкам как путь /files/icons/

В самом же классе файлов следует добавить/опредилить твид файлов как иконки, помимо существующих картинок, аудио, видео, бинарников. От этого шага меня останавливало то, что иконки являются картинками. Следует все же зафиксировать определения/понятия - картинки и иконки внутри блоголёта это разные сущности и они будут управляться по разному. Для иконок не нужен снапшот, они не принадлежать какому то конкретному посту (то есть они не будут в списке файлов прицепленных к посту). Иконки также имеют одно дополнительное свойство - тип (вид или как еще назвать). То есть иконка для поста, рубрики или конкретной метки. Логичнее назвать это свойство именем? Тип предполагает заранее известное количество типов, когда как название неограничивает. Ну например для постов по четным дням будут одни иконки, а по нечетным другие (это так для примера - мало ли какие будут критерии отбора). С другой стороны более чем достаточно id иконки (по другому достаточно выбрать иконку из списка в админке, где будет даже вредным id или тип иконки). Тип (название) иконки нужны при автоматическом создании поста - пост запрашивает класс иконок отдать id иконки для поста (по иному иконка по умолчанию для постов). То есть появляется новая сущность - стандартные иконки. Идеологически верным было бы создать для этого чиха свой класс, но думаю следует обойтись обыкновенным минимализмом -массив иконок по умолчанию, а в админке добавить страницу управления стандартными иконками - чтобы можно было поменять иконку по умолчанию.

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

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