рдкрд░рд┐рдгрд╛рдо рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдордХреНрдЦреА рдкрд░ рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди

рдЖрдЬ, рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдЬреЛ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрди рдЫрд╡рд┐рдпреЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд╡реЙрдЯрд░рдорд╛рд░реНрдХ, рдЧреНрд░реЗ рдХреЗ рд╢реЗрдбреНрд╕, рд╕реАрдкрд┐рдпрд╛, рдЖрджрд┐ред
рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

  1. рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ (рдирдП рдЖрдХрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рд┐рд░рджрд░реНрдж рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)
  2. рдЫрд╡рд┐ рд╕рдВрд╢реЛрдзрди: рд╡реЙрдЯрд░рдорд╛рд░реНрдХ рдЬреЛрдбрд╝рдирд╛, рдЧреНрд░реЗрд╕реНрдХреЗрд▓, рд╕реЗрдкрд┐рдпрд╛ рдкреНрд░рднрд╛рд╡ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдирдП рдкреНрд░рднрд╛рд╡ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
  3. рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореБрдЦреНрдп рдзрд╛рд░рд╛ (рдкреГрд╖реНрда рд▓реЛрдбрд┐рдВрдЧ рдЧрддрд┐) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
  4. рдкреГрд╖реНрда рдкрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рдзрд╛рди рдЖрдкрдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реАрдорд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рд╕реАрдорд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ ( rus )
  5. url рдХреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдмрдЪреЗрдВ
  6. рдХреИрд╢реЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо


рдирд┐рд░реНрдгрдп


рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдзрди рдХреА рдкрд╕рдВрдж рдХрд╛ рддрд░реНрдХ рджреЗрддрд╛ рд╣реВрдВред PHP рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ 3 рдореБрдЦреНрдп рдкрд╣рдЪрд╛рди рдХреА: рд╡рд╛рдЗрдбрдЗрдореЗрдЬ , PHPThumb , рдЗрдореЗрдЬрд┐рди ред рдореЗрд░реА рдкрд╕рдВрдж рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдкрд░ рдЧрд┐рд░ рдЧрдИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рджреЛ рдХреЛ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ред рдореИрдВрдиреЗ рдЯрд┐рд╡рд┐рдЧ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред рдЦреИрд░, рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ Nginx рдФрд░ Apache рдХреЛ рдЪреБрдирд╛ред Nginx - рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдФрд░ рд╕рд╛рдЭрд╛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЗ рд▓рд┐рдП рдЕрдкрд╛рдЪреЗред

рдЧрд┐рдЯрд╣рдм рднрдВрдбрд╛рд░

рд╕рдорд╛рдкреНрдд рд╕рдорд╛рдзрд╛рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
PHP рдореЗрдВ
echo thumb(__DIR__ . '/images/Chrysanthemum.jpg', '200x100', [ "watermark" => "right top" ]); 

рдЯрд╣рдиреА рдкрд░
 <img src="{{ image|thumb("200x200", { "watermark": "right bottom", "grayscale": true }) }}" /> 

рдЗрд╕ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЯреНрд╡рд┐рдЧ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
 $twig->addExtension(new \Bazalt\Thumbs\Extension()); 


1. рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, thumb рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рд▓реЗрддрд╛ рд╣реИ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдХрд╛рд░ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рддрд╛ рд╣реИ рдпрджрд┐, рдЖрдХрд╛рд░ рдореЗрдВ рдЖрдиреБрдкрд╛рддрд┐рдХ рдХрдореА рдХреЗ рдмрд╛рдж, рдкрдХреНрд╖реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдпрджрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ 0 рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рдЫрд╡рд┐ рдЖрдиреБрдкрд╛рддрд┐рдХ рд░реВрдк рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреА, рдФрд░ рджреВрд╕рд░реА рддрд░рдл рдХрд╛ рдЖрдХрд╛рд░ рдЖрдиреБрдкрд╛рддрд┐рдХ рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдЖрдХрд╛рд░ '200x0' рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде 400x300 рдЖрдХрд╛рд░ рдХреА рдПрдХ рдЫрд╡рд┐ 200x150 рдХрд╛ рдЖрдХрд╛рд░ рд╣реЛрдЧреА, рдФрд░ '0x200' рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде - 266x200ред

2. рдЫрд╡рд┐ рд╕рдВрд╢реЛрдзрди

рдЫрд╡рд┐ рд╕рдВрд╢реЛрдзрди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдСрдкрд░реЗрд╢рдВрд╕ рдХреНрд▓рд╛рд╕ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЗрд╡рд▓ size рдХрд╛рд░реНрдп рд╣реИ, рдЕрдкрдиреА рдЦреБрдж рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред thumb рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЗрди рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╢реЛрдзрдХ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ thumb рд╕реЗ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдпрд╣ рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕рдХреА рдХреБрдВрдЬреА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдореВрд▓реНрдпред

рдХрдИ рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрджрд╛рд╣рд░рдг
 class Operations extends \Bazalt\Thumbs\Operations { public function watermark(\Imagine\Image\ImageInterface $image, $options, $allOptions) { $imagine = new \Imagine\Gd\Imagine(); $wm = $imagine->open(__DIR__ . '/images/watermark.png'); $size = $image->getSize(); $wmSize = $wm->getSize(); list($x, $y) = explode(' ', $options); if (!is_numeric($x)) { $x = ($x == 'right') ? ($size->getWidth() - $wmSize->getWidth()) : 0; if ($x < 0) $x = 0; } if (!is_numeric($y)) { $y = ($y == 'bottom') ? ($size->getHeight() - $wmSize->getHeight()) : 0; if ($y < 0) $y = 0; } $point = new \Imagine\Image\Point($x, $y); return $image->paste($wm, $point); } public function grayscale(\Imagine\Image\ImageInterface $image, $options, $allOptions) { $image->effects()->grayscale(); return $image; } public function sepia(\Imagine\Image\ImageInterface $image, $options, $allOptions) { $image->effects() ->grayscale() ->colorize(new \Imagine\Image\Color('#643200')); return $image; } } 



3. рдореБрдЦреНрдп рдзрд╛рд░рд╛ рд╕реЗ рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╣рдЯрд╛рдирд╛

рдЫрд╡рд┐ рдХреЛ рддреБрд░рдВрдд рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЬрд╣рд╛рдВ рдпрд╣ рдХреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЦрд░рд╛рдм рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рд▓реЛрдбрд┐рдВрдЧ рдЧрддрд┐ рднреА рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рд╣реИ - рд╕рдВрд╕рд╛рдзрд┐рдд рдЫрд╡рд┐ рдХреА рдкреАрдврд╝реА рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдмрдирд╛рдпрд╛ рд╣реИ, рдЙрд╕рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдХрд┐ рдореИрдВ рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ рдпреВрдЖрд░рдПрд▓ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдирд╣реАрдВ рдмрдЪрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд╣рд╛рдВ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдкрде рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдХрд╛рд░ред рдердВрдмрдиреЗрд▓ рдФрд░ рдЕрдиреНрдп рд╕рднреА рд╡рд┐рдХрд▓реНрдкред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕реЗрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ 5 рдмрд┐рдВрджреБ рдХреЛ рднреА рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

4. рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реАрдорд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдирд╛

HTTP 1.1 рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╣реА рдбреЛрдореЗрди рд╕реЗ 2 рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдорд╛рдзрд╛рди? рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ ( рдХреБрдХрд▓реЗрд╕ рдбреЛрдореЗрди ) рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдк рдбреЛрдореЗрди рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреБрдХреАрдЬрд╝ рдкреНрд░рд╕рд╛рд░рд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдВрдЧреАред

рдХреЛрдб рдореЗрдВ, рдЖрдк 3 рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 //           //    -,  `php -S localhost:8080` \Bazalt\Thumbs\Image::initStorage(__DIR__ . '/static', '/thumb.php?file=/static'); //       - \Bazalt\Thumbs\Image::initStorage(__DIR__ . '/static', '/static'); //      -  cookieless  \Bazalt\Thumbs\Image::initStorage(__DIR__ . '/static', 'http://img%s.example.com/static'); //   %s     0x0-0xF    // img0.example.com, img1.example.com, ..., imge.example.com, imgf.example.com 


рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рд╕реАрдбреАрдПрди рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред

5. рдпреВрдЖрд░рдПрд▓ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдмрдЪреЗрдВ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкреИрд░рд╛ 3 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, url рдореЗрдВ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдердВрдмрдиреЗрд▓ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдХрд┐ url рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдиреНрдпреВрдорд░реЗрд╢рди рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдЧреБрдкреНрдд рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░рдХреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдкрдиреА рд╕реАрдорд╛рдПрдВ рд╣реИрдВред рдореИрдВ рдЕрдкрдиреЗ рдлреИрд╕рд▓реЗ рдореЗрдВ рдкреНрд▓рд╕ рдкрд░ рднреА рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд┐рдирд╛ рднреА рдердВрдмрдиреЗрд▓ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред

6. рдХреИрд╢рд┐рдВрдЧ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо

рдпрджрд┐ рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдердВрдм рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╣реИрд╢ рдФрд░ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдердВрдмрдиреЗрд▓ рдкреНрд▓рд╕ рдХреЗ рдирд╛рдо рд╕реЗ рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдкрддрд╛ " /static/d1/7e/d17e248758722c42d8c88d21d8b538d7.jpg " рдПрдХ рдердВрдмрдиреЗрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ " /static/d1/7e/d17e248758722c42d8c88d21d8b538d7.jpg.pre " рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдердВрдмрдиреЗрд▓ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ рддреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Nginx рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕:
 location /static/ { root /www/public; try_files $uri /thumb.php?file=$uri; } 


рдЕрдкрд╛рдЪреЗ рдХреЗ рд▓рд┐рдП:
 RewriteCond %{REQUEST_URI} ^(/static/) RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.*)$ thumb.php?file=$1 [L] 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЗрд╕реЗ рд╕реАрдзреЗ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ thumb.php рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдПрдХ рдердВрдмрдиреЗрд▓ рдмрдирд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдмрдЪрд╛рдПрдЧрд╛ред
рдпреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд╣реА рдирд╣реАрдВ рд╣реИрдВ, рд╕рд┐рд░реНрдл рд╡рд┐рдЪрд╛рд░ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдореИрдВрдиреЗ рдЙрди рд╕рднреА рдиреБрдХрд╕рд╛рдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреЛ рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЕрдЧрд░ рдореИрдВрдиреЗ рдХреБрдЫ рдпрд╛рдж рдХрд┐рдпрд╛, рддреЛ рдореИрдВ рдЯреБрдХрдбрд╝реЗ-рдЯреБрдХрдбрд╝реЗ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред

Source: https://habr.com/ru/post/In181898/


All Articles