Image   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 1
dl 0
loc 72
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
B configure() 0 56 1
1
<?php
2
3
namespace Knp\Snappy;
4
5
/**
6
 * Use this class to create a snapshot / thumbnail from a HTML page.
7
 *
8
 * @author  Matthieu Bontemps <[email protected]>
9
 * @author  Antoine Hérault <[email protected]>
10
 */
11
class Image extends AbstractGenerator
12
{
13
    /**
14
     * {@inheritdoc}
15
     */
16
    public function __construct(string $binary = null, array $options = [], array $env = null)
17
    {
18
        $this->setDefaultExtension('jpg');
19
20
        parent::__construct($binary, $options, $env);
21
    }
22
23
    /**
24
     * {@inheritdoc}
25
     */
26
    protected function configure(): void
27
    {
28
        $this->addOptions([
29
            'allow' => null,                            // Allow the file or files from the specified folder to be loaded (repeatable)
30
            'bypass-proxy-for' => null,                 // Bypass proxy for host (repeatable)
31
            'cache-dir' => null,                        // Web cache directory
32
            'checkbox-checked-svg' => null,             // Use this SVG file when rendering checked checkboxes
33
            'checked-svg' => null,                      // Use this SVG file when rendering unchecked checkboxes
34
            'cookie' => [],                             // Set an additional cookie (repeatable)
35
            'cookie-jar' => null,                       // Read and write cookies from and to the supplied cookie jar file
36
            'crop-h' => null,                           // Set height for cropping
37
            'crop-w' => null,                           // Set width for cropping
38
            'crop-x' => null,                           // Set x coordinate for cropping (default 0)
39
            'crop-y' => null,                           // Set y coordinate for cropping (default 0)
40
            'custom-header' => [],                      // Set an additional HTTP header (repeatable)
41
            'custom-header-propagation' => null,        // Add HTTP headers specified by --custom-header for each resource request.
42
            'no-custom-header-propagation' => null,     // Do not add HTTP headers specified by --custom-header for each resource request.
43
            'debug-javascript' => null,                 // Show javascript debugging output
44
            'no-debug-javascript' => null,              // Do not show javascript debugging output (default)
45
            'encoding' => null,                         // Set the default text encoding, for input
46
            'format' => $this->getDefaultExtension(),   // Output format
47
            'height' => null,                           // Set screen height (default is calculated from page content) (default 0)
48
            'images' => null,                           // Do load or print images (default)
49
            'no-images' => null,                        // Do not load or print images
50
            'disable-javascript' => null,               // Do not allow web pages to run javascript
51
            'enable-javascript' => null,                // Do allow web pages to run javascript (default)
52
            'javascript-delay' => null,                 // Wait some milliseconds for javascript finish (default 200)
53
            'load-error-handling' => null,              // Specify how to handle pages that fail to load: abort, ignore or skip (default abort)
54
            'load-media-error-handling' => null,        // Specify how to handle media files that fail to load: abort, ignore or skip (default ignore)
55
            'disable-local-file-access' => null,        // Do not allowed conversion of a local file to read in other local files, unless explicitly allowed with allow
56
            'enable-local-file-access' => null,         // Allowed conversion of a local file to read in other local files. (default)
57
            'minimum-font-size' => null,                // Minimum font size
58
            'password' => null,                         // HTTP Authentication password
59
            'disable-plugins' => null,                  // Disable installed plugins (default)
60
            'enable-plugins' => null,                   // Enable installed plugins (plugins will likely not work)
61
            'post' => [],                               // Add an additional post field
62
            'post-file' => [],                          // Post an additional file
63
            'proxy' => null,                            // Use a proxy
64
            'quality' => null,                          // Output image quality (between 0 and 100) (default 94)
65
            'quiet' => null,                            // Be less verbose
66
            'radiobutton-checked-svg' => null,          // Use this SVG file when rendering checked radio-buttons
67
            'radiobutton-svg' => null,                  // Use this SVG file when rendering unchecked radio-buttons
68
            'run-script' => null,                       // Run this additional javascript after the page is done loading (repeatable)
69
            'disable-smart-width' => null,              // Use the specified width even if it is not large enough for the content
70
            'enable-smart-width' => null,               // Extend --width to fit unbreakable content (default)
71
            'stop-slow-scripts' => null,                // Stop slow running javascript
72
            'no-stop-slow-scripts' => null,             // Do not stop slow running javascript (default)
73
            'transparent' => null,                      // Make the background transparent in pngs *
74
            'use-xserver' => null,                      // Use the X server (some plugins and other stuff might not work without X11)
75
            'user-style-sheet' => null,                 // Specify a user style sheet, to load with every page
76
            'username' => null,                         // HTTP Authentication username
77
            'width' => null,                            // Set screen width (default is 1024)
78
            'window-status' => null,                    // Wait until window.status is equal to this string before rendering page
79
            'zoom' => null,                             // Use this zoom factor (default 1)
80
        ]);
81
    }
82
}
83