Archives par étiquette : composer tcpdf

ZF2 et installation de Tcpdf

Pour installer Tcpdf il faut l'ajouter dans composer.json. Or cette bibliothèque n'est pas intégrée dans Packagist. Comment doit-on faire ?

D'après les différents posts trouvés ici et là, il faut ajouter :

"require" : {
   ... ,
   "tecnick.com/tcpdf": "*"
}
"repositories" : [
      ... ,
   {
      "type":"package",
      "package": {
          "name": "tecnick.com/tcpdf",
          "version":"master",
          "source": {
              "url": "http://git.code.sf.net/p/tcpdf/code",
              "type": "git",
              "reference":"master"
         }
      }
   }
],
"autoload": {
   "classmap": [
     "vendor/tecnick.com/tcpdf"
   ]
 }

Or lors de l'exécution sous windows 7, l'installation échouait en permanence :

D:\monProjet>php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
 - Installing tecnick.com/tcpdf (6.0.080)
   Cloning fcd0098a2a8b0fb88e6ea291393dc8c1ecb2f38b

 [Symfony\Component\Process\Exception\ProcessTimedOutException]
 The process "git clone --no-checkout "git://git.code.sf.net/p/tcpdf/code" 
 "D:\monProje t\vendor\tecnick.com/tcpdf" && cd /D 
 "D:\monProjet\vendor\tecnick.com/tcpdf" && git remote add composer 
 "git://git.code.sf.net/p/tcpdf/code" && git fetch composer" 
 exceeded the timeout of 300 seconds.

update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock]
[--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] 
[--withdependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [packages1] 
...[packagesN]

Il faut donc augmenter le temps d'exécution pour composer.phar. Pour cela, dans la console d'exécution de windows 7 :

D:\monProjet>set COMPOSER_PROCESS_TIMEOUT=5000

D:\monProjet>php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
 - Installing tecnick.com/tcpdf (6.0.080)
 Cloning fcd0098a2a8b0fb88e6ea291393dc8c1ecb2f38b

 - Updating zf-commons/zfc-user dev-master (70eb1db => b96419e)
 Checking out b96419e91bdc7ec09b49038c18634f7d0b503597

 - Updating zendframework/zend-developer-tools dev-master (26af0e6 => 8907edf)
 Checking out 8907edf3a03ae0ac761b43e33b3629ac1b6c3cf3

Writing lock file
Generating autoload files

Eurêka ! Ça a marché !

Par la suite, en recherchant dans la documentation, on peut indiquer ce délai dans la clé config de composer.json :

 "config" : {
    "process-timeout" : 5000,
    "use-include-path": false,
    "github-protocols": ["git", "https", "http"],
    "vendor-dir": "vendor"
 },

Voir le détail sur cette page.