THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Je suis confronté, comme beaucoup d'intégrateurs, à un problème simple : le choix du CMS.

J'ai adopté Thélia 1.5 depuis ses débuts pour développer mes sites (même vitrines), pour plusieurs raisons simples et non exhaustives :
- la simplicité de mise en oeuvre,
- le système "boucles" et en FR SVP,
- une modularité avec les plugins, (mêmes sans connaissances solides en PHP)
- une facilité d'utilisation du BO pour les clients,
- le CMS s'adapte au design et non l'inverse,
- la stabilité / hacking (au regard de Joomla, Worpress...)
- ...
Tous ces arguments font de theila 1 un outil parfaitement adapté aux modèle économique des petites entreprises.

Mais Thélia 1 est voué à une mort certaine s'il ne s'adapte plus aux versions futures de PHP. Aujourd'hui il supporte la dernière version stable utilisé chez tous les hébergeurs : PHP 5.6. Mais qu'en sera-t-il demain ? Est-il judicieux de continuer à l'utiliser ? Combien de temps lui reste-t-il à vivre ? Dois-je désormais adopter SPIP ?
(ou autres outils semblables...?)

PS : je coupe court aux trolls et autres polémiques : Thélia 2 est une tuerie, fiable et puissant (déployé pour 2 clients e-commerce), mais le déployer pour un site inférieur à 2000€ est hérétique car pas rentable en terme de développement. Si le trio smarty / hook / boucle offrent des possibilités quasi infini, il faut reconnaître que pour arriver au même résultat qu'avec la V1, cela est beaucoup plus compliqué car nécessite l'apprentissage de smarty notamment et un niveau de connaissances techniques globalement plus proche de celui du développeur.

Qu'en pensez-vous ?

Last edited by anti-conformiste (11-03-2016 14:43:08)

Offline


De mon point de vue, il n'y aura plus de mise à jour "officielle" de Thelia 1.5 de la part de son éditeur, a moins de la découverte d'un problème de sécurité critique.

La seule solution que je voie serait de forker la dernière version (sur github par exemple), et de confier à la communauté les éventuelles évolutions et la compatibilité PHP 7.


OpenStudio Toulouse

Offline


Oui, le fork, c'est une bonne idée. Il faut que quelqu'un d'assez solide s'y colle et je conçois que c'est du temps donc un budget...

Un site, selon moi, ne peut rester plus de 4 ans sans MAJ - voire refonte. Dans ce contexte, est-il raisonnable de commencer un projet en V1 ?

Last edited by anti-conformiste (11-03-2016 18:30:34)

  • yoan
  • Cofondateur Thelia

Offline


Je n'ai pas regardé ce que PHP7 impliquera comme changements nécessaires pour THELIA 1.x mais rien n'est insurmontable.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

  • yoan
  • Cofondateur Thelia

Offline


J'ai jeté un oeil.
Il y a un peu de boulot pour le core mais c'est jouable.

En revanche, c'est l'ensemble des plugins qui compliquent l'affaire.

PHP 5.6 sera supporté au niveau sécurité jusqu'en fin 2018. Les hébergeurs devraient donc le proposer jusqu'à cette période.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

  • yoan
  • Cofondateur Thelia

Offline


En patchant Cnx.class.php pour mapper les fonctions mysql, ça va déjà mieux.
Après, il faudrait tester tout à fond.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline


Il suffit d'écrire une petite librairie de compatibilité, et le tour est joué. Ça devrait même être faisable via un plugin.


OpenStudio Toulouse

  • yoan
  • Cofondateur Thelia

Offline


Oui oui, il n'y a pas l'air d'avoir de gros points bloquants.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline


Bonjour,

Qu'en est-il aujourd'hui ? Peut-on commencer un projet sous Thelia 1 supportant PHP 7 ?
Est-il possible de contribuer financièrement si un plugin ou autre doit être réalisé ?

Merci pour vos réponses.


Mac OS 10.5 Léopard - Mamp - Thelia versions 1.4.4 - 1.5.1 - 1.5.3.4

Offline


D'après mes informations, il n'y aura plus de développements sur Thelia 1, et sauf découverte d'une faille de sécurité majeure, la dernière V1 restera la 1.5.4.3.

Ceci dit, comme le projet est open source et sous licence GPL, rien n'empêche des bonnes volontés de le reprendre et de le faire évoluer, notamment pour permettre la compatibilité PHP 7.


OpenStudio Toulouse

  • yoan
  • Cofondateur Thelia

Offline


Pour PHP7, il n'y a pas de souci particulier. Enfin, je n'en ai pas vu pour l'instant (à part la connexion à la base qui doit être revue).
J'ai fait quelques tests et c'est bon.

Ensuite, pour le développement d'un plugin, ce n'est pas vraiment un souci. J'ai encore récemment développé un plugin Thelia 1 pour quelqu'un.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline


Pour un vraie compatibilité PHP 7, il va juste falloir reprendre tous les plugins qui utilisent l'extension mysql. C'est à dire à peu près tous smile

Comme je le dis plus haut, si Thelia 1 doit continuer à évoluer, la mise en place d'un repo Github pour le core et les plugins serait la solution la plus efficace.


OpenStudio Toulouse

  • yoan
  • Cofondateur Thelia

Offline


En fait, si tu ajoutes des fonctions pour "mapper" les nouvelles dans Cnx.class.php

if(! function_exists('mysql_query')){
     function mysql_query($query, $link = null) {
        return mysqli_query($link, $query);
    }

     function mysql_fetch_object($resul) {
        return mysqli_fetch_object($resul);
    }

    function mysql_result($res,$row=0,$col=0){
        return mysqli_result($res,$row=0,$col=0);
    }

    function mysql_num_rows($res){
        return mysqli_num_rows($res);
    }
}

function mysqli_result($res,$row=0,$col=0){
    $numrows = mysqli_num_rows($res);
    if ($numrows && $row <= ($numrows-1) && $row >=0){
        mysqli_data_seek($res,$row);
        $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
        if (isset($resrow[$col])){
            return $resrow[$col];
        }
    }
    return false;
}

Puis tu changes le mysql_connect dans la méthode getHandle() de la class StaticConnection
....

Bref, c'est pas nickel mais ça marche.
Les appels aux anciennes fonctions mysql fonctionnent.
Pour migrer en douceur, c'est une première étape.

Pour le reste, je suis d'accord avec toi.

Last edited by yoan (22-02-2017 10:59:14)


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline


Ca, ca marche pour les plugins un peu modernes, pour la vaste majorité, c'est des bons gros mysql_truc() et mysql_machin()...

Il reste aussi des mysql_bidule() dans le core, surtout dans l'admin.


OpenStudio Toulouse

Offline


Yoan m'avait en effet donné cette astuce il y a quelques mois. (merci !)

J'ai testé et ça fonctionnait avec la dernière version de 1.5.4.3

Cependant, il ne faut plus trop espérer utiliser les modules, Roadster a raison...

Last edited by anti-conformiste (22-02-2017 15:58:25)

  • yoan
  • Cofondateur Thelia

Offline


Sisi car justement, tu mets les fonctions dans le fichiers Cnx.class.php mais en dehors de la classe.
Comme ce fichier est chargé partout, tu créés artificiellement les fonctions mysql_xxx qui n'existent plus et tu les maps vers les nouvelles.

Du coup l'admin fonctionne et le reste aussi.

Mais bon, ce n'est pas l'ultime solution, j'en conviens.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x