JohnCMS | Upload

6.84K
.
(\/)____o_O____(\/)

ramzes, это тут его не видно, он постоянно следит за комитами и даже пулреквесты пилит

.
# Koenig (22.08.2016 / 20:19)
ramzes, это тут его не видно, он постоянно следит за комитами и даже пулреквесты пилит
да как бы я не о невидности
.

Для обработки изображений в последнем своем проекте использовал данный пакет.

В живую это выглядело так:

$this->fileTable->edit($file, function(SimpleImage $editor) use($data){                                                                                
  $editor->crop(                                                                   
    (int) $data['up_photo']['x'],                                                  
    (int) $data['up_photo']['y'],                                                  
    ((int) $data['up_photo']['x'] + (int) $data['up_photo']['width']),          
    ((int) $data['up_photo']['y'] + (int) $data['up_photo']['height'])          
  );                                                                            
  $editor->resize(1080, 1200);                                                     
  return [80, Mimetype::IMG_JPG];                                               
});
.
(\/)____o_O____(\/)

ramzes, не стоит заимствовать интерфейс , покажу кодом

старый код (+/-)

$handle = new upload($_FILES['image']);
                if ($handle->uploaded) {
                    // Обрабатываем фото
                    $handle->file_new_name_body = $cid;
                    $handle->allowed = array(
                        'image/jpeg',
                        'image/gif',
                        'image/png'
                    );
                    $handle->file_max_size = 1024 * $set['flsz'];
                    $handle->file_overwrite = true;
                    $handle->image_x = $handle->image_src_x;
                    $handle->image_y = $handle->image_src_y;
                    $handle->image_watermark = '../files/library/images/watermark.png';
                    $handle->image_watermark_x = 10;
                    $handle->image_watermark_y = 10;
                    $handle->image_watermark_position = 'LB';
                    $handle->image_watermark_no_zoom_in = true;
                    $handle->image_watermark_no_zoom_out = false;;
                    $handle->image_convert = 'png';
                    $handle->process('../files/library/images/orig/');
                    $err_image = $handle->error;
                    $handle->file_new_name_body = $cid;
                    $handle->file_overwrite = true;

                    if ($handle->image_src_y > 240) {
                        $handle->image_resize = true;
                        $handle->image_x = 240;
                        $handle->image_y = $handle->image_src_y * (240 / $handle->image_src_x);
                    } else {
                        $handle->image_x = $handle->image_src_x;
                        $handle->image_y = $handle->image_src_y;
                    }

                    $handle->image_watermark = '../files/library/images/watermark.png';
                    $handle->image_watermark_x = 10;
                    $handle->image_watermark_y = 10;
                    $handle->image_watermark_position = 'LB';
                    $handle->image_watermark_no_zoom_in = true;
                    $handle->image_watermark_no_zoom_out = false;
                    $handle->image_convert = 'png';
                    $handle->process('../files/library/images/big/');
                    $err_image = $handle->error;
                    $handle->file_new_name_body = $cid;
                    $handle->file_overwrite = true;
                    $handle->image_resize = true;
                    $handle->image_x = 32;
                    $handle->image_y = 32;
                    $handle->image_convert = 'png';
                    $handle->process('../files/library/images/small/');

                    if ($err_image) {
                        echo functions::display_error($lng_gal['error_uploading_photo'] . '<br /><a href="?act=addnew&amp;id=' . $id . '">' . $lng['repeat'] . '</a>');
                    }
                    $handle->clean();
                }



новый код (+/-)

// выборка
class Images extends Kimage {
public function add($file) {
        $original = $this->tmp($file);
        $name = $this->uniqid();
        $original->save($this->dir . self:S . 'orig' . self:S . $name . '.png');
        $original->reWidth(480)
                ->save($this->dir . self:S . 'big' . self:S . $name . '.png');
        $original->reWidth(64)
                ->save($this->dir . self:S . 'small' . self:S . $name . '.png');
    }
}

.
(\/)____o_O____(\/)

Delphinum, кстати давно на этот класс положил глаз, но функциональность избыточна

.
# ramzes (22.08.2016 / 19:57)
https://github.com/brandonsava ... e.php
Это файлосрачь, а не модульное программирование
Это ООП

Вообще некоторые разумные мысли в этом топике есть, но, вы какую-то херню несёте тут.

Что касается проблемы "куча файлов" vs "куча строк", то как уже сказали, истина где-то посередине. Листинги в несколько тысяч строк такой же идиотизм, как и файлы с одной единственной функцией или переменной. Только первое почему-то встречается гораздо чаще, чем второе. И я скорее всего даже знаю почему. Думаю, не сложно развить мысль. Дальше, если не ошибаюсь, то в PHP из-за особенностей автозагрузки принято выделять по файлу на каждый класс, потому тут хочешь не хочешь, придётся с этим мириться. По моему мнению проблема высосана из пальца. Кому какое дело, что там наворотили в сторонней библиотеке по этой части? Ты выбрал, что понравилось, просмотрел код, всё ок, подключил её через composer и забыл. Всё остальное не имеет значения. Дальше только обновляешь по мере необходимости. Всё, закрыли тему.

Дальше, ТС должен был обозначить проблему и пути её решения. Вот у нас есть древний кусок говна, который берёт на себя кучу задач, надо что-то с этим сделать. Предлагаю взять вот эту и эту библиотеку. Ну а дальше вместе решаете, подходят предложенные решения или нет. Если нет то почему, предлагаете свои. Вы же тут какой-то хернёй занимаетесь. Ой, там 100500 файлов и вообще на шитхабе одно дерьмо, давайте свой велосипед запилим. В итоге так никуда и не продвинулись. Давайте не тупите
.

Koenig, дело не в том что у тебя обращение короче, дело в том что предется переписывпть кучу кода в джоне.
проще некий драйвер сделать который будет транслировать логику обращений в новые классы

.
# reaper (22.08.2016 / 20:44)
Это ООП

Вообще некоторые разумные мысли в этом топике есть, но, вы какую-то херню несёте тут.

Что касается проблемы "куча файлов" vs "куча строк", то как уже сказали, истина где-то посер
это херь
ооп это вроде как с утра обьектным проэктированием было, а не выделением файла на функцию сложностью находящуюся где то на самом дне ЛЮБОГО программирования.
не серьезно, файл на варидацию числа в диапазоне и аж ДВА метода на это? ресурсы на поиск, валидацию (лол) файла, выделение под него памяти, включение в общий процесс.
да это пздц какой то, я сейчас даже не с позиции кодера\говнокодера говорю, с позиции нормального человека не обделенного элементарной логикой (самым минимумом необходимым что бы понять, что это точно такой же бред как и организация кода форума в джоне, например)
.
(\/)____o_O____(\/)

ramzes, ну я пройду в те пять мест вызова старого класса, их примерно 5 , библиотека, альбомы, аватары, еще где то, удаляю 30 строк, добавляю одну
тут не такой мегаогромный проект, и пример дал, там каша, кучу свойств определяется

.

ramzes, Ты несёшь какую-то херню и пытаешься сэкономить на спичках. Попробуй немного абстрагироваться и понять самостоятельно, причём здесь ООП, шаблоны проектирования, вот это вот всё.

Всего: 140