проще все-же как тут, при добавлении картинки она прописывается как тег img с соответствующим урлом. Если задача вытаскивать картинки как-то отдельно от текста - как вариант просто вставлять тэги с изображением только в начале комментария. или жсом выдергивать из тела, или регулярками, кароче дальше извраты )
по классике - в базе урл картинки, (в правильной версии хранения - только имя файла, мало ли как завтра путь до картинки поменяется), в полях хранится ид, ид объекта-владельца, тип объекта-владельца, соответственно еще таблица типов должна прилагаться, или в более простом случае в объекты разных типов хардкорятся цифрой иды типа объекта(например в классе comment прописывается свойство typeid = 3, при сохранении картинок в комент в таблицу картинок в тип объекта-владельца пишем 3).
Роман: vine - почему нет, в общем случае после компиляции запускается, проверено. Не без глюков, но и задача, извините, не айс. ВМ вполне решение если в конторе допустим нельзя поставить винду на машине из каких-либо соображений как рабочую среду, но в сандбоксе - пожалуйста. Было, пробовали, знаем. Так что без категоричностей плс.
Алексей Струков: о различиях в прочтении: страница есть частный случай документа - т.е. это документ прочтенный браузером. Onload Применяется к тегам body, frameset. И собсно по этому на картинку его не повесишь.
Алексей Струков: для события загрузки всех элементов DOM есть DOMContentLoaded, это НЕ ТО ЖЕ САМОЕ, и тут оно срабатывает именно как вы говорите, т.е. после загрузки последнего закрывающего тега. И вроде как оно не во всех браузерах поддерживается.
Andrew Gubskiy: пример хотя-бы чего-то подобного, ибо наводит на мысль о неправильном понимании системы бэкенд/фронт, ибо каждая структура данных имеет особенности исполнения, нет единой формы данных. Кароче пример в студию, что нужно? Типа "есть у меня вордпрессная база и админка, хочу рулить не из админки, а по ресту..."
Андрей: приватные свойства необходимы для целостности структуры приложения, допустим приложение делают больше чем 1 человек, тогда чтобы объект в котором недопустимы прямые изменения значений в определенных полях используют модификатор private, например важно чтобы туда попадали данные определенного вида, тогда в сеттер прописывается фильтр на это значение. Как вариант.
Скорее всего тогда отслеживается IP, ну и есть еще Local Storage, возможно используются оба варианта. В цмс стараются учесть все варианты, т.к. это продукт нацеленный на готовое решение, и никто из пользователей не захочет разбираться какого лешего что-то там не работает.
Андрей: то есть для каждого объекта у вас свой метод сохранения? и инициируются они по разному? Интереесно.. а не проще в базовом объекте создать метод save() и для каждого объекта не переписывать этот метод? Ну, знаете, как в настоящем ооп?