En aquest xicotet article explique com tinc funcionant composer amb la versió 7.2 de PHP als meus projectes web al portàtil thinkpad.
Treballant amb Drupal, cada vegada més veus dependències de mòduls que cal instal·lar des de composer, i a la versió actual d'OpenBSD el composer fa servir per defecte el PHP 7.1, i encara que tingues una versió distinta, si instal·lem el composer, el sistema de paquets ens descarrega i ens instal·la també versió php-7.1. I bé, com que jo faig servir la 7.2, he trobat un truc per a executar composer des de PHP 7.2.
Primer de tot, instal·larem composer amb:
doas pkg_add -vi composer
Com que composer de vegades pot fer servir l'ordre 'php', farem un enllaç simbòlic amb:
doas ln -s /usr/local/bin/php-7.2 /usr/local/bin/ph
Ara, encara que semble una xorrada monumental, el que farem serà separar el caracter "=" amb el número "1" del fitxer /etc/php-7.2.ini, on declarem la variable opcache.enable:
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable = 1
Sembla un error de tipat, perquè buscant sobre l'error que em donava composer, m'han recomanat aquest tema i efectivament era això.
Ara, també al /etc/php-7.2.ini, habilitarem el allow_url_fopen necessari per a usar composer:
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-fopen
allow_url_fopen = On
I bé, la manera d'executar-ho és fent servir composer.phar des de PHP 7.2, de la següent manera:
# php-7.2 /usr/local/libexec/composer.phar [les_teues_subordres] ....
Per exemple, per instal·lar el mòdul i dependències de entity_print de Drupal, farem:
php-7.2 /usr/local/libexec/composer.phar composer require drupal/entity_print 2.x
I ja ho tenim, com pots veure a la següent captura de pantalla:
Per últim, revisa la teua versió exacta de PHP en producció:
x250virtual$ php-7.2 --version
PHP Warning: PHP Startup: Invalid library (appears to be a Zend Extension, try loading using zend_extension=opcache from php.ini) in Unknown on line 0
PHP 7.2.22 (cli) (built: Aug 30 2019 14:23:06) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Doncs bé, la configuració de "platform" pot ser molt útil per al teu entorn de treball:
x250virtual$ composer config --global platform.php 7.2.22