Crear un nuevo proyecto en Laravel para PHP 5.6 (no acabado)

Lo primero que hay que hacer  es instalar composer:

sudo apt install composer

También hay que instalar el instalador de laravel, enmi caso debido a los errores tuve que instalar el módulo zip:

sudo apt-get install php5.6-zip

Y el instalador de Laravel propiamente dicho:

composer global require “laravel/installer”
Luego creamos nuestro proyecto:

composer create-project laravel/laravel=”5.2.*” proyecto

Como no podemos escoger en que directorio apunta nuestro dominio, no podemos apuntar al directorio “public” crearemos un fichero .htaccess con este contenido en la raiz de nuestro sitio:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L] </IfModule>

Y damos permiso de escritura a los directorios necesarios:

sudo chmod -R 775 storage

sudo chmod -R 775 bootstrap/cache

sudo chown -R nuestroUsuario:www-data storage

sudo chown -R nuestroUsuario:www-data bootstrap/cache

 

 

Convertir números a su cardinal u ordinal, php_intl

Si te has preguntado como convertir un número a su cardinal , ordinal, etc se hace a través de la extensión php_intl.

Para instalarla en Ubuntu nada más sencillo que:

sudo apt install php_intl

para habilitarla en PHP:

sudo phpenmod intl

Y reaniciamos apache, que en caso de Ubuntu seria:

sudo service apache2 restart

Una vez instalada el código para realizar por ejemplo un cardinal en Català seria:

$nf = new \NumberFormatter('ca_ES', \NumberFormatter::SPELLOUT);
$cardinal = $nf->format($total);

No en todos los casos queda perfecto, o a veces no encontrarás la traducción completa. Para ello podemos especificar un fichero con las formas correctas:

$pattern = file_get_contents('catalan.txt');
$nf = new \NumberFormatter('ca_ES', \NumberFormatter::PATTERN_RULEBASED, $pattern);
$nf->setTextAttribute(\NumberFormatter::DEFAULT_RULESET, "%spellout-cardinal-masculine");

Y ya un pequeño trozo de código para que escriba bien los decimales en la forma por ejemplo de “diez coma cincuenta” en lugar de “diez cinco cero”:

$representado = explode(".", number_format($total, 2, ".", ''));
if (count($representado)>0) {
    $cardinal = $nf->format($representado[0]) . ' coma ' . $nf->format($representado[1]);
} else {
    $cardinal = $nf->format($representado[0]);
}

Aquí tenéis el fichero con las traducciones, por si queréis crear uno nuevo:

formato personalizado php_intl

Configurar el formato de codificación de Mysql para Ubuntu

Para configurar el formato de codificación de Mysql, en este caso vamos a modificar el fichero mysql.cnf que se encuentra en /etc/mysql/mysql.cnf para cambiar el formato de codificación más conveniente para uso general, que trata mejor la representación, comparación y ordenación en diferentes idiomas a cambio de rendimiento: utf8_unicode_ci.

Para ello añadiremos el siguiente código debajo de [mysqld] o lo crearemos bajo esta misma etiqueta:

[mysqld]

collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

Y reiniciaremos el mysql:

sudo service mysql restart

Si tuviéramos que cambiar alguna tabla individualmente:

ALTER TABLE nombretabla CHARACTER SET utf8 COLLATE utf8_unicode_ci;