пойду поищу, ссылки тут ранее предлагали, и обсуждение было
# ValekS (22.08.2016 / 22:32)
Вот это крутая штука. Я знаком с этим классом, мне понравился. Все в одном файле и необходимый функционал есть(не знаю почему он избыточен).
че то посмотрел немножко, уже хочется к своему пару идей добавить заимствованных оттуда)
интересная штука
Koenig,
валидаторы,
request, а вот файлового хранилища и редактора картинок не делал. Но думаю вам мои решения не подойдут, ибо:
* Слишком ООП
* Есть более качественные аналоги
ramzes, учитывая направленность вашего движка, вполне можно обойтись каким нить FileStorage с функцией загрузки, обработки, отгрузки. Не совсем ООП, но понятно и удобно будет.
Delphinum, а я бы взглянул хотя бы на первичные наметки файлового хранилища
______________
мое фиговое ооп в комплекте выглядит примерно так (+/-)
if(app::user()->right('account.edit')) {
switch(app::router()->query(2)){
case 'avatar':
if(app::router()->query(3)=='upload' AND $upload = app::file()->uploaded('newavatar')){
$upload->extension(['image/jpeg', 'image/png', 'image/gif']);
$upload->minSize = 1024;
$upload->maxSize = 1024*1024;
if($upload->validExtension()){
if($upload->saveFile()){
app::image($upload->tmpFile());
app::image()->minHeight(200);
app::image()->minWidth(200);
app::image()->maxHeight(2400);
app::image()->maxWidth(2400);
if(app::image()->valid()){
app::image()->replaceData(
[
'x' => 200,
'y' => 200,
'type' => 'png',
'save' => app::storage()->filterPath(app::storage()->avatar(app::user()->id())),
'trim' => true
]
);
app::image()->replace();
if(app::storage()->avatar(app::user()->id(), true)){
app::events()->registerEvent(
[
'type' => 3,
'bind' => 'image.avatar.'.app::user()->id(),
'event' => 'сменил аватар',
'url' => '/user/'.app::user()->id().'/'
]
);
jsOnResponse('{"filename":"'.app::storage()->avatar(app::user()->id()).'", "error":""}');
}else{
...
}
}else{
...
}
$upload->deleteTmpFile();
}else{
...
}
}else{
...
}
}else{
....
}
# Delphinum (22.08.2016 / 23:25)
Не совсем ООП, но понятно и удобно будет.
Тут абсолютно не важно, ООП это, или нет, так же не важна сложность самой библиотеки.
Юзерам в ней самой копаться не придется.
ВАЖНО, чтоб она была проста и легка в применении и
была безопасна, чтоб начинающие быдлокодеры не натворили беды.
ramzes, ну я хз, не знаком с теми задачами, которые вы ставите перед хранилищем. Это довольно прикладной класс и реализовать его можно как угодно.
# AlkatraZ (22.08.2016 / 23:28)
Тут абсолютно не важно, ООП это, или нет, так же не важна сложность самой библиотеки.
Юзерам в ней самой копаться не придется.
ВАЖНО, чтоб она была проста и легка в применении и была безопасна, чт
Ну тем более если не важно ООП и сложность, делайте просто с помощью какого нить "Божественного класса", который будет за все это отвечать.
# Delphinum (22.08.2016 / 23:31)
ramzes, ну я хз, не знаком с теми задачами, которые вы ставите перед хранилищем. Это довольно прикладной класс и реализовать его можно как угодно.
ну я хотел сделать некий контролЁр доступа к хранилищу, выделить адрес\проверить адрес\одобрить адрес, по возможности не дать записать в хранилище минуя контролЁра, хотя с этим пока проблемы
вот и интересно, возможно и не мне одному, у тебя довольно оригинальные идеи реализации, из тех что я понял)))
# Delphinum (22.08.2016 / 23:32)
Ну тем более если не важно ООП и сложность, делайте просто с помощью какого нить "Божественного класса", который будет за все это отвечать.
Я уже ранее писал, что раз уж применяется Zend, у него на борту уже есть все необходимое для управления выгрузками, включая Upload Progress Bar.
Просто потом, когда руки дойдут до этого, надо будет написать класс-фасад, который будет иметь простой для понимания интерфейс.