documentació https://planet.communia.org/ca/etiquetes/documentacio ca Google Structured Data docs https://planet.communia.org/ca/content/google-structured-data-docs <span class="field-wrapper p-name">Google Structured Data docs</span> <span class="field-wrapper"><a href="/user/1" class="visually-hidden p-author h-card" rel="author" title="kinta">kinta <img src="https://planet.communia.org/sites/default/files/pictures/aleixwar2.jpg" alt="kinta" /> </a> <a title="View user profile." href="/ca/users/kinta" lang="" about="/ca/users/kinta" typeof="schema:Person" property="schema:name" datatype="">kinta</a></span> <span class="field-wrapper">Tue, 07/10/2018 - 13:14</span> <div class="body field e-content field-node--body field-name-body field-type-text-with-summary field-label-hidden"> <div class="field-items"> <div class="field-item"><p>Google Structured Data docs</p> </div> </div> </div> <div class="text-content field field-node--field-link field-name-field-link field-type-link field-label-above"> <div class="field-label">Link</div> <div class="field-items"> <div class="field-item"><a href="https://developers.google.com/search/docs/guides/intro-structured-data">https://developers.google.com/search/docs/guides/intro-structured-data</a></div> </div> </div> <div class="field-wrapper field field-node--field-tags field-name-field-tags field-type-entity-reference field-label-above"> <div class="field-label">Tags</div> <div class="field-items"> <div class="field-item"><a href="/ca/etiquetes/documentacio" hreflang="ca">documentació</a></div> <div class="field-item"><a href="/ca/etiquetes/develop" hreflang="ca">develop</a></div> </div> </div> <section class="field-wrapper"> <h2 class="field-items">Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=6412&amp;2=comment&amp;3=comment" token="y1YX_WZkdde4v7F-tMLrz1q6cNdAbVuZAWiI6nuqqb4"></drupal-render-placeholder> </section> Tue, 10 Jul 2018 11:14:35 +0000 kinta 6412 at https://planet.communia.org Managing multiple drupals (7 and 8, composer and drush) https://planet.communia.org/ca/content/managing-multiple-drupals-7-and-8-composer-and-drush <span class="field-wrapper p-name">Managing multiple drupals (7 and 8, composer and drush)</span> <span class="field-wrapper"><a href="/user/1" class="visually-hidden p-author h-card" rel="author" title="kinta">kinta <img src="https://planet.communia.org/sites/default/files/pictures/aleixwar2.jpg" alt="kinta" /> </a> <a title="View user profile." href="/ca/users/kinta" lang="" about="/ca/users/kinta" typeof="schema:Person" property="schema:name" datatype="">kinta</a></span> <span class="field-wrapper">Tue, 04/03/2018 - 18:38</span> <div class="body field e-content field-node--body field-name-body field-type-text-with-summary field-label-hidden"> <div class="field-items"> <div class="field-item"><p><span>La majoria de projectes en drupal que hem creat des de communia requereixen un manteniment, i quan creix la quantitat de projectes a mantenir es necessita una estratègia per poder fer actuacions en massa com poden ser les instal·lacions de mòduls o llibreries, actualitzacions, neteja de caches o registres per monitoritzar.</span></p> <p><span>Fins la versió 8, drush permetia crear àlies i agrupar-los per fer actuacions per grup. Per exemple es podia fer un grup @autoup que permetia actualitzar els drupals que se sabia que en principi no tenien cap motiu per donar errors en la actualització.</span></p> <p><span>Tot això ha entrat en revisió amb Drupal 8, en el moment en què drupal passa a seguir l’estratègia d’innovació oberta que permet la inclusió de codi no dissenyat especificament per drupal, també conegut com estratègia d’innovació<a class="western" href="https://www.drupal.org/8/standards"> <em>Proudly Found Elsewhere</em></a>(symfony, easyrdf, doctrine, twig...). Per orquestrar totes les dependències es fa via <a class="western" href="https://getcomposer.org/doc/00-intro.md">composer</a>, i concretament a partir de drupal 8 es recomana instal·lar una <a class="western" href="https://github.com/drupal-composer/drupal-project">estructura (scaffolding)</a>.</span></p> <p><span>Això ens dóna aquests canvis en l’estructura del projecte:</span></p> <p><img alt="Drupal 7 structure vs Drupal 8 (with drupal-composer) structure" data-align="center" data-caption="Drupal 7 structure vs Drupal 8 (with drupal-composer) structure" data-entity-type="file" data-entity-uuid="4bd4411c-735b-460a-909a-4db907735ffd" src="/sites/default/files/inline-images/drupal7-vs-drupalcomposer.png" /></p> <p><span>En la qual on realment es gestionen les dependències és una carpeta per sobre de la de web, és en la carpeta arrel de drupal-project on executarem composer per instal·lar dependències.</span></p> <p><span>Tots aquests canvis impliquen una nova perspectiva per gestionar el projecte, ja no podem basar-nos en drush, i de fet la versió de drush 9.x <a class="western" href="https://drushcommands.com/drush-9x/pm/pm:download/">ja ens adverteix</a> que instal·lar mòduls per drush està abandonat.</span></p> <p><span>Com que no he trobat una eina per gestionar múltiples projectes de composer, he creat l’aplicació de consola <a class="western" href="https://github.com/aleixq/druman">druman</a> amb el component de symfony <a class="western" href="https://symfony.com/doc/current/console.html">console command</a>. Així es pot fer una gestió dels projectes siguin basats en drush, o en composer.</span></p> <h2><a id="drumangestor" name="drumangestor"><span><span>Druman gestor de projectes en drupal</span></span></a></h2> <p><span>Aquest programa es basa en una llista definida en yml que estarà a ~/.druman-aliases.yml, on definim algunes propietats per cada projecte: alias, path, groups, manager.</span></p> <p><span>Hi ha un exemple d’un yml a la carpeta examples:</span></p> <ul><li> <p><span>alias: serà el nom amb el qual indexarem i podrem accedir al projecte.</span></p> </li> <li> <p><span>Path: és la ruta del projecte, si fem servir l’estructura drupal-composer hem de donar l’arrel del projecte (no la de la web). En cas que no fem servir l’estructura drupal-composer hem de posar l’arrel de web. En cas que vulguem un alias remot hem de posar "".</span></p> </li> <li> <p><span>Groups: llista de grups als que pertany el projecte, per exemple autoup si volem fer un grup d’autoactualització o hacked si volem llistar projectes en els quals hem de parar especial atenció a l’hora d’actualitzar o instal·lar mòduls. (es pot posar els noms que vulguin, els que hi han posats a l'exemple són d’exemple).</span></p> </li> <li> <p><span>Manager: Quin gestor farem servir per controlar dependències:</span></p> <ul><li> <p><span><strong>drush8</strong> Serà útil per la comanda projects:update (sense ús en comanda projects:run), fa servir el gestor drush (v8) per actualitzar seguint el procediment estandar de drupal 7(no recomenat per drupal 8).</span></p> </li> <li> <p><span><strong>drupal-composer</strong> Serà útil per la comanda projects:update (sense ús en comanda projects:run), fa servir el gestor composer per procedir amb l'actualització en estructures drupal-composer.</span></p> </li> <li> <p><span><strong>drush8-alias</strong> Serà útil quan s'actualitza (amb la comanda projects:update) i quan es criden comandes de drush (via comanda projects:run). Indicar el gestor drush8-alias és la via per mantenir un site remot(o local) definit en els àlies de drush, enlloc de reinventar la lògica dels àlies remots de drush, he optat per reaprofitar-ho. Els àlies seran tractats sense canviar al directori de projecte(ja que no està definit path) ni fent un canvi d'usuari, es fa tal com ho fan els àlies de drush(amb els possibles problemes de permisos posteriors que poden sorgir). A l'hora de fer una crida d'una comanda sempre afegirà drush @alias, per tan els àlies de drush i de druman han de coincidir, i s'haura de dir tan sols la comanda de drush, per exemple:</span><br />  </p> <pre> <code class="language-bash">druman project:run -a project_x status</code></pre><p> </p> </li> </ul></li> </ul><h3><a id="remots" name="remots"><span><span>Gestió de projectes (només drupal 7) remots.</span></span></a></h3> <p><span>Hem de parar especial atenció que si en un projecte fem servir el manager drush8-alias, per gestionar projectes remots primer haurem de definir l’àlies remot tal com es feia sempre amb drush fins la versió 8. Això és així per no haver de re-escriure la lògica que fa servir drush per connectar a remots (Per afegir un àlies a drush hi ha informació a : <a class="western" href="https://raw.githubusercontent.com/drush-ops/drush/8.x/examples/example.aliases.drushrc.php">https://raw.githubusercontent.com/drush-ops/drush/8.x/examples/example.aliases.drushrc.php</a> ). Així caldrà definir l’àlies a <span>~/.drush/aliases.drushrc.php</span> i a ~/.druman-aliases.yml, potser en un futur això canvia per poder tirar composers en remot.</span></p> <p> </p> <p><span>Si definim un projecte gestionat per <strong>drush8-alias</strong> el path s’haurà de posar en blanc</span></p> <pre> <code class="language-yaml">alias: someexternal_com path: "" groups: hostingatx manager: drush8-alias</code></pre><h2><a name="llista" id="llista"><span><span>Llistar projectes</span></span></a></h2> <p><span>Per volcar la <strong>llista de projectes</strong> podem fer servir:</span></p> <pre> <code class="language-bash">druman projects:list</code></pre><p> </p> <p><span>Per tal de <strong>filtrar</strong> la llista per grup o per origen(local o remot), aquesta ordre permet les següents opcions:</span></p> <pre> <code class="language-bash">druman projects:list -h Usage: projects:list [options] Options: -g, --group[=GROUP] List only projects of specified group -l, --local List only local projects -r, --remote List only remote projects -f, --full Show all fields from list: alias, path, management type and group.</code></pre><p> </p> <h2><a name="projectrun" id="projectrun"><span><span>Executant comandes a l’arrel dels projectes</span></span></a></h2> <p><span>A partir del llistat de projectes definits a .druman-aliases.yml podem realitzar operacions. Podem tirar una ordre a l’arrel del projecte via:</span></p> <pre> <code class="language-bash">projects:run</code></pre><p><span><span>Tindrem les mateixes opcions de filtratge que quan llistem i a més a més l’opció de seleccionar un únic alies directament. Les opcions són:</span></span></p> <pre> <code class="language-bash">druman projects:run -h Usage: projects:run [options] [--] [&lt;order&gt;] Arguments: order Command to run. Options: -g, --group[=GROUP] Run only on these projects which are members of specified group -a, --alias[=ALIAS] Run only on this specific alias -l, --local List only local projects -r, --remote List only remote projects -all, --all Run in all alias, excluding those using drush8-alias manager, if specified no filters will be used </code></pre><p><span>Abans d’executar la comanda ho farà havent <strong>canviat d’usuari</strong> al que sigui el propietari de la carpeta definida al path de l’àlies.</span></p> <h2><a name="projectupdate" id="projectupdate"><span><span>Executant actualitzacions dels projectes</span></span></a></h2> <p><span>Per actualitzar hi ha la comanda <span>druman projects:update</span><span>, </span><span>que permet les mateixes opcions que la comanda </span><span>projects:run</span><span> .</span></span></p> <pre> <code class="language-bash">projects:update -h -g, --group[=GROUP] Run only on these projects which are members of specified group -a, --alias[=ALIAS] Run only on this specific alias -l, --local List only local projects -r, --remote List only remote projects -all, --all Run in all alias, excluding those using drush8-alias manager </code></pre><p><span>La manera com actualitza els projectes gestionats <span>per</span><strong> drush8-alias </strong>o <strong>drush8</strong> segueix les ordres per actualitzar un <strong>drupal 7</strong>. La manera com actualitza els projectes gestionats per <strong>drupal-composer</strong> segueixen el procediment per actualitzar un <strong>drupal 8</strong>. Es pot veure els procediments a <a class="western" href="https://github.com/aleixq/druman/blob/master/src/Command/ManagerRunnerProjectsCommand.php">https://github.com/aleixq/druman/blob/master/src/Command/ManagerRunnerProjectsCommand.php</a> .</span></p> <h2><span><span>Què queda pendent:</span></span></h2> <ul><li> <p><span>Remots, poder gestionar drupals remots amb composer. Potser la via seria afegir propietats ssh al .druman-aliases.yml . O igual que amb els indicats amb gestor drush8-alias definir un alias remot com explica a <a class="western" href="https://raw.githubusercontent.com/drush-ops/drush/master/examples/example.site.yml">https://raw.githubusercontent.com/drush-ops/drush/master/examples/example.site.yml</a> .</span></p> </li> <li> <p><span>També poder afegir, treure o actualitzar projectes del .druman-aliases.yml interactivament.</span></p> </li> </ul></div> </div> </div> <div class="field-wrapper field field-node--field-tags field-name-field-tags field-type-entity-reference field-label-inline clearfix"> <div class="field-label">Tags</div> <div class="field-items"> <div class="field-item"><a href="/ca/etiquetes/drupal" hreflang="ca">Drupal</a></div> <div class="field-item"><a href="/ca/etiquetes/tutorials" hreflang="ca">tutorials</a></div> <div class="field-item"><a href="/ca/etiquetes/documentacio" hreflang="ca">documentació</a></div> <div class="field-item"><a href="/ca/etiquetes/composer" hreflang="ca">composer</a></div> <div class="field-item"><a href="/ca/etiquetes/php" hreflang="ca">php</a></div> <div class="field-item"><a href="/ca/etiquetes/drush" hreflang="ca">drush</a></div> </div> </div> Tue, 03 Apr 2018 16:38:23 +0000 kinta 6396 at https://planet.communia.org