Дисциплины - Объектно-ориентированное программирование

ООП в PHP - Фрэймворк Laravel - Создание и использование класса загрузки изображений

Этапы разработки

1. Обновить composer

composer self-update

2. Установить зависимость intervetnion image

composer require intervention/image

3. В файле config/app.php добавить провайдер зависимости (после подключения зависимостей ядра, но до провайдеров приложения). Лучше всего это делать сразу после коментария Package Service Providers..:

Intervention\Image\ImageServiceProvider::class

В этом же файле добавить ссылку на фасад Image:

'Image' => Intervention\Image\Facades\Image::class

С прочими особенностями установки можно ознакомиться по адресу официальной документации пакета - http://image.intervention.io/getting_started/installation

4. В дирректории /app создать еще одну папку libs, в которой будут храниться вспомогательные классы приложения.

5. В папке libs создать файл Imap.php

Рассмотрим содержимое файла:

namespace App\Libs;

use Image;
use Auth;

class Imag{
  public function url($path = null, $dirrectory = null, $name = null){
    if($path != null){
	  if($dirrectory != null){
	    $dir = public_path() . $dirrectory;
	  }else{
	    if(!Auth::guest()){
		$dir = public_path() . '/uploads/'. Auth::user()->id . '/';
		}else{
		$dir = public_path() . '/uploads/0/';
		}
	    if(!file_exists($dir)){
		 mkdir($dir, 0777, true);
		}
	  }
	  if($name != null){
	    $filename = $name;
	  }else{
	    $filename = date('y_m_d_h_i_s').'.jpg';
	  }
	  $img = Image::make($path);
	  $img->resize(600, null, function ($constraint) {
			$constraint->aspectRatio();
	  });
	  $img->save($dir . $filename);
	  $img->resize(300, null, function ($constraint) {
			$constraint->aspectRatio();
	  });
	  $pic_small = 's_'. $filename;
	  $img->save($dir . $pic_small);
	  	  $img->resize(100, null, function ($constraint) {
			$constraint->aspectRatio();
	  });
	  $pic_small2 = 'ss_'. $filename;
	  $img->save($dir . $pic_small2);
	  return $filename;
	}else{
	  return false;
	}
  }
}

6. Далее необходимо подготовить форму с элементом input type="file" name="picture1".

Для самого тэга form необходимо добавить атрибут enctype="multipart/form-data"

7.Использование класса Imag в контроллере, обрабатывающем форму:

$pic = \App::make('\App\Libs\Imag')->url($_FILES['picture1']['tmp_name']);

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
814301 БГУИР
814302 БГУИР
814303 БГУИР
894351 БГУИР
90421 БГУИР


Изображения Видео

1. Абстрактная фабрика https://www.youtube.com/watch?v=1mVONOCxfLg
2. Фабричный метод https://www.youtube.com/watch?v=5UqUDR6_2cY
3. Шаблон декоратор https://www.youtube.com/watch?v=Lwb9bm8yKD0
4. Dessign patterns on PHP https://github.com/domnikl/DesignPatternsPHP
5. Приёмы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
6. Приемы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
7. Ajax http://erud.by/ajax
8. Ajax http://erud.by/ajax
9. Ajax http://erud.by/ajax
10. Документация Laravel http://laravel.com
Задание к курсовой работе
Задание к курсовой работе
Вопросы к экзамену