Комментарии 13
Я например обычно использую viewScript для всей формы, а стандартные декораторы отключаю нафиг. Т.е. можно прям в форме перед рендерингом элемента, отрисовать картинку.
И еще одно маленькое замечание по коду: вот вы сначала удаляете картинку, а только потом в базу пишете, а что если произойдет сбой и данные в бд не сохраняться, а файл то уже того… удален. Тут собственно не плохо бы транзакцию использовать.
И еще одно маленькое замечание по коду: вот вы сначала удаляете картинку, а только потом в базу пишете, а что если произойдет сбой и данные в бд не сохраняться, а файл то уже того… удален. Тут собственно не плохо бы транзакцию использовать.
+1
либо вначале делать изменения в БД, а потом уже если изменение удачное, то удалять файл. Спасибо, учту.
0
Это тоже не верно, т.к. вы можете успешно сделать изменение в БД, а файл удалить не сможете, например в этот момент он будет кем — то использоваться.
0
Э… а как Вы файловые операции в транзакцию БД завернете?
0
Мой вам совет, пишите продукт для себя или для кого — то, бэкенд или фронт, это не должно иметь значения, код должен быть безопасным на столько, насколько это возможно.
0
Я отказался от зендовских форм, стало проще.
+1
Мне кажется, что
— ваш декоратор дублирует родной код, в частности рисование label, errors и т.п. можно оставить родным дектораторам. Обычно декоратор декорирует, а не «рисует всё»
— так pastebin.com/yMAK8tct лучше, чем так pastebin.com/w5ycEDM6, а можно ещё и неймспейс ваших фильтров добавить и подключать аналогично иным (родным) фильтрам [вкусовщина, да]
— рисовать декоратором чекбокс, а потом принимать его значение в обход form->getValues() напрямую из реквеста — некрасиво. Идеологически вернее было бы этому чаекбоксу появится не в связи с новым декторатором, а в связи с новым элементом «checkbox» в форме.
— создавать внутри формы модели и использовать их — некрасиво. Правильно — передавать данные форме при создании, тем более что в этом конкретном случае — это опции выпадающего списка
— ваш декоратор дублирует родной код, в частности рисование label, errors и т.п. можно оставить родным дектораторам. Обычно декоратор декорирует, а не «рисует всё»
— так pastebin.com/yMAK8tct лучше, чем так pastebin.com/w5ycEDM6, а можно ещё и неймспейс ваших фильтров добавить и подключать аналогично иным (родным) фильтрам [вкусовщина, да]
— рисовать декоратором чекбокс, а потом принимать его значение в обход form->getValues() напрямую из реквеста — некрасиво. Идеологически вернее было бы этому чаекбоксу появится не в связи с новым декторатором, а в связи с новым элементом «checkbox» в форме.
— создавать внутри формы модели и использовать их — некрасиво. Правильно — передавать данные форме при создании, тем более что в этом конкретном случае — это опции выпадающего списка
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Использование Zend_Form_Element_File в CRUD