• KrISS
  • Items
  • View item
  • Feeds
  • Folders
  • Items
  • Plugins
  • Stars
  • Add new item
  • View item
  • Edit item
  • Remove item
      • 97hcRA57GCag
      • <time>1684501200</time><short>19/5/23</short><long>Friday, May 19, 2023 3:00:00 PM</long>
      • unread
      • 4 : KrISS aaaa : middleware
      • tontof
      • La semaine passée était bien chargée et je n'ai pas eu le temps de partager un peu de code. Cette semaine, c'est un début de présentation d'un projet encore en cours. À l'image de <a href="https://github.com/kriss/mvvm">KrISS MVVM</a> qui est une sorte de projet générique pour développer rapidement des petites applications en utlisant la programmation orientée objet, <a href="https://github.com/kriss/aaaa">KrISS aaaa</a> a le même but mais avec l'esprit programmation fonctionnelle. À l'heure où j'écris ces lignes KrISS aaaa n'est pas vraiment opérationnel mais j'ai déjà quelques briques que je vais présenter petit à petit après avoir mis en place quelques tests pour présenter comment tout cela fonctionne.<br /> <br /> La programmation fonctionnelle n'a plus vraiment le vent en poupe mais je pense qu'elle peut être intéressante car plus facile à comprendre que la programmation orientée objet et j'espère donc trouvé du temps pour concrétiser tout ça. J'ai même pensé mettre à jour KrISS feed en utilisant ce principe, un jour peut-être...<br /> <br /> Voici donc une première présentation de middleware qui correspond au principe de la couche d'oignon illustré dans cet article : <a href="http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/">http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/</a> mais en programmation fonctionnelle :<br /> <code><span style="color: #000000"><br /> <span style="color: #0000BB"><?php </span><span style="color: #007700">include(</span><span style="color: #DD0000">'src/helpers/middleware/middleware.php'</span><span style="color: #007700">);<br /> <br /> function </span><span style="color: #0000BB">before</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">, </span><span style="color: #0000BB">$next</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'before'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$next</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">);<br /> }<br /> <br /> function </span><span style="color: #0000BB">after</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">, </span><span style="color: #0000BB">$next</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object </span><span style="color: #007700">= </span><span style="color: #0000BB">$next</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">);<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'after'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$object</span><span style="color: #007700">;<br /> }<br /> <br /> function </span><span style="color: #0000BB">core</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'core'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$object</span><span style="color: #007700">;<br /> }<br /> <br /> </span><span style="color: #0000BB">$middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">middleware</span><span style="color: #007700">([</span><span style="color: #DD0000">'after'</span><span style="color: #007700">, </span><span style="color: #DD0000">'before'</span><span style="color: #007700">, </span><span style="color: #DD0000">'after'</span><span style="color: #007700">, </span><span style="color: #DD0000">'before'</span><span style="color: #007700">], </span><span style="color: #DD0000">'core'</span><span style="color: #007700">);<br /> <br /> </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$middleware</span><span style="color: #007700">());<br />  </span><span style="color: #0000BB">?></span><br /> </span><br /> </code>Le résultat est le suivant<br /> <code><br /> array(5) {<br /> [0] =><br /> string(6) "before"<br /> [1] =><br /> string(6) "before"<br /> [2] =><br /> string(4) "core"<br /> [3] =><br /> string(5) "after"<br /> [4] =><br /> string(5) "after"<br /> }<br /> </code><br /> J'imagine utilisé ce principe de middleware pour gérer des plugins dans KrISS aaaa. Plus d'exemples dans le fichier de tests : <a href="https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php">https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php</a><br />
      • https://tontof.net/index.php?2023/05/19/15/00/00-4-kriss-aaaa-middleware
      • La semaine passée était bien chargée et je n'ai pas eu le temps de partager un peu de code. Cette semaine, c'est un début de présentation d'un projet encore en cours. À l'image de <a href="https://github.com/kriss/mvvm">KrISS MVVM</a> qui est une sorte de projet générique pour développer rapidement des petites applications en utlisant la programmation orientée objet, <a href="https://github.com/kriss/aaaa">KrISS aaaa</a> a le même but mais avec l'esprit programmation fonctionnelle. À l'heure où j'écris ces lignes KrISS aaaa n'est pas vraiment opérationnel mais j'ai déjà quelques briques que je vais présenter petit à petit après avoir mis en place quelques tests pour présenter comment tout cela fonctionne.<br /> <br /> La programmation fonctionnelle n'a plus vraiment le vent en poupe mais je pense qu'elle peut être intéressante car plus facile à comprendre que la programmation orientée objet et j'espère donc trouvé du temps pour concrétiser tout ça. J'ai même pensé mettre à jour KrISS feed en utilisant ce principe, un jour peut-être...<br /> <br /> Voici donc une première présentation de middleware qui correspond au principe de la couche d'oignon illustré dans cet article : <a href="http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/">http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/</a> mais en programmation fonctionnelle :<br /> <code><span style="color: #000000"><br /> <span style="color: #0000BB"><?php </span><span style="color: #007700">include(</span><span style="color: #DD0000">'src/helpers/middleware/middleware.php'</span><span style="color: #007700">);<br /> <br /> function </span><span style="color: #0000BB">before</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">, </span><span style="color: #0000BB">$next</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'before'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$next</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">);<br /> }<br /> <br /> function </span><span style="color: #0000BB">after</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">, </span><span style="color: #0000BB">$next</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object </span><span style="color: #007700">= </span><span style="color: #0000BB">$next</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">);<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'after'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$object</span><span style="color: #007700">;<br /> }<br /> <br /> function </span><span style="color: #0000BB">core</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'core'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$object</span><span style="color: #007700">;<br /> }<br /> <br /> </span><span style="color: #0000BB">$middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">middleware</span><span style="color: #007700">([</span><span style="color: #DD0000">'after'</span><span style="color: #007700">, </span><span style="color: #DD0000">'before'</span><span style="color: #007700">, </span><span style="color: #DD0000">'after'</span><span style="color: #007700">, </span><span style="color: #DD0000">'before'</span><span style="color: #007700">], </span><span style="color: #DD0000">'core'</span><span style="color: #007700">);<br /> <br /> </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$middleware</span><span style="color: #007700">());<br />  </span><span style="color: #0000BB">?></span><br /> </span><br /> </code>Le résultat est le suivant<br /> <code><br /> array(5) {<br /> [0] =><br /> string(6) "before"<br /> [1] =><br /> string(6) "before"<br /> [2] =><br /> string(4) "core"<br /> [3] =><br /> string(5) "after"<br /> [4] =><br /> string(5) "after"<br /> }<br /> </code><br /> J'imagine utilisé ce principe de middleware pour gérer des plugins dans KrISS aaaa. Plus d'exemples dans le fichier de tests : <a href="https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php">https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php</a><br />
      • <name>title</name><content>4 : KrISS aaaa : middleware</content><attributes> <name>link</name><content>https://tontof.net/index.php?2023/05/19/15/00/00-4-kriss-aaaa-middleware</content><attributes> <name>description</name><content>La semaine passée était bien chargée et je n'ai pas eu le temps de partager un peu de code. Cette semaine, c'est un début de présentation d'un projet encore en cours. À l'image de <a href="https://github.com/kriss/mvvm">KrISS MVVM</a> qui est une sorte de projet générique pour développer rapidement des petites applications en utlisant la programmation orientée objet, <a href="https://github.com/kriss/aaaa">KrISS aaaa</a> a le même but mais avec l'esprit programmation fonctionnelle. À l'heure où j'écris ces lignes KrISS aaaa n'est pas vraiment opérationnel mais j'ai déjà quelques briques que je vais présenter petit à petit après avoir mis en place quelques tests pour présenter comment tout cela fonctionne.<br /> <br /> La programmation fonctionnelle n'a plus vraiment le vent en poupe mais je pense qu'elle peut être intéressante car plus facile à comprendre que la programmation orientée objet et j'espère donc trouvé du temps pour concrétiser tout ça. J'ai même pensé mettre à jour KrISS feed en utilisant ce principe, un jour peut-être...<br /> <br /> Voici donc une première présentation de middleware qui correspond au principe de la couche d'oignon illustré dans cet article : <a href="http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/">http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/</a> mais en programmation fonctionnelle :<br /> <code><span style="color: #000000"><br /> <span style="color: #0000BB"><?php </span><span style="color: #007700">include(</span><span style="color: #DD0000">'src/helpers/middleware/middleware.php'</span><span style="color: #007700">);<br /> <br /> function </span><span style="color: #0000BB">before</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">, </span><span style="color: #0000BB">$next</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'before'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$next</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">);<br /> }<br /> <br /> function </span><span style="color: #0000BB">after</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">, </span><span style="color: #0000BB">$next</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object </span><span style="color: #007700">= </span><span style="color: #0000BB">$next</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">);<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'after'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$object</span><span style="color: #007700">;<br /> }<br /> <br /> function </span><span style="color: #0000BB">core</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'core'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$object</span><span style="color: #007700">;<br /> }<br /> <br /> </span><span style="color: #0000BB">$middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">middleware</span><span style="color: #007700">([</span><span style="color: #DD0000">'after'</span><span style="color: #007700">, </span><span style="color: #DD0000">'before'</span><span style="color: #007700">, </span><span style="color: #DD0000">'after'</span><span style="color: #007700">, </span><span style="color: #DD0000">'before'</span><span style="color: #007700">], </span><span style="color: #DD0000">'core'</span><span style="color: #007700">);<br /> <br /> </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$middleware</span><span style="color: #007700">());<br />  </span><span style="color: #0000BB">?></span><br /> </span><br /> </code>Le résultat est le suivant<br /> <code><br /> array(5) {<br /> [0] =><br /> string(6) "before"<br /> [1] =><br /> string(6) "before"<br /> [2] =><br /> string(4) "core"<br /> [3] =><br /> string(5) "after"<br /> [4] =><br /> string(5) "after"<br /> }<br /> </code><br /> J'imagine utilisé ce principe de middleware pour gérer des plugins dans KrISS aaaa. Plus d'exemples dans le fichier de tests : <a href="https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php">https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php</a><br /> </content><attributes> <name>dc:date</name><content>2023-05-19T15:00:00+02:00</content><attributes> <name>dc:language</name><content>fr</content><attributes> <name>dc:creator</name><content>tontof</content><attributes> <name>dc:subject</name><content>A simple and smart (or stupid) blog</content><attributes> <name>content:encoded</name><content>La semaine passée était bien chargée et je n'ai pas eu le temps de partager un peu de code. Cette semaine, c'est un début de présentation d'un projet encore en cours. À l'image de <a href="https://github.com/kriss/mvvm">KrISS MVVM</a> qui est une sorte de projet générique pour développer rapidement des petites applications en utlisant la programmation orientée objet, <a href="https://github.com/kriss/aaaa">KrISS aaaa</a> a le même but mais avec l'esprit programmation fonctionnelle. À l'heure où j'écris ces lignes KrISS aaaa n'est pas vraiment opérationnel mais j'ai déjà quelques briques que je vais présenter petit à petit après avoir mis en place quelques tests pour présenter comment tout cela fonctionne.<br /> <br /> La programmation fonctionnelle n'a plus vraiment le vent en poupe mais je pense qu'elle peut être intéressante car plus facile à comprendre que la programmation orientée objet et j'espère donc trouvé du temps pour concrétiser tout ça. J'ai même pensé mettre à jour KrISS feed en utilisant ce principe, un jour peut-être...<br /> <br /> Voici donc une première présentation de middleware qui correspond au principe de la couche d'oignon illustré dans cet article : <a href="http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/">http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/</a> mais en programmation fonctionnelle :<br /> <code><span style="color: #000000"><br /> <span style="color: #0000BB"><?php </span><span style="color: #007700">include(</span><span style="color: #DD0000">'src/helpers/middleware/middleware.php'</span><span style="color: #007700">);<br /> <br /> function </span><span style="color: #0000BB">before</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">, </span><span style="color: #0000BB">$next</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'before'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$next</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">);<br /> }<br /> <br /> function </span><span style="color: #0000BB">after</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">, </span><span style="color: #0000BB">$next</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object </span><span style="color: #007700">= </span><span style="color: #0000BB">$next</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">);<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'after'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$object</span><span style="color: #007700">;<br /> }<br /> <br /> function </span><span style="color: #0000BB">core</span><span style="color: #007700">(</span><span style="color: #0000BB">$object</span><span style="color: #007700">) {<br />     </span><span style="color: #0000BB">$object</span><span style="color: #007700">[] = </span><span style="color: #DD0000">'core'</span><span style="color: #007700">;<br />     return </span><span style="color: #0000BB">$object</span><span style="color: #007700">;<br /> }<br /> <br /> </span><span style="color: #0000BB">$middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">middleware</span><span style="color: #007700">([</span><span style="color: #DD0000">'after'</span><span style="color: #007700">, </span><span style="color: #DD0000">'before'</span><span style="color: #007700">, </span><span style="color: #DD0000">'after'</span><span style="color: #007700">, </span><span style="color: #DD0000">'before'</span><span style="color: #007700">], </span><span style="color: #DD0000">'core'</span><span style="color: #007700">);<br /> <br /> </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$middleware</span><span style="color: #007700">());<br />  </span><span style="color: #0000BB">?></span><br /> </span><br /> </code>Le résultat est le suivant<br /> <code><br /> array(5) {<br /> [0] =><br /> string(6) "before"<br /> [1] =><br /> string(6) "before"<br /> [2] =><br /> string(4) "core"<br /> [3] =><br /> string(5) "after"<br /> [4] =><br /> string(5) "after"<br /> }<br /> </code><br /> J'imagine utilisé ce principe de middleware pour gérer des plugins dans KrISS aaaa. Plus d'exemples dans le fichier de tests : <a href="https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php">https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php</a><br /> </content><attributes>
      • false
      KrISS feed: 2026-04-230.011543035507202