пойду поищу, ссылки тут ранее предлагали, и обсуждение было
пойду поищу, ссылки тут ранее предлагали, и обсуждение было
# 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.
Ну тем более если не важно ООП и сложность, делайте просто с помощью какого нить "Божественного класса", который будет за все это отвечать.