7 de enero de 2019

RESUELTO: error Call to undefined function Symfony\Polyfill\Mbstring\iconv

La forma del resolver el error que despliega el mensaje:

PHP Fatal error:  Uncaught Error: Call to undefined function Symfony\Polyfill\Mbstring\iconv() in phar

Se resuelve simplemente cargando el módulo PHP faltante, en este caso se trata del módulo iconv, cuya funcionalidad es la de presentar una interfaz para la traducción de caracteres (string), se recomienda chequear que ya se tenga instalada la librería llamada libiconv, porque sino el módulo podría dar problemas.

Podemos ver los módulos instalados ejecutando desde la terminal: php -m

Instalando el módulo PHP iconv

Si estamos trabajando en un servidor WAMP, XAMP o similares, la instalación en muy sencilla, basta descomentar la siguiente línea en archivo de configuración de PHP php.ini:

Pasar de esto:

;extension=php_iconv.dll

A esto:

extension=php_iconv.dll

Ahora si estamos trabajando en Windows pero de un modo más profesional, entonces tendremos instalado el programa Cygwin. Ese proceso veremos a continuación.

La ventaja que tiene el usar Cygwin en vez de paquetes de tipo Lamp para Windows, es que con Cygwin no necesitamos contaminar el sistema operativos con versiones de PHP o MySQL para llevar a cabo nuestros desarrollos.

Instalando el módulo PHP iconv en Cygwin

La ventaja más importante es que con Cygwin podemos tener las facilidad de la consola Linux en Windows, en punto casi podríamos decir totalmente aislado del sistema.

Para tal efecto, debemos recurrir al instalador de Cygwin, que generalmente es un archivo que hemos dejado en la carpeta de Descargar del Windows. Hacemos un doble click en el archivo setup-x86_64.exe y lenvatará una ventana donde podemos agregar distintos paquetes, entre ellos el paquete para PHP llamado php-iconv.

Finalmente, debemos reiniciar la consola de Cygwin y ya tendremos disponible el módulo php-iconv que es requisito cuando hacemos uso de la utilería de desarrollo PHP llamada Composer.

Referencias

Que hace el módulo iconv: http://php.net/manual/es/intro.iconv.php.