Completed
Push — master ( 26f15a...2970b9 )
by arto
02:26
created

TryToInstallZendExpressiveTemplate   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 3
c 1
b 0
f 1
lcom 0
cbo 0
dl 0
loc 31
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A execute() 0 20 3
1
<?php
2
/**
3
 * @author stev leibelt <[email protected]>
4
 * @since 2016-01-30
5
 */
6
namespace Net\Bazzline\Component\Template;
7
8
use Composer\Semver\Constraint\Constraint;
9
10
class TryToInstallZendExpressiveTemplate
11
{
12
    /**
13
     * @param \Composer\Installer\InstallerEvent $event
14
     * @see
15
     *  https://getcomposer.org/doc/articles/scripts.md#defining-scripts
16
     *  https://getcomposer.org/apidoc/master/Composer/Installer/InstallerEvent.html
17
     *  http://jakoch.de/2015/10/23/how-to-create-a-composer-plugin/
18
     *  https://github.com/composer/composer/issues/3430
19
     */
20
    public static function execute($event)
21
    {
22
        if ($event->isDevMode()) {
23
            $minimumVersionForZendExpressiveTemplate    = '5.5.0';
24
            $itFitsAtLeastTheMinimumVersionRequirement  = (version_compare(PHP_VERSION, $minimumVersionForZendExpressiveTemplate) >= 0);
25
26
            if ($itFitsAtLeastTheMinimumVersionRequirement) {
27
                $constraint = new Constraint('>=', '1.0.*');
28
                $request    = $event->getRequest();
29
                /** @var \Composer\DependencyResolver\Request $request */
30
                $request->install('zendframework/zend-expressive-template', $constraint);
31
                $request->update('zendframework/zend-expressive-template', $constraint);
32
            } else {
33
                /** @var \Composer\IO\IOInterface $io */
34
                $io = $event->getIO();
35
                $io->write('can not install optional dependency zend-expressive-template in development mode');
36
                $io->write('it needs at least php version "' . $minimumVersionForZendExpressiveTemplate . '"');
37
            }
38
        }
39
    }
40
}