PHP https://www.carloscarrascal.com/ es Instalar PHP 7.2 en Debian 9 para Drupal 8 https://www.carloscarrascal.com/blog/instalar-php-72-en-debian-9-para-drupal-8 <article data-history-node-id="43" class="node node--type-blog-post node--view-mode-rss group-one-column ds-2col-stacked-fluid clearfix"> <div class="group-header"> <div class="field field--name-node-title field--type-ds field--label-hidden field--item"><h1> Instalar PHP 7.2 en Debian 9 para Drupal 8 </h1> </div> <div class="field field--name-node-post-date field--type-ds field--label-hidden field--item">Domingo, Octubre 21, 2018 - 01:19</div> </div> <div class="group-left"> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field--items"> <div class="field--item"><a href="/tags/php" hreflang="es">PHP</a></div> <div class="field--item"><a href="/tags/debian" hreflang="es">Debian</a></div> <div class="field--item"><a href="/tags/drupal" hreflang="es">Drupal</a></div> </div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Debian 9 trae por defecto en sus repositorios PHP 7.0.32. Desde Drupal 8.5.0 ya se soporta PHP 7.2, y por si no os habeis dado cuenta, <strong>Drupal 8 dejará de soportar PHP 5.5 y 5.6 el día 6 de marzo de 2019</strong>, así que ya va siendo hora de actualizar.</p> <p>Subir a 7.2 es bastante sencillo:</p> <pre> sudo apt install apt-transport-https lsb-release ca-certificates sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" &gt; /etc/apt/sources.list.d/php.list' sudo apt update</pre> <p>Una vez actualizado, podemos comprobar la versión instalada con:</p> <pre> php -v</pre> <p>Si no se ha actualizado automáticamente, podemos actualizar php a mano:</p> <pre> sudo apt install php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-opcache </pre> <p>Una vez actualizado PHP, hay que actualizar el módulo que usamos en el servidor web.  Para Apache:</p> <pre> sudo a2enmod php7.2 sudo a2dismod php7.1</pre> <p>Y reiniciar:</p> <pre> sudo service apache2 restart</pre> <p>Si estáis utilizando composer, es una buena idea incluir la versión de PHP a utilizar:</p> <pre> composer config platform.php 7.2</pre> <p>Y actualizar todo:</p> <pre> composer update</pre> <p>En algunos casos es buena idea borrar el fichero <em>composer.lock</em> antes de correr el update.</p> <p> </p> </div> </div> <div class="group-footer"> <section> <h2>Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=43&amp;2=comment&amp;3=comment" token="k8gK-xVcL0gzDcnyrt0dwH140sYIcDugBHd2dQTEqg4"></drupal-render-placeholder> </section> </div> </article> Sat, 20 Oct 2018 23:19:02 +0000 root 43 at https://www.carloscarrascal.com Desarrollo Drupal con Sublime Editor 3 https://www.carloscarrascal.com/blog/desarrollo-drupal-con-sublime-editor-3 <article data-history-node-id="23" class="node node--type-blog-post node--view-mode-rss group-one-column ds-2col-stacked-fluid clearfix"> <div class="group-header"> <div class="field field--name-node-title field--type-ds field--label-hidden field--item"><h1> Desarrollo Drupal con Sublime Editor 3 </h1> </div> <div class="field field--name-node-post-date field--type-ds field--label-hidden field--item">Sábado, Septiembre 2, 2017 - 15:20</div> </div> <div class="group-left"> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field--items"> <div class="field--item"><a href="/tags/drupal" hreflang="es">Drupal</a></div> <div class="field--item"><a href="/tags/linux" hreflang="es">Linux</a></div> <div class="field--item"><a href="/tags/dev" hreflang="es">Dev</a></div> <div class="field--item"><a href="/tags/php" hreflang="es">PHP</a></div> </div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><a href="https://www.sublimetext.com/">Sublime Text</a> lleva siendo mi editor preferido para trabajar desde hace un montón de años. Es muy ligero, me gustan los atajos de teclado, muy configurable y tiene un sistema de <em>plugins</em> que le da mucha potencia.</p> <p>La versión 3 lleva en beta por lo menos desde 2013, y todo el tiempo que llevo usándola no he tenido problemas.</p> <p>Quería escribir un articulo con mi configuración personal que utilizo para trabajar en proyectos Drupal, y que aporta funcionalidad y facilita la vida. Como resumen:</p> <ul><li>Revisión de código al momento: Marcado de estándares de Drupal, errores de sintaxis, etc.</li> <li>Marcado de modificaciones en Git: Cada cambio que hacemos en un fichero lo vemos resaltado, muy útil para saber de un vistazo las modificaciones que hemos hecho al archivo.</li> </ul><p>Lo primero de todo es instalar el editor. Estamos de suerte porque tenemos paquetes binarios empaquetados para unas cuantas distribuciones Linux. Este es el enlace de descargas:</p> <p><a href="https://www.sublimetext.com/docs/3/linux_repositories.html" target="_blank">https://www.sublimetext.com/docs/3/linux_repositories.html</a></p> <p> </p> <h2>Package Control</h2> <p>La primera extensión que vamos a instalar es básica para sacarle buen partido a este editor: <a href="https://packagecontrol.io/docs/usage">Package Control</a>. Este <em>plugin</em> nos va a ayudar a instalar fácilmente otros plugins, básicamente. Para instalar paquete Package Control, vayamos a su pagina:</p> <p><a href="https://packagecontrol.io/installation" target="_blank">https://packagecontrol.io/installation</a></p> <p>Una vez instalado podremos utilizar <kbd>CTRL + SHIFT + p</kbd> para abrir una consola donde podremos ejecutar comandos.</p> <p> </p> <h2>Instalar Sublime linter</h2> <p><a href="https://github.com/SublimeLinter/SublimeLinter3">Sublime Linter</a> es un <em>plugin</em> genérico que sirve de base para otros '<em>linters</em>' mas específicos (PHP, Java, SASS, etc.) que necesitamos instalar primero. Estos <em>plugins</em> nos ayudarán a mantener nuestro código limpio y seguir los estándares del lenguaje en el que estamos programando, de forma que nos van avisando si cometemos errores de formato o sintaxis, a media que escribimos el código. Lint significa pelusa en ingles, y eso es justo lo que hacen estos <em>plugins</em>, quitar pelusa.</p> <p>Instalarlo es sencillo una vez tenemos el <em>package manager</em> instalado:</p> <ol><li>Abrimos comandos con <kbd>CTRL+SHIFT+p</kbd></li> <li>Teclear <em>install</em> y ENTER</li> <li>buscamos el paquete SublimeLinter</li> <li>ENTER otra vez</li> </ol><p>Y ya lo tenemos. Seguimos adelante.</p> <p> </p> <h2>Instalar PHP_CodeSniffer (phpcs)</h2> <p><a href="https://github.com/squizlabs/PHP_CodeSniffer">PHP_CodeSniffer</a> es la herramienta que nos va a ayudar a identificar cualquier violación de los estándares de PHP. Es un ejecutable que debemos instalar en nuestro sistema, por lo que necesitamos tenerlo en nuestra variable <em>PATH</em>. La ultima versión a fecha de escribir este articulo es la 3.0.2, pero para hacerlo funcionar con el modulo <em>Coder</em> de Drupal necesitamos quedarnos con la 2.7.0. Cuidado con esto que puede cambiar en el futuro, así que revisa las versiones antes de instalar.</p> <p>La forma mas sencilla de instalarlo es usando <em>pear</em>:</p> <pre> sudo pear install PHP_CodeSniffer-2.7.0</pre> <p>Con esto tendremos dos ejecutables:</p> <ul><li><em>phpcs</em>: el "code sniffer" para inspeccionar el código y reportar errores.</li> <li><em>phpcbf</em>: el "Code Beautifier and Fixer", que se utiliza para realizar correcciones automáticas en el código.</li> </ul><p> </p> <h2>Añadir los estándares de Drupal a phpcs. Módulo Coder</h2> <p>Ahora que ya tenemos instalado <em>phpcs</em>, necesitamos incluirle las definiciones de los estándares de código de Drupal. Para esto instalaremos el módulo <a href="https://www.drupal.org/project/coder">Coder</a> de Drupal. Vayamos a la carpeta donde lo queramos dejar instalado, que puede ser cualquier sitio, no hace falta que sea dentro de un proyecto o sitio Drupal. Eso si, antes necesitaremos tener instalado <a href="http://docs.drush.org/en/8.x/install-alternative/">Drush</a>. Por ejemplo:</p> <pre> cd /path/para/coder drush dl coder</pre> <p>Con esto deberíamos haber instalado la versión 8.x que es la última. Ahora ya podemos decir a phpcs donde están estos estándares de Drupal:</p> <pre> sudo phpcs --config-<strong>set</strong> installed_paths /path/para/coder/coder/coder_sniffer</pre> <p>Y ahora ya podemos ejecutar phpcs para revisar cualquier archivo de código Drupal, así:</p> <pre> phpcs --standard=Drupal ruta/al/archivo/a/revisar</pre> <div> </div> <h2>Volvemos a Sublime: SublimeLinter-phpcs</h2> <p>Ahora que ya tenemos <em>phpcs</em> funcionando nos volvemos a Sublime para instalar el <em>plugin</em> que vamos usar mientras picamos código, <a href="https://github.com/SublimeLinter/SublimeLinter-phpcs">SublimeLinter-phpcs</a>. Para instalarlo:</p> <ol><li>Abrimos comandos con <kbd>CTRL+SHIFT+p</kbd></li> <li>Teclear <em>install</em> y ENTER</li> <li>buscamos el paquete <em>SublimeLinter-phpcs</em></li> <li>ENTER otra vez</li> </ol><p>Una vez instalado el paquete, seguimos las instrucciones de configuración que nos detallan. Al final, si vamos a <em>Preferences / Package settings / Sublime linter / User</em>, debemos tener una sección en la configuración parecida a esto:</p> <pre> "linters": { "phpcs": { "@disable": false, "args": [], "excludes": [], "standard": "Drupal" } },</pre> <p>Cuando funcione, Sublime nos ira mostrando los errores que tengamos en el código de esta manera:</p> <p><img alt="SublimeLinter-phpcs" class="img-responsive shadow" src="/sites/default/files/SublimeLinter-phpcs.png" /></p> <h2>Cambios en Git: GitGutter</h2> <p>Por ultimo, otro pequeño <em>plugin</em> que nos mostrará los cambios que hayamos hecho al archivo en local, desde el último <em>commit</em> de Git. Es muy útil porque de un vistazo nos deja ver las lineas que hemos añadido, modificado o borrado del fichero. Si lo combinamos con cualquiera de los otros <em>plugins</em> de Git para Sublime, nos puede ayudar bastante para tener claro que estamos tocando.</p> <p>Instalarlo es sencillo, como los anteriores:</p> <ol><li>Abrimos comandos con <kbd>CTRL+SHIFT+p</kbd></li> <li>Teclear <em>install</em> y ENTER</li> <li>buscamos el paquete <em>gitgutter</em></li> <li>ENTER otra vez</li> </ol><p>Una vez este funcionando, podremos ir viendo las modificaciones que vayamos haciendo en el fichero en la parte de la izquierda, con diferentes símbolos para líneas nuevas o modificadas, como se puede ver en la siguiente imagen.</p> <p><img alt="Sublime-gitgutter" class="img-responsive shadow" src="/sites/default/files/Sublime-gitgutter.png" /></p> <h2>Preferencias generales de Sublime</h2> <p>Para terminar os dejo aquí las preferencias básicas de Sublime que utilizo con proyectos Drupal</p> <pre> { "bold_folder_labels": true, "caret_style": "wide", "default_line_ending": "unix", "draw_white_space": "all", "ensure_newline_at_eof_on_save": true, "fade_fold_buttons": false, "fallback_encoding": "UTF-8", "find_selected_text": true, "font_options": [ "subpixel_antialias" ], "highlight_line": true, "line_padding_bottom": 1, "open_files_in_new_window": false, "rulers": [ 80 ], "shift_tab_unindent": true, "soda_classic_tabs": true, "tab_size": 2, "theme": "Flatland Dark.sublime-theme", "translate_tabs_to_spaces": true, "trim_automatic_white_space": true, "trim_trailing_white_space_on_save": true, "use_tab_stops": true, "word_separators": "./\\()\"'-:,.;&lt;&gt;~!@#%^&amp;*|+=[]{}`~?", }</pre> <p> </p> <h2>Referencias</h2> <ol><li><a href="https://packagecontrol.io/docs/usage">https://packagecontrol.io/docs/usage</a></li> <li><a href="https://www.drupal.org/node/1419988">https://www.drupal.org/node/1419988</a></li> <li><a href="https://www.drupal.org/node/2809335">https://www.drupal.org/node/2809335</a></li> <li><a href="http://benmatselby.github.io/sublime-phpcs/#configuration">http://benmatselby.github.io/sublime-phpcs/#configuration</a></li> </ol></div> </div> <div class="group-footer"> <section> <h2>Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=23&amp;2=comment&amp;3=comment" token="IETTaxWHQ0YGdBadM3gb641wwtK9BNCdilTbGzAk9oA"></drupal-render-placeholder> </section> </div> </article> Sat, 02 Sep 2017 13:20:09 +0000 root 23 at https://www.carloscarrascal.com