Programar código PHP ¿IDE o editor de Texto?

Read More
komodo edit php

Bienvenido 2017, feliz enero para todos, y los mayores éxitos para nuestros colegas Kumbieros!

En esta ocasión vamos a hablar de un tema  bastante sencillo, y que tiene que ver con ayudar un poco a la decisión qué herramienta es la más efectiva, eficiente y se acomoda más a las necesidades del desarrollador.

Todos sabemos lo rápido que resultan las aplicaciones hechas con KumbiaPHP, pero cuando empiezas cuesta un poco sacarle el provecho necesario a las horas de trabajo, y te pierdes en búsquedas de documentación, paseos por los foros, consultas en el grupo de google, etc.

¿Hay algún tipo de secreto o algo que nos pueda ser de utilidad?

En este sentido tenemos dos opciones: la primera es usar un IDE para PHP, o usar un editor de texto sobrecargado (con extensiones)

Bueno, ¿qué IDE y editor de texto puedes usar?

Por el lado de los IDE están los gratuitos como Netbeans, Eclipse, Aptana. También los hay de pago como PHP Storm, Zend Studio, Komodo IDE.
En la vereda de los editores de texto, la lista comienza con Komodo Edit, Atom, Visual Studio Code, Notepad++, Brackets, Sublime Text, Vim, Gedit, TextMate, Text Wranger, etc.

¿Y entonces, cómo me decido por uno u otro?

El mayor beneficio de un IDE es que con el sólo hecho de cargar tu proyecto tendrás acceso a autocompletado de código;  ayuda con clases, métodos, propiedades; herramientas como formateadores, snippets (trozos de código); resaltado de errores y ayuda para corregirlos. Ahora, no todo es beneficio con un IDE pues tendrás que sacrificar algo – como dice la ley del intercambio equivalente – tendrás que ceder en memoria RAM y procesador. Los IDE normalmente están basados en Java, y, por lo tanto no corren en código nativo (la mayoría)

¿Y los editores de texto?

Un editor de texto tiene la particularidad de ser en extremo liviano en cuanto a memoria RAM, pero sólo es eso, un editor de texto. Tendrás que agregar extensiones especiales para darles algo de funcionalidad extra y mejorar así tu tiempo de desarrollo y tu curva de aprendizaje.Recuerdo bien que alguna vez usé Atom, y haber creado “recortes de código php” para labores como crear CRUD, Controladores, Modelos, e incluso lanzar los Helpers de la clase Form con autocompletado. No es complejo construir tus propios recortes de código.

Y entonces, ¿qué sigue en este post?

Lo cierto es que vamos a crear entre todos diferentes post para ir mostrándoles cómo usar IDE o editores de texto recargados. Ya tenemos el de NetBeans IDE. Nuestro colega Raúl (@demonio69) seguirá con la serie con el uso de Komodo Edit. Y espero acompañarlo luego con Eclipse para la próxima entrega.

Para cerrar, así se ve Netbeans en acción y Komodo Edit configurado con las librerías del core de KumbiaPHP.

Netbeans en Acción
Usando Komodo Edit con la clase Router

Serie de artículos:

NetBeans IDE

Enlazar bloques de HTML con CSS

Hola Kumbieros !

Vengo a contaros un truco CSS que aprendí relativamente poco y aunque no es algo explícito de nuestro framework PHP, sí es algo a tener en cuenta a la hora de aplicar buenas prácticas a nuestro código.

Se trata de evitar situaciones en las que rompemos la estructura de nuestro código HTML, evitando hacer cosas como esta:

<a href="/blog/2016/12/01/enlazar-bloques-de-html-con-css">
<div>
<p>"DIV" Y OTRAS ETIQUETAS PESADAS DENTRO DE "A", NO PARECE LA FORMA MÁS CORRECTA</p>
</div>
</a>

Para evitar esto propongo crear una clase CSS con las siguiente propiedas:

<style>
/* ENLAZAR BLOQUES */
.box-link { overflow:hidden; position:relative; }
.box-link a { height:100%; left:0; position:absolute; top:0; width:100%;
</style>

Con la clase box-link le damos solidez a la caja que va a ser enlazada.
Y después le decimos al enlace que ocupe todo el alto y ancho de la caja.

Nuestro ejemplo quedaría ahora de la siguiente manera:

<div class="box-link">
<p>AHORA ESTA CAJA ES UN ENLACE</p>
<a href="/blog/2016/12/01/enlazar-bloques-de-html-con-css"></a>
</div>

Espero que les sea útil.

Gracias por leerme.

Hacer un redireccionamiento de enlaces antiguos

Recientemente he actualizado una web pasándola de un viejo y lento joomla, a un potente y velocísimo kumbiaphp. En el cambio me he visto inmerso en 3 graves problemas:

  1. Base de datos muy grande y algo lenta.
  2. Muchísimas visitas.
  3. Artículos con escritura de la URL “diferente”

El problema 1 y 2 se soluciono muy fácilmente usando la cache (de la cual hablaré próximamente en un post especifico dedicado a ello), pero lo verdaderamente sorprendente por su sencillez y simplicidad es como reconstruir las URL antiguas para que funcione con el nuevo diseño de url/rutas.

Al principio imaginé que la forma más sencilla de hacerlo sería mediante reglas en el htaccess. Después pensé en modificar el router del core para que funcionase como yo quería, pero al final resultó muchísimo más sencillo: redireccionamiento desde la vista 404.

Si estamos con el sitio en PRODUCCION, cuando una URL de nuestro sitio no existe, kumbia lanzará la vista 404.phtml para informarnos del error. Es allí, mediante unas simples validaciones donde podremos comprobar la URL que falla, analizarla y ver si tenemos que redirigirla a la URL correcta mediante un redireccionamiento 301 (Página movida permanentemente) o si por el contrario es un error 404 legítimo.

Ventajas:

  1. Fácil manejo desde PHP
  2. Independiente del servidor
  3. Más velocidad (sólo necesita validar si no existe la URL y no en cada Request)

Os dejo el código que me sirvió a mi, tanto cuando las urls correspondían con un patrón fijo, como para otras URL estáticas que tienen su correspondiente nueva URL. También podéis crear una clase para manejar vuestras redirecciones.


<?php
   // views/_shared/errors/404.phtml
   $buscar = filter_var(Router::get('route'), FILTER_SANITIZE_STRING);

   $correspondecias = array(
   "/jprovincia.html" => "provincia",
   "/portada.html" => "portada",
   "/jopinion.html" => "jopinion",
   "/region.html" => "region",
   "/local.html" => "local",
   "/jsociedad.html" => "sociedadcultura",
   "/deportes.html" => "deportes"
   );

   if(isset($correpondencias[$buscar])) {
       Redirect::to("secciones/".$correspondecias[$buscar], 0, 301);
       exit();
   }

   $articulo = (new Articulos)->find_first("urlantigua = '$buscar'");
   if($articulo) {
      Redirect::to("articulos/$articulo->slug", 0, 301);
      exit();
   }
// continuar con la vista 404
?>

Vídeo KumbiaPHP Essentials

Read More

Bienvenido/bienvenida a KumbiaPHP.

Esta semana tenemos un vídeo dedicado a los conceptos básicos de KumbiaPHP. Los vídeos son parte de una serie para compartir conocimiento y algunas prácticas que tenemos los desarrolladores que usamos este fabuloso framework.

Pueden descargarse los slides aquí: KumbiaPHP Essentials

Próximas semanas: