Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2018-05-20T09:27:54+02:00Les derniers messages parus sur le forum de Zeste de Savoir.Docker ou comment déployer facilement une multitude de service, message #1805622018-05-20T09:27:54+02:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p180562<p>Bonjour,</p>
<p>La bêta du contenu « Docker ou comment déployer facilement une multitude de service » a été désactivée.</p>EntityListener qui fait la sourde oreille, message #1669262017-11-20T16:42:56+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/9716/entitylistener-qui-fait-la-sourde-oreille/?page=1#p166926<p>Il y a eu des mises à jour depuis que j’ai posté cette question. J’ai notamment passé de doctrine/doctrine-bundle 1.6.11 à 1.8.0. Maintenant, mon listener fonctionne, et je n’ai même plus d’erreur si je le déclare en double. En revanche, je l’ai laissé dans les mappings, les paramètres de tags <code>method</code> ne sont apparemment pas/plus pris en compte.</p>
<p>Alors je n’ai pas le fin mot de l’histoire, mais c’est fonctionnel, donc je clos le sujet (et non clôture, seuls les modérateurs le peuvent).</p>
<h4 id="edit">Edit<a aria-hidden="true" href="#edit"><span class="icon icon-link"></span></a></h4>
<p>En fait, je pense que je n’avais tout simplement pas vidé le cache. Je pense maintenant que je ne l’avais peut-être pas fait, parce que dès que j’ajoutais le service, je le voyais déclaré. Seulement, comme il est lié aux métadonnées des entités, il fallait qu’il y ait une trace là-bas… Forcément, la mise à jour des composants fait une purge du cache <img src="/static/smileys/ange.png" alt=":ange:" class="smiley"></p>
<p>Mais ça reste que j’utilise la solution Doctrine et non Symfony au problème. Si un jour quelqu’un passe par là et a l’explication, je la lirai volontiers.</p>
<h4 id="edit-2">Edit <sub>2</sub><a aria-hidden="true" href="#edit-2"><span class="icon icon-link"></span></a></h4>
<p>J’ai oublié ce sujet, mais avec Symfony 5.0, je peux ne faire que déclarer mes services dans <code>services.yaml</code> et plus besoin des mappings. Ne pas oublier de vider le cache expressément cependant, cela ne fait pas partie des choses qui sont surveillées et mises en cache automatiquement à chaque modification apparemment.</p>EntityListener qui fait la sourde oreille, message #1666432017-11-15T23:00:23+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/9716/entitylistener-qui-fait-la-sourde-oreille/?page=1#p166643<p>Je viens d’essayer à l’instant, et malheureusement ça ne fonctionne pas mieux.</p>EntityListener qui fait la sourde oreille, message #1666392017-11-15T22:55:09+01:00John/@Johnhttps://zestedesavoir.com/forums/sujet/9716/entitylistener-qui-fait-la-sourde-oreille/?page=1#p166639<p>Salut,</p>
<p>As-tu essayé en mettant <code>doctrine.event_listener</code> à la place de <code>doctrine.orm.entity_listener</code> (et en modifiant les arguments) ? <a href="https://symfony.com/doc/current/doctrine/event_listeners_subscribers.html">Lien.</a></p>
<p>Perso c’est ça que j’utilise sur mes entités, et ça fonctionne très bien.</p>EntityListener qui fait la sourde oreille, message #1666322017-11-15T22:26:54+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/9716/entitylistener-qui-fait-la-sourde-oreille/?page=1#p166632<p>Bonsoir !</p>
<p>Une fois n’est pas coutume, je viens vers vous pour un détail qui m’aurait échappé…</p>
<p>J’essaie de mettre en place un EntityListener pour automatiser des traitements par lots. J’ai <a href="https://github.com/Ymox/instrum-partitions">une bibliothèque de partitions</a>, et j’aimerais mettre en place de quoi gérer les prêts. Pour ça, il y a une entité Lending (pas trouvé de mot plus approprié) qui est en ManyToMany avec une entité Piece. L’idée étant qu’à la création d’un Lending, le statut des objets Piece soit mis à jour.</p>
<p>J’ai tenté de lier le listener dans les mappings, et de suivre <a href="https://symfony.com/doc/current/bundles/DoctrineBundle/entity-listeners.html">la documentation officielle</a> avec des paramètres supplémentaires que j’avais trouvés je-ne-sais-plus comment avec une version précédente de Symfony (tout en utilisant <a href="https://symfony.com/blog/new-in-symfony-3-3-simpler-service-configuration#short-syntax-for-service-configuration">la possibilité de déclarer ses services de manière plus compacte</a>). Au final, j’ai ce que je vous propose ci-dessous.</p>
<div class="custom-block custom-block-spoiler"><div class="custom-block-body"><figure><div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-php"><span class="hljs-meta"><?php</span>
<span class="hljs-keyword">namespace</span> <span class="hljs-title">YSoft</span>\<span class="hljs-title">InstrumBundle</span>\<span class="hljs-title">Listener</span>;
<span class="hljs-keyword">use</span> <span class="hljs-title">YSoft</span>\<span class="hljs-title">InstrumBundle</span>\<span class="hljs-title">Entity</span>\<span class="hljs-title">Lending</span>;
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">LendingListener</span>
</span>{
<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">prePersist</span><span class="hljs-params">(Lending $lending, $eventArgs)</span>
</span>{dump(<span class="hljs-string">'Meuh'</span>);
<span class="hljs-keyword">$this</span>->changeLendingPiecesStatus($lending, $eventArgs);
}
<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">preUpdate</span><span class="hljs-params">(Lending $lending, $eventArgs)</span>
</span>{dump(<span class="hljs-string">'Hi-han'</span>);
<span class="hljs-keyword">$this</span>->changeLendingPiecesStatus($lending, $eventArgs);
}
<span class="hljs-keyword">private</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">changeLendingPiecesStatus</span><span class="hljs-params">(Lending $lending, $eventArgs)</span>
</span>{dump($eventArgs);
<span class="hljs-keyword">exit</span>();
<span class="hljs-keyword">if</span> ($lending->isOurs()) {
$statusId = $lending->getEnd() ? <span class="hljs-string">'unverified'</span> : <span class="hljs-string">'lent'</span>;
} <span class="hljs-keyword">else</span> {
$statusId = $lending->getEnd() ? <span class="hljs-string">'returned'</span> : <span class="hljs-string">'unverified'</span>;
}
$status = $eventArgs->getEntityManager()->getRepository(<span class="hljs-string">'YSoftInstrumBundle:Status'</span>)->find($statusId);
<span class="hljs-comment">/** <span class="hljs-doctag">@var</span> $piece \Ysoft\InstrumBundle\Entity\Piece */</span>
<span class="hljs-keyword">foreach</span> ($lending->getPieces() <span class="hljs-keyword">as</span> &$piece) {
$piece->setStatus($status);
}
}
}
</code></pre></div><figcaption>YSoft\InstrumBundle\Listener\LendingListener. J’ai mis les méthodes <code>prePersist()</code> et <code>preUpdate()</code> parce que ces noms devraient faire qu’elles soient automatiquement appelées si les tags ne sont pas reconnus</figcaption></figure><figure><div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-yaml"><span class="hljs-attr">services:</span>
<span class="hljs-string">YSoft\InstrumBundle\Listener\LendingListener:</span>
<span class="hljs-attr"> tags:</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">{</span> <span class="hljs-attr">name:</span> <span class="hljs-string">doctrine.orm.entity_listener,</span> <span class="hljs-attr">entity:</span> <span class="hljs-string">YSoft\InstrumBundle\Entity\Lending,</span> <span class="hljs-attr">event:</span> <span class="hljs-string">preUpdate,</span> <span class="hljs-attr">method:</span> <span class="hljs-string">changeLendingPiecesStatus</span> <span class="hljs-string">}</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">{</span> <span class="hljs-attr">name:</span> <span class="hljs-string">doctrine.orm.entity_listener,</span> <span class="hljs-attr">entity:</span> <span class="hljs-string">YSoft\InstrumBundle\Entity\Lending,</span> <span class="hljs-attr">event:</span> <span class="hljs-string">prePersist,</span> <span class="hljs-attr">method:</span> <span class="hljs-string">changeLendingPiecesStatus</span> <span class="hljs-string">}</span>
</code></pre></div><figcaption><code>services.yml</code></figcaption></figure><figure><div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-yml"><span class="hljs-string">YSoft\InstrumBundle\Entity\Lending:</span>
<span class="hljs-attr"> type:</span> <span class="hljs-string">entity</span>
<span class="hljs-attr"> table:</span> <span class="hljs-literal">null</span>
<span class="hljs-attr"> repositoryClass:</span> <span class="hljs-string">YSoft\InstrumBundle\Repository\LendingRepository</span>
<span class="hljs-attr"> entityListeners:</span>
<span class="hljs-string">YSoft\InstrumBundle\Listener\LendingListener:</span>
<span class="hljs-attr"> prePersist:</span> <span class="hljs-string">[</span> <span class="hljs-string">changeLendingPiecesStatus</span> <span class="hljs-string">]</span>
<span class="hljs-attr"> preUpdate:</span> <span class="hljs-string">[</span> <span class="hljs-string">changeLendingPiecesStatus</span> <span class="hljs-string">]</span>
</code></pre></div><figcaption>Extrait de <code>Lending.orm.yml</code></figcaption></figure></div></div>
<ul>
<li>La version déclarée uniquement dans les mappings n’est pas reconnue (impossible de voir le service avec la commande <code>debug:container --show-private</code>, et mes instructions de débogage ne sont pas déclenchées) ;</li>
<li>
<p>Si je déclare à la fois dans les mappings et comme service :</p>
<ul>
<li>Si les tags sont spécifiés dans <code>services.yml</code>, j’ai une erreur pour avoir défini deux fois le service ;</li>
<li>Si j’enlève les tags, rien ne fonctionne.</li>
</ul>
</li>
<li>Avec la déclaration dans <code>services.yml</code>, il est bien reconnu par Symfony :</li>
</ul>
<div class="custom-block custom-block-spoiler"><div class="custom-block-body"><figure><div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="language-console">Information for Service "YSoft\InstrumBundle\Listener\LendingListener"
===================================================================================
---------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Option Value
---------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Service ID YSoft\InstrumBundle\Listener\LendingListener
Class YSoft\InstrumBundle\Listener\LendingListener
Tags doctrine.orm.entity_listener (entity: YSoft\InstrumBundle\Entity\Lending, event: preUpdate, method: changeLendingPiecesStatus)
doctrine.orm.entity_listener (entity: YSoft\InstrumBundle\Entity\Lending, event: prePersist, method: changeLendingPiecesStatus)
Public yes
Synthetic no
Lazy no
Shared yes
Abstract no
Autowired no
Autoconfigured no
---------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
</code></pre></div><figcaption>Résultat de la commande <code>debug:container YSoft\InstrumBundle\Listener\LendingListener</code></figcaption></figure></div></div>
<p>Seulement, aucune de mes instructions de débogage n’est appelée, et les modifications attendues ne sont pas effectuées. J’ai ajouté les paramètres <code>entity</code>, <code>event</code> et <code>method</code> parce qu’apparemment j’en avais eu besoin pour une autre application avec une version moins récente de Symfony (je suis en 3.3.12 avec Doctrine 2.6, j’étais en 3.3.1 et aucune idée de la version de Doctrine alors).</p>
<p>Quelqu’un arriverait à avoir le recul que je n’arrive pas à avoir ?</p>
<p>Merci d’avance <img src="/static/smileys/smile.png" alt=":)" class="smiley"></p>Docker ou comment déployer facilement une multitude de service, message #1423012017-02-24T11:02:18+01:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142301<p>Et bah voilà le bon mot <img alt=":D" src="/static/smileys/heureux.png"> </p>
<p>MERCI ! <img alt=":D" src="/static/smileys/heureux.png"></p>Docker ou comment déployer facilement une multitude de service, message #1423002017-02-24T11:00:57+01:00entwanne/@entwannehttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142300<p><a href="https://fr.wikipedia.org/wiki/Conteneurisation">https://fr.wikipedia.org/wiki/Conteneurisation</a> sinon</p>Docker ou comment déployer facilement une multitude de service, message #1422962017-02-24T10:23:35+01:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142296<p>Haha, comme rançonLogiciel #okjesors <br>
Plus sérieusement le terme lui même je l’avais vu, mais surement sans l’accent. Cependant je n’arrive pas à remettre la main dessus :/</p>Docker ou comment déployer facilement une multitude de service, message #1422952017-02-24T10:21:34+01:00cepus/@cepushttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142295<p>Très surprenant. Le "er" de "container" se prononce comme dans "amer" ou dans "cœur". Du coup pourquoi "é"? Drôle de francisation. </p>Docker ou comment déployer facilement une multitude de service, message #1422922017-02-24T10:06:27+01:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142292<figure>
<blockquote>
<p>J’aime pas le terme "containérisation". C’est une invention maison ? Pourquoi "nér" ?</p>
</blockquote>
<figcaption><a href="https://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142291">victor</a></figcaption>
</figure>
<p>Ce n’est pas une invention maison enfin pas de moi, j’avais déjà vu ce terme avant <img alt="^^" src="/static/smileys/hihi.png"> <br>
La francisation <img alt=":-°" src="/static/smileys/siffle.png"> Je vais chercher un autre terme <img alt=":)" src="/static/smileys/smile.png"></p>Docker ou comment déployer facilement une multitude de service, message #1422912017-02-24T10:02:33+01:00cepus/@cepushttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142291<p>J’aime pas le terme "containérisation". C’est une invention maison ? Pourquoi "nér" ?</p>Docker ou comment déployer facilement une multitude de service, message #1422582017-02-23T21:26:19+01:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142258<p>Bonjour les agrumes !</p>
<p>La bêta a été mise à jour et décante sa pulpe
à l’adresse suivante :</p>
<div align="center">
<p><a href="https://zestedesavoir.com/contenus/beta/1744/docker-ou-comment-deployer-facilement-une-multitude-de-service/">Docker ou comment déployer facilement une multitude de service</a> </p>
</div>
<p>Merci d’avance pour vos commentaires.</p>Docker ou comment déployer facilement une multitude de service, message #1422002017-02-23T13:53:51+01:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142200<p>Bonjour les agrumes !</p>
<p>La bêta a été mise à jour et décante sa pulpe
à l’adresse suivante :</p>
<div align="center">
<p><a href="https://zestedesavoir.com/contenus/beta/1744/docker-ou-comment-deployer-facilement-une-multitude-de-service/">Docker ou comment déployer facilement une multitude de service</a> </p>
</div>
<p>Merci d’avance pour vos commentaires.</p>Docker ou comment déployer facilement une multitude de service, message #1421972017-02-23T13:23:05+01:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142197<p>No problem <img alt=";)" src="/static/smileys/clin.png"></p>
<p>Merci pour des commentaires, j’ai un peu agrémenter l’organisation général <img alt=":)" src="/static/smileys/smile.png"> </p>
<p>Trois TP sont apparu, pas de mise à jour pour si peu, mais en sommes les TP vont proposer comment mettre en place un environnement de développement AMP puis comment installer Zds et pour finir, comment installer Zest Writer sur Alpine, car Alpine est un incontournable et Zest Writer demande beaucoup de dépendance pour Debian, donc apprendre à compiler c’est pas mal <img alt=":-°" src="/static/smileys/siffle.png"> </p>Docker ou comment déployer facilement une multitude de service, message #1421962017-02-23T13:20:39+01:00Hugo/@Hugohttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142196<blockquote>
<p>Je pensais à ça <img alt="^^" src="/static/smileys/hihi.png"> : <a href="https://git.dryusdan.fr/Dryusdan/Dockerfiles/blob/master/z-to-pdf/Dockerfile">https://git.dryusdan.fr/Dryusdan/Dockerfiles/blob/master/z-to-pdf/Dockerfile</a></p>
</blockquote>
<p>Pardon, j’ai lu trop vite</p>Docker ou comment déployer facilement une multitude de service, message #1421952017-02-23T13:16:56+01:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142195<p>Je pensais à ça <img alt="^^" src="/static/smileys/hihi.png"> : <a href="https://git.dryusdan.fr/Dryusdan/Dockerfiles/blob/master/z-to-pdf/Dockerfile">https://git.dryusdan.fr/Dryusdan/Dockerfiles/blob/master/z-to-pdf/Dockerfile</a> </p>
<p>Mais pourquoi pas, installer compiler et installer Zds depuis git, l’idée est original o/ </p>
<p>Merci <img alt=":)" src="/static/smileys/smile.png"></p>Docker ou comment déployer facilement une multitude de service, message #1421922017-02-23T13:14:56+01:00Hugo/@Hugohttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142192<blockquote>
<p>En TP je pensais faire une image pour l’api de zestewriter ;). </p>
</blockquote>
<p><a href="https://github.com/DevHugo/zds-docker">C’est peut-être un peu compliqué comme premier tp. </a> <img alt=":D" src="/static/smileys/heureux.png"> . C’est peut-être faisable.</p>
<p>Peut-être que la partie back et la partie front, tu la pull d’un dépôt comme ça tu montre comment récupérer une image … .</p>
<p>Bonne continuation <img alt=";)" src="/static/smileys/clin.png"> </p>Docker ou comment déployer facilement une multitude de service, message #1421892017-02-23T13:05:57+01:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142189<p>En TP je pensais faire une image pour l’api de zestewriter ;). <br>
Mais quelques choses de plus drôle… Un serveur rust / minecraft ? <br>
L’orchestration j’y pensais, et je suis en train d’en tester plusieurs ;).<br>
Sécurité, pas faux, j’ai oublié ^^. </p>
<p>C’est noté pour le reste <img alt=";)" src="/static/smileys/clin.png"></p>Docker ou comment déployer facilement une multitude de service, message #1421872017-02-23T12:56:13+01:00Hugo/@Hugohttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142187<p>Tu as oublié au moins quelques notions celle des registres, du cache, des layers (couche ?), distribution des images, les systemes de logs (elk,syslo) et de monitoring. Tu peux parler aussi orchestration avec (Swarm, Fleet, Kubernate).</p>
<p>Il faut faire sur la sécurité aussi, y’a énormément de chose à dire.</p>
<p>Faut au moins qu’après les premiers chapitre, tu prévois un TP. Par-exemple, faire une petite image hello world ou quelque chose de plus fun.</p>
<p>Deux livres que j’avais aimé sur le sujet : </p>
<ul>
<li>Using Docker de Adrian Mouat</li>
<li>Docker Cookbook de Sébastien Goasguen</li>
</ul>Docker ou comment déployer facilement une multitude de service, message #1421852017-02-23T12:05:15+01:00Dryusdan/@Dryusdanhttps://zestedesavoir.com/forums/sujet/8053/docker-ou-comment-deployer-facilement-une-multitude-de-service/?page=1#p142185<p>Tout le monde se secoue ! <img alt=":D" src="/static/smileys/heureux.png"></p>
<p>J’ai commencé la rédaction d’un tutoriel au doux nom
de « Docker ou comment déployer facilement une multitude de service » et j’ai dans l’objectif de proposer en validation
un texte aux petits oignons. Je fais donc appel à votre bonté sans
limite pour dénicher le moindre pépin, que ce soit à propos
du fond ou de la forme. Vous pourrez consulter la bêta à votre guise à
l’adresse suivante :</p>
<div align="center">
<p><a href="https://zestedesavoir.com/contenus/beta/1744/docker-ou-comment-deployer-facilement-une-multitude-de-service/">À présent, c’est à vous !</a> </p>
</div>
<p>Avoir activé la bêta de cette version est, déjà pour me donner un objectif à respecter (j’ai un tuto fuelphp qui dort, encore) Mais aussi pour que vous me dites ce que vous pensez de l’ordre des chapitres (qui seront remplis au fur et à mesure <img alt=";)" src="/static/smileys/clin.png"> )… Et si il y a trop de fautes d’orthographe (désolé par avance), snobez les dans un premier temps, ça serait mieux pour vous je pense <img alt=";)" src="/static/smileys/clin.png"></p>
<p>Merci !</p>Mon Site Web perso, message #761712015-10-04T18:22:45+02:00unpeudetout/@unpeudetouthttps://zestedesavoir.com/forums/sujet/4088/mon-site-web-perso/?page=1#p76171<p>Mais c'est pas moi qui ai créé Drozor, c'est Gaël.</p>