slo_nik, я изначально не до конца вник в вопрос ТС и сейчас отредактировал свой ответ под него, касательно вашего вопроса: я когда-то делал это решение для себя для подобных случаев, оно полностью закрывает потребности, про timestampAttribute если честно не знал, но тестово попробовав его сейчас не до конца понял, конвертирует ли оно на лету дату, чтобы например при выводе я мог дату хранящуюся в базе ввиде полного таймштапа или инта сразу вывести в нужном мне виде без доп. телодвижений, ввиде применения к ней функции или в подключении доп. кода в afterFind?
Там как раз рассматривается физика и столкновения.
Что же касается вашей структуры, если вы имеете ввиду что у вас одна картинка суши и воды, то тут несколько вариантов:
1) Разрезать картинки;
2) Наложить поверх суши прозрачную картинку, повторяющую ее контуры, я бы даже сказал более простую картинку (меньше изгибов, т.к. все эти неровности при проработке физики требуют больше ресурсов);
3) Мониторить положение корабля и, если он по координатам касается земли, то менять координаты на воду или отключать возможность двигаться дальше. Вероятно это самый простой вариант, не требующий подключения физики.
John Doe: отчего же невозможно, физику можно наложить либо на края видимых областей, либо если представить ваш песок ввиде объекта (картинка), то даете ему физику, сообщаете кораблю что он может сталкиваться с песком и песку указываете, что столкновения на него действуют, но не смещают его. Это немного сумбурно, просто поищите уроки на эту тему, на сайте https://www.raywenderlich.com они должны быть.
Да, сейчас по-умолчанию все SPA сайт одностраничные приложения конкатенируют и обфусцируют свой js код с помощью webpack и других ему подобных. Поищите открытые примеры, например вот https://react.rocks/tag/Editor
FlooDwm: нужно вставить ваш вызов в инициализатор или один из методов, вызываемых при инициализации и отрисовке ViewController (viewDidLoad, viewWillLoad и т.п.)
Самый простой вариант как-то так:
1) Найти сервис, предоставляющий услугу распознавания текста и api на платной или бесплатной основе, надо поискать, может у ABBYY или Яндекса есть.
2) Сделать приложение, отправляющее либо прямо на этот сервис, либо на ваш сервер изображение, ожидающее от него ответ и т.п.
DmitriyFrolov: точно не скажу, но вероятно надо добавить свойство в модель (переменную), на него повесить все валидацию, а в него и из него значения получать с помощью поведений (behaviour), которые надо настроить так, чтобы при загрузке модели они помещали нужные значения в ваше публичное свойство и т.п. Но это как-то выглядит сложнее, чем ваша реализация :)
Хотя конечно лучше такие свойства как у вас держать в отдельное таблице и привязывать как один ко многим, а то все эти танцы с бубном вокруг implode\explode - кастыли.
Правильно записывать дату в формате даты, но в большинстве уроков и в стандартной поставке Yii все поля с датой сделаны через integer, я в своих проектах тоже использую число, вместо даты, это не очень критично, если проекту не нужно выводить даты и считать какую-либо статистику с привязкой к пользовательскому времени. Другими словами, если всех ваших пользователей устроит, что время скажем только московское, то ок, а вот если вам нужно выводить статистику пользователям по их часовым координатам, т.е. пользователю из Америки показывать по таким-то часам, пользователю из России по таким-то часам, то лучше хранить дату в формате даты во временной зоне UTC ( https://ru.wikipedia.org/wiki/%D0%92%D1%81%D0%B5%D... ), а при выводе говорить, что время нужно выводить московское или другое.
Если таких сложностей нет, то храните в integer (unix time), а дальше sql запросами выбираете вчерашние, сегодняшние и т.п.
VerbFilter проверяет тип запроса, а не данные в нем, вообще, если подходить правильно, то надо встраивать редактор, который конвертирует html в markdown, и при сохранении полностью чистить текст от html тегов, а при выводе конвертировать markdown в html, но это уже требует больше действий свашей стороны.
Антон Натаров: это же на фронтэнде, при сохранении и выводе все равно лучше удалять все теги, не входящие в список разрешенных, иначе злоумышленник может просто сделать post запрос в обход и вашего редактора и как минимум вы увидите неожиданные теги, как максимум XSS.
ну я как бы этот момент уточнил)
А будет 20 мест, везде так делать будете?