Composer i PHP 7.2 a OpenBSD

Composer i PHP 7.2 a OpenBSD

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:
Composer i PHP 7.2 a OpenBSD

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

Doncs bé això és tot, espere que trobes útil aquest article i que et motive a compartir els teus trucs, els teus coneixements i els teus experiments amb el Programari Lliure. Pensa-ho, va, que la Comunitat del Programari Lliure va creixent gràcies a la documentació, el disseny, la formació o la programació, sigues part de la Comunitat :-)

La cultura i la lliure circulació de les idees és l'arma més efectiva contra les dictadures del pensament i contra la ignorància.