Jean-Christian Paul Denis - Mot-clé - dc3<p>Moment de vie d'un homme invisible.</p>2024-03-24T07:33:28+01:00Jean-Christian Denisurn:md5:b7c6a660dff5a4abb67f3324fb2cd711DotclearPetit pataponurn:md5:7851f24996e27de34b8f9a08bd6b6bc12022-04-26T08:54:00+01:002022-04-26T08:17:18+01:00Jean-Christian DenisDotcleardc3type<p>Une semaine que je tourne en rond. non pas que je m'ennuie, loin de là, mais plutôt que je n'y arrive pas.</p> <p>Dans mon jeu de Dotclear version <em>namespace</em>, j'avance sur plusieurs chantiers en même temps, histoire que ce soit moins rébarbatif. Je n'ai toujours pas fini le typage des méthodes mais ça avance bien et je vais bientôt pouvoir faire une deuxième passe pour modifier, uniformiser, simplifier ces types. Par contre j'ai passé la semaine sur deux autres (voir trois) modifications que je voulais apporter avec comme résultat un échec total.<br /><img src="https://chez.jcdenis.fr/public/photos/.20220410-01_m.jpg" alt="20220410-01.jpg, avr. 2022" title="20220410-01.jpg, avr. 2022" style="margin: 0 auto; display: block;" /></p>
<ul><li>Je n'arrive pas modifier, le lancement de l'application, et l'accès au singleton, je lance trop de classe et fonction pour lancer le core, ça ne me plait pas, mais impossible de simplifier.</li>
<li>Je n'arrive pas à faire une jolie classe de container qui puisse rendre toujours le bon type sur ses propriétés. Je pense qu'il faut que je pousse un peu plus, voir élargir le champs du Curseur.</li>
<li>Et toujours en fil rouge, je n'arrive pas à simplifier les Modules (plugin, et thème), sur ce point j'attend un peu que le reste avance pour pouvoir envahir Dotclear avec des tas de plugins et constater la charge.</li>
</ul>https://chez.jcdenis.fr/post/2022/04/26/Petit-patapon#comment-formhttps://chez.jcdenis.fr/feed/atom/comments/247Ménacheurn:md5:347ef92094bb45da0f055e1643b4fdda2022-04-02T21:22:00+01:002022-04-03T00:25:55+01:00Jean-Christian DenisDotclearargumentdc3magiqueménageméthodephp8type <p>J'ai commencé ces jours tranquillement à compléter le typage des méthodes dans le code de Dotclear. C'est assez fastidieux et cela m'a même réservé quelques surprises et casse-tête. Et je suis tombé sur des méthodes magiques de PHP <em>(__get, __set, __call, etc...) </em>qui m'ont fait poser quelques questions. D'habitude j'adore ces méthodes, cela permet d'écrire plus rapidement avec des codes courts, mais d'un autre coté, cela va à l'encontre de ma recherche de code en béton armé. J'ai donc profité du fait que phpstan ronchonnait sur certaines méthodes magiques pour décider d'en supprimer une bonne partie. Quelle idée ! Me voila avec plus de 10000 occurences à modifier !</p>
<figure style="text-align: center;"><a href="https://chez.jcdenis.fr/public/photos/20211017-05.jpg" title="20211017-05.jpg, avr. 2022"><img src="https://chez.jcdenis.fr/public/photos/.20211017-05_m.jpg" alt="20211017-05.jpg, avr. 2022" title="20211017-05.jpg, avr. 2022" /><figcaption>Lenny - La veze - 04/2022</figcaption></a></figure>Dans un premier temps je vais faire un premier passage pour tout modifier version brut, puis je modifierais peut-être quelques noms de méthodes. Au final, j'aurai un code plus lourd, pas spécialement plus lisible au premier regard, mais qui aura du sens et on saura de quoi on parle. <em>(Quand à la vitesse de traitement, je ne devrait gagner qu'un millième de milliseconde.)<br /><br /></em>
<div>Au passage, j'ai échangé quelques mots avec le grand gourou ce matin au sujet des différentes méthodes existantes dans Dotclear pour créer le code HTML des formulaires, je vais avoir un gros chantier en perspective.</div>https://chez.jcdenis.fr/post/2022/04/02/M%C3%A9nache#comment-formhttps://chez.jcdenis.fr/feed/atom/comments/246Désagréableurn:md5:14da29c3bf96996ec2144cc650f36ec72022-03-26T17:06:00+00:002022-03-26T17:58:38+00:00Jean-Christian DenisDotclearcodedc3fichierlenteurserveur<p>Quelle désagréable sensation que celle d'un code qui ne te plait pas mais que tu souhaites garder !</p> <p>Voila maintenant plus de 3 mois que j'ai entamer mes essais d'une version chamboulée du moteur de blog Dotclear avec notamment quelques impératifs que je m'étais fixé dès le départ. Parmi ceux-ci, il y avait une meilleur gestion des modules tels que les thèmes et plugins, surtout du coté des répertoires. Pour le code même des modules, il y a encore du travail et c'est encore très lent aujourd'hui, j'en suis conscient et j'espère améliorer la moulinette, mais pour le second effet kiss-kool, ça ne me plait pas du tout. Mais de quoi je parle ?<br />Petite explication. Premièrement dans cette version revue de Dotclear, Je propose plusieurs répertoires pour stocker les thèmes, comme ce qui existe aujourd'hui dans Dotclear 2.x sur les plugins, avec en plus un répertoire supplémentaire par blog (pour les thèmes et pour les plugins). Et deuxièmement, j'autorise à stocker certains de ces répertoires n'importe ou. (et je n'utilise pas de liens symboliques, je suis du monde Windows je ne sais pas ce que c'est :o )</p>
<figure style="text-align: center;"><a href="https://chez.jcdenis.fr/public/photos/20220312-03.jpg" title="20220312-03.jpg, mars 2022"><img src="https://chez.jcdenis.fr/public/photos/.20220312-03_m.jpg" alt="20220312-03.jpg, mars 2022" title="20220312-03.jpg, mars 2022" /><figcaption>Ambre et Oriane - La Panicière - 03/2021</figcaption></a></figure><br />"Et?" me direz vous. Et du coup je dois fournir tous les fichiers tels que les feuilles de style, les javascripts, les images, etc. à travers un gestionnaire du fichier. Pour ce faire, ce gestionnaire doit connaitre tous les répertoires de thèmes et plugins ainsi que le blog courant et sa configuration, ça prend du temps. Ce qui n'est pas grave pour un fichier peu vite devenir une catastrophe pour 40 fichiers à fournir pour une page web… Du coup par exemple sur l'interface d'administration on a cette désagréable sensation que ça rame, que tout ne s'affiche pas d'un coup. Je n'aime pas ça et je ne peux rien y faire.https://chez.jcdenis.fr/post/2022/03/26/D%C3%A9sagr%C3%A9able#comment-formhttps://chez.jcdenis.fr/feed/atom/comments/245Pas de bras, pas de brasurn:md5:3d031199d8445ecf5b0eabbbd6ded4a92022-02-13T13:53:00+00:002022-02-13T14:43:06+00:00Jean-Christian DenisDotclearcomposerdc3namespacepsr<p>Je profite de <a href="https://fr.dotclear.org/blog/post/2022/02/13/Dotclear-2.21" hreflang="fr" title="Dotclear 2.21">la sortie de Dotclear 2.21</a> pour faire le point sur <a href="https://chez.jcdenis.fr/post/2021/12/19/Jme-lance%2C-Lucette" hreflang="fr" title="Dotclear 2.21">le défi que je m'étais lancé</a> il y a maintenant 2 mois.</p> <p>Depuis fin décembre, je travaille sur <a href="https://github.com/JcDenis/dotclear/tree/namespace" hreflang="en" title="Branche namespace">une branche Namespace</a> de Dotclear et autant le dire tout de suite, il n'y a plus aucune chance que je réussisse à rendre ce code compatible avec la branche master (les versions actuelles).</p>
<p><img src="https://chez.jcdenis.fr/public/divers/.githubns_m.png" alt="" style="margin: 0 auto; display: block;" /></p>
<p>Et je commençais même à baisser les bras à cause de la lenteur extrême de mon code, et aidé par le passage du COVID qui m'a ruiné une semaine… Jusqu'à ce que j'en trouve la raison et revienne à une vitesse d'exécution un peu plus normale <em>(autant le code que moi!)</em>. Bref, le mal de crâne passant je vais bientôt pouvoir me replonger dedans et continuer à tout casser car même si le fait est que ce code est incompatible avec l'existant, il y a pleins de bonnes choses dedans. Pour parler technique, voila quelques exemple :</p>
<ul><li>Gestion de l'arborescence façon <strong>PSR-4</strong> et donc normalement <strong>composer</strong> compliant,</li>
<li>Plus de clearbricks, qui est engloutie par Dotclear,</li>
<li>Plus d'appelle à des global sortie du chapeau, tout passe par l'application (super nom fourre tout),</li>
<li>Plus de constante de configuration, idem tout est dans l'appli,</li>
<li>Le truc qu'on appelle application est accessible n'importe ou n'importe quand dans le code,</li>
<li>Refonte totale façon modules des plugins et thèmes qui deviennent des types de modules,</li>
<li>Multi répertoire de thèmes avec possibilité de répertoire par blog,</li>
<li>Pour ça, passage de toutes les requetes (page,img,css,js,etc) par un gestionnaire d'URL (lourd mais souple)</li>
<li>Et j'en oublie pleins… </li>
</ul>
<div>Donc même si cette branche ne sort jamais, je m'amuse bien et il y a pleins de bonnes idées dedans, ça servira toujours.<br /><br />Coté planning, je m'était donné 1 an pour rendre un verdict, j'en suis à deux mois, <strong><em>see you later</em></strong>.</div>https://chez.jcdenis.fr/post/2022/02/13/Pas-de-bras%2C-pas-de-bras#comment-formhttps://chez.jcdenis.fr/feed/atom/comments/242Jme lance, Lucetteurn:md5:754bd16d82c9d6b9909768c8dbf3237a2021-12-19T17:31:00+00:002021-12-19T18:09:29+00:00Jean-Christian DenisDotcleardc3dynamiquenamespacephp<p>Comme d'habitude, il suffit d'une idée qui me passe par la tête pour me lancer à corps perdu dans une aventure bien trop périlleuse pour moi.</p> <p>Il y a quelques temps, j'ai commencé à regarder le fonctionnement des espaces de noms dans PHP, avec 10 ans de retard et l'impasse que j'avais fait sur ce système de gestion de classe, l'affaire n'était pas gagnée. Dès le premier aspect ça ma titillé et j'ai, comme toujours, mis mon cerveau en ébullition: Les espaces de noms de PHP permettent une gestion ultra simple de l'auto-chargement des classes depuis leurs différents dossiers. Il n'en fallait pas plus pour que j'attaque à recoder mon moteur de blog préféré en suivant ce principe. (En vrai je me suis fait la main sur des plugins qui tournent chez moi avec ces fameux <em>namespaces</em>) Et voila, je n'ai pas réfléchie, ça engendre des milliers de problèmes et d'incompatibilités avec le code actuel et je suis donc en train d'adapter et de bricoler pour que ça passe. Et comme il y a un moment ou évidement ça ne passe plus, je recommence en modifiant en conséquence. Je suis borné, j'ai déjà recommencé 3 ou 4 fois.</p>
<p>Il serait bon que pour une fois, vu que ça à l'air de me plaire, je prenne le problème dans son ensemble et que je pose les bases d'une réécriture propre. Je sais faire ça moi ? </p>
<figure style="margin: 0 auto; display: table;"><a class="media-link" href="https://chez.jcdenis.fr/public/photos/20211218-01.jpg"><img alt="20211218-01.jpg, déc. 2021" class="media" src="https://chez.jcdenis.fr/public/photos/.20211218-01_m.jpg" /></a>
<figcaption>Ambre et Oriane - La Panicière - 12/2021</figcaption>
</figure>
<p> </p>
<p>Pour la petite histoire, je suis partie sur du 100% classe, plus de fichiers avec des bouts de code, plus de fichier avec 5 ou 6 classes dedans. Cette structure m'oblige donc à revoir certains aspects et rendent le code absolument incompatible (pour le moment) avec l'existant. Par exemple, les pages de la partie administration seront servies depuis un seul point d'entrée et non plus une page/fichier par lieu. Les plugins ne seront plus non plus géré comme aujourd'hui par fichier (_define.php, _admin.php, etc) mais pas classe. Tous les passage pirouettes du core de Dotclear à des méthodes statiques à travers des globales seront à proscrire. (J'ai même envie de passer en dynamique pas mal de classes) J'ai donc pas mal de soucis en perspective. Mais c'est ce qui fait la beauté du jeu. Et puis Dotclear est assez solide aujourd'hui pour que ce ne soit pas une nécessité avant longtemps. Ouf. Ah, et au passage, clearbricks serait engloutie par Dotclear. Voila.</p>https://chez.jcdenis.fr/post/2021/12/19/Jme-lance%2C-Lucette#comment-formhttps://chez.jcdenis.fr/feed/atom/comments/239