jmueller17 / Aixada

Aixada helps self-managed consumption cooperatives to organize their flow of products, money, and information.
Other
33 stars 37 forks source link

Compatibilitat amb Php 7 #234

Closed mamuts closed 5 years ago

mamuts commented 5 years ago

Bones!

Primer de tot merci per la feinada que us heu fet la gent que heu tirat endavant aquest projecte. Us escric desde una cooperativa de consum de Salt que l'utilitzem i ens facilita la vida de mala manera ;)

El problema ha estat que el hosting està actualitzant el Php a la versió 7 i ens apareix un error amb les sessions degut, si no m'equivoco, a la utilització d'una funció que ja no eixisteix amb la nova versió de php.

L'error en concret és:

"Fatal error: Uncaught Error: Call to undefined function mcrypt_module_open()" Pel que he vist per internet mcrypt està deprecated amb php 7.1 i missing en php 7.2. Hi ha alguna possible solució al fet de correr l'aplicació en hostings amb php superior a 7?

Gràcies per endavant!

Salut!

jorix commented 5 years ago

Hi ha diversos problemes amb PHP7, no hi he treballat a fons.

Els dos ultims comits d'aquesta branca https://github.com/jorix/Aixada/tree/php7-fail arregla els dos primers que vaig trobar, pero no he seguit investigant.

AitorMedrano commented 5 years ago

Bones! Nosaltres a la cooperativa Gira-sol de Sant Martí també hem tingut aquest problema amb l'actualització que ha fet el hosting. De moment hem pogut fer rollback a la versió anterior disponible al proveïdor, però ens mirem els últims commits a veure si hi podem integrar aquesta millora a la nostra instal·lació.

Gràcies de veritat per la feinada!

jorix commented 5 years ago

@mamuts & @AitorMedrano

Inicialment al #207 es va plantejar el tema del PHP7 però no va fer falta aprofondir-hi ja que van passa a PHP5.

Ara ha passat temps i el PHP7 ja té més força, així que tornaré a provar Aixada amb PHP v7.2.12. i si algú més també ho fa, doncs millor.

NOTA: Qui vulgui fer proves hauria d'agafar la branca jorix/php7-fail que arregla coses. Atenció: Ara he fet un rebase de la branca per tal de que incorpori també TOTS els commits de master

A @AitorMedrano: Quan dius >...versió anterior disponible al proveïdor... a quin proveidor et referiex? He vist que el fork que tens fet d'Aixada és molt molt molt antic!

jmueller17 commented 5 years ago

Qué bien, ver que el proyecto sigue con vida! Nosotros desde hace poco (!) tenemos la versión más actualizado online en un hosting. De momento funciona bien, pero hay que ver cuando nos toca acutalizar.

AitorMedrano commented 5 years ago

@jorix, el que hem fet és instal·lar PHP5 al proveïdor de hosting enlloc de PHP7.2 que ens havien posat ells. La versió d'aixada que tenim és mooooolt antiga, si. Un company que ja no hi és a la coope va fer les modificacions per tenir un producte "transport" del que el preu fixe es distribueix entre els que han fet comanda segons el nombre d'articles que hagin demanat. Des-de llavors no actualitzem per si de cas aquesta funcionalitat no va bé amb les noves versions. De tota manera, m'ho vull mirar i fer proves a un servidor apart per poder tenir una versió més actual.

jorix commented 5 years ago

En la vesió actual al revisar comandes hi ha la possibilitat d'afegir productes, així ho fem en alguns casos per repartir el transport (que té el preu unitat = 1€), un cop afegit 0 unitats canviem el total per import brut del transpot i aixo fa que es reparteixi a tothom que ha fet comanda una part dels transpot.

El ds., 10 nov. 2018 14.55, AitorMedrano notifications@github.com va escriure:

@jorix https://github.com/jorix, el que hem fet és instal·lar PHP5 al proveïdor de hosting enlloc de PHP7.2 que ens havien posat ells. La versió d'aixada que tenim és mooooolt antiga, si. Un company que ja no hi és a la coope va fer les modificacions per tenir un producte "transport" del que el preu fixe es distribueix entre els que han fet comanda segons el nombre d'articles que hagin demanat. Des-de llavors no actualitzem per si de cas aquesta funcionalitat no va bé amb les noves versions. De tota manera, m'ho vull mirar i fer proves a un servidor apart per poder tenir una versió més actual.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jmueller17/Aixada/issues/234#issuecomment-437585505, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDGDvc32JwZccB56yRG9gdVwoF_7cULks5uttrMgaJpZM4YVkzI .

mamuts commented 5 years ago

Bones!

Perquè em quedi clar... que sóc nou amb tot això ;) Si la nostra cope utilitzem un hosting que només permet php7 és millor pel que entés utilitzar la branca php7fail de @jorix no? I resar perquè no hi hagi gaires incompatibilitats... O millor utilitzar la branca master de https://github.com/jmueller17/Aixada?

Hi ha alguna altra alternativa?

Moltes gràcies per avançat! ;)

jorix commented 5 years ago

No, no!

Utilitza Php-5 i la branca master! (per ara no crec que el hosting no us deixi triar php-5)

La php-faill no està provada, cal fer un recorregut complet per totes les opcions i veure que no en falla cap.

El dl., 12 nov. 2018 21.59, Ferran notifications@github.com va escriure:

Bones!

Perquè em quedi clar... que sóc nou amb tot això ;) Si la nostra cope utilitzem un hosting que només permet php7 és millor pel que entés utilitzar la branca php7fail de @jorix https://github.com/jorix no? I resar perquè no hi hagi gaires incompatibilitats... O millor utilitzar la branca master de https://github.com/jmueller17/Aixada?

Hi ha alguna altra alternativa?

Moltes gràcies per avançat! ;)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jmueller17/Aixada/issues/234#issuecomment-437994985, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDGDuj-cc1jIRCIOkx3VkY111bEwlGyks5uucc8gaJpZM4YVkzI .

jorix commented 5 years ago

El uso de PHP7 tiene muchas implicaciones en diversas funcionalidades de Aixada.

Lo que he mirado:

@jmueller17 y cia: Y aún faltan unas cuantas funcionalidades por probar.

Pienso ir trabajando en esto y proponiendo PRs por temáticas, relajadamente..., y sin mirar si se ve o no luz al final del túnel (primera estación: eliminar exportación a PDFs)

¿Algún inconveniente?

¿Alguna propuesta?

jmueller17 commented 5 years ago

Perfecto, guay!

jorix commented 5 years ago

Alguien puede probar: 42ef45ba3551f8c65628d1f529eee8e84288081d ?

En el commit se propone eliminar el uso de cookies encriptadas con lo cual la mayor parte de paginas Aixada ya no fallan PHP v7.1 o suprrior, ya no aparece el error:

Fatal error: Uncaught Error: Call to undefined function mcrypt_module_open()

Me dejaría más tranquilo que alguien más lo probara, o que se dejara en una rama aparte para PHP7, que luego pues ya tal!

NOTA: Esto solo sería un paso a la compatibilidad con PHP7.

jorix commented 5 years ago

ATENCIÓN: para probar el commit comentado se debe eliminar la linea 12 de php/ctrl/SmallQ.php
o hacer un mege con el PR #243!!!!

La línea que moslesta de php/ctrl/SmallQ.php es:

include(__ROOT__ . "php/external/mpdf54/mpdf.php");
AitorMedrano commented 5 years ago

Bones @jorix! Pel que fa a la funcionalitat de PDF, nosaltres no la hem fet servir i, com dius, ja està als navegadors, així que jo diria que es pot deixar fora.

Com que el nostre hosting ja no ens deixa fer servir PHP5, hem començat a instal·lar la branca jorix/php7-fail per fer proves. He pensat fer varis recorreguts i anar informant (aqui mateix o en un altre lloc?) del que trobem. Ara com ara no tenim plataforma per fer comandes, així que ens va bé el temps de festes nadalenques per trobar una solució.

Gràcies!

jorix commented 5 years ago

...començat a instal·lar la branca jorix/php7-fail ...

@AitorMedrano Proveu-la fent un merge amb la jorix/a-session

Sense la jorix/a-session la jorix/php7-fail només funcionarà en PHP7.0.
Per que funcioni també amb PHP >=7.1 hauríeu de provar-ho afegint un merge de la jorix/a-session però encara, diguem que... és experimental. Qualsevol problema reporteu-lo.

De fet us recomano agafar la marter a dia d'avui i fer-hi un merge amb la jorix/a-session i la jorix/php7-fail, i així podeu tenir els últims canvi a comandes acumulatives i la instal·lació automàtica via install.php.

danypr92 commented 5 years ago

Bones @jorix! Sóc company de l'@AitorMedrano, estem començant a fer les proves, però veig que ja no existeix la branca jorix/php7-fail. Estem muntant una màquina amb PHP7 per córrer l'Aixada. Veig que fa unes hores s'han creat noves branques, podries indicar quines branques hem de fer servir ara per fer proves amb PHP7?

Creiem que és la jorix/laCistella-php7. És correcte?

Gràcies!

jorix commented 5 years ago

Podeu agafar la branca: https://github.com/jorix/Aixada/tree/a_session-2

Ara a la master de Aixada ja hi ha la php7-fail (que evita errors amb PHP7.0 ) però la a_session-2 proposa canvis per evitar errors amb PHP7.1 i superiors.

Hi haura algunes funcionalitat que encara poden fallar, com exportar a execel, i encara d'altres que hem de provar...

El dt., 11 des. 2018 11.20, Daniel Palomar Rodríguez < notifications@github.com> va escriure:

Bones @jorix https://github.com/jorix! Sóc company de l'@AitorMedrano https://github.com/AitorMedrano, estem començant a fer les proves, però veig que ja no existeix la branca 'jorix/php7-fail'. Estem muntant una màquina amb PHP7 per córrer l'Aixada. Veig que fa unes hores s'han creat noves branques, podries indicar quines branques hem de fer servir ara per fer proves amb PHP7?

Creiem que és la 'jorix/laCistella-php7'. És correcte?

Gràcies!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jmueller17/Aixada/issues/234#issuecomment-446148908, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDGDmd148G1KsBOrZRoARpvNr011X7tks5u34bxgaJpZM4YVkzI .

danypr92 commented 5 years ago

@jorix Moltisimes gràcies! Ens possem en marxa!

jorix commented 5 years ago

@AitorMedrano & @danypr92

Ara acabo de posar l'últim commit de a_session-2 a jorix/laCistella-php7, us explico:

Les branques jorix/laCistella-xxxxx contenen Aixada + uns informes per fer reparatiments + un registre del torns programats de repartiment + un informe del directori (noms i adreces de proveïdors i membres de les UF)
Tot això ho vaig fer incialment per La Cistella de Castelldefels però hi ha altres coopes que també es basen en això, i ho mantinc actualitzat. La jorix/laCistella-master té el que hi ha la master d'Aixada i laCistella-php7 és una branca temporal que conté el que hi ha de nou per PHP7 fins que el tema estigui resolt a Aixada.

santakadev commented 5 years ago

Me acabo de instalar el proyecto (master).

A nivel de syntaxis no hay errores para ninguna versión de PHP 7.x

find . -name "*.php" -type f -exec php -l {} \;

De momento, el único error de compatibilidad ha sido mcrypt. mcrypt dejó de ser parte de la distribución de PHP a partir de la versión 7.2: http://php.net/manual/es/migration71.deprecated.php

Sin embargo, se puede seguir instalando como extensión: https://pecl.php.net/package/mcrypt

Instalando y activando la extensión se resuelve.

jorix commented 5 years ago

Hola @santakadev

Seria interesante que probarais la jorix/a_session-2 que a parte de evitar el uso de mcrypt mejora la seguridad (digamos que Aixada tiene algunos ajerillos de seguridad, a parte de que el uso de datos encriptados de seguridad en la cookie es en sí otro problema)
Ahora el punto de partida d la rama a_session-2 es master (antes no, y daba problemas al hacer un merge)
Estoy esperando probar la a_session-2 en producción antes de proponer un PR, lo haré después de fiestas.

Hay una rama más evolucionada la jorix/upload-excel que arregla la importación de datos en Excel probada con 7.2 pero que aún puede fallar con 7.3 usando *.xlsx, ahí estoy...

Efectivamente en master ya no hay errores estáticos de sintaxis para PHP7.3, pero si que los hay en ejecución.
Por lo que he ido viento el más importante y transversal es el uso de mcrypt. Luego quedan problemeas en la importación de Excel y ja no he encontrado nada más por ahora (de echo master ya tiene el merge del PR #243 que resuelve problemas con PHP7)

jorix commented 5 years ago

Resuelto en master!!
( con #248 y #249 )

jmueller17 commented 5 years ago

Perfecto!!