Cómo compartir con otras personas tu proyecto PHP ya terminado

Cómo compartir con otras personas tu proyecto PHP ya terminado

Cómo hacer para..., Herramientas
Listo. Terminado. Finito. Ah... qué placer, ¿no? Después de horas frente a la pantalla, incontables tazas de café y miles de bugs resueltos, por fin llegará el merecido descanso... sólo falta hacer la demo para el cliente. Es que si no se hace el cliente no podrá dar su visto bueno y sin él... difícil que haga el último pago :p Podrías hacer un despliegue completo en su servidor pero... ¿y si algo sale mal? O peor, ¿qué tal si sale todo bien y el código ya está fuera de tu control? ¿Cómo hacer para que otra persona vea tu trabajo sin entregarle el código? Existen varias opciones según cuál sea tu modo de trabajar. Para este artículo asumiré que desarrollas en un servidor local (XAMPP o similar). Usar un…
Leer más
Cuál es la mejor librería para hacer PDF desde PHP

Cuál es la mejor librería para hacer PDF desde PHP

Herramientas
Apuesto que te habrás topado con la necesidad de emitir reportes en PDF alguna vez, ¿cierto? Por ejemplo para generar facturas electrónicas. De por sí es un tema integrarte con los webservices del fisco (Léase AFIP, SUNAT, DGI, DIAN, etc...) y cuando pensás que todo está resuelto, te encontrás con que falta subir otra colina más: generar los benditos pdfs. Seguro habrás pensado: "Tiene que haber una librería que permita hacer pdfs con PHP" Y tenés razón... y a la vez no. ¿Cómo? Pues... es que no existe una librería si no unas cuantas... y las diferencias entre una y otra no siempre están disponibles a simple vista. Casi podríamos decir que elegir la librería para generar pdfs es un proyecto en sí mismo. Así que, para ayudarte a tomar…
Leer más
Cómo testear los emails que envía tu aplicación

Cómo testear los emails que envía tu aplicación

Cómo hacer para..., Herramientas
¿Alguna vez te llegó un correo similar a este? Es un hecho: los mails que genera y envía tu aplicación son una parte de ella y, como tal, deben ser testeados. En este artículo te mostraré algunas técnicas que te ayudarán a encarar estas pruebas Testear emails enviando a un único destinatario Una técnica simple es hacer que todos los correos lleguen siempre a un mismo destinatario (a vos). La ventaja de esto es que prácticamente no necesitás nada extra (Nada que no tengas digamos). El problema es que implementar esto puede implicar ensuciar el código con condicionales aquí y allí. Si usas un componente para el envío (Como el Mailer de Symfony), las cosas pueden ser más simples. Basta con especificar el destinatario único en el archivo de configuración…
Leer más
Cómo usar Docker en proyectos PHP

Cómo usar Docker en proyectos PHP

Cómo hacer para..., Herramientas
Hace tiempo que vengo usando (¡y abogando por su uso!) máquinas virtuales para mis proyectos PHP. Hasta ahora me venía manejando con Vagrant y debo decir que me ha dado unas cuantas satisfacciones. Sin embargo, hay algunos problemas derivados de su uso: Las VM se pueden volver muy pesadasOcupan mucho espacio en el discoSon lentas de levantarNo es sencillo tener muchas corriendo a la par (Consumen muchos recursos de hardware)No es fácil asegurarme de que en Producción y en Desarrollo tengo exactamente el mismo software instalado. Investigando un poco y, hay que decirlo también, por consejo de algunos colegas me metí con docker. Qué es Docker Docker es una herramienta de virtualización basada en un concepto algo diferente al que usa Vagrant: los contenedores. No me voy a meter acá…
Leer más
Qué es un CDN y por qué deberías usarlo

Qué es un CDN y por qué deberías usarlo

Herramientas
CDN significa Content Delivery Network o Red de Distribución de Contenidos. Se trata de conjuntos (por lo general bastante grandes) de servidores sincronizados entre sí y preparados para servir contenido estático desde diversos puntos del planeta. Su objetivo principal es el de disminuir el tiempo de carga de una página web (Algo que siempre viene bien). Este objetivo se logra combinando varios factores. Entre ellos: Aprovechando el paralelismo de los pedidos HTTP: Al tener el contenido distribuido en diversos servidores (en lugar de tener el código php y los archivos estáticos en el mismo) el cliente puede lanzar varias peticiones en paralelo por un lado y, por el otro, el pobre servidor al que llegan todos los visitantes de tu sitio puede delegar parte de la carga, lo cual a…
Leer más
Qué es y para qué sirve PHP Mess Detector

Qué es y para qué sirve PHP Mess Detector

Herramientas
PHPMessDetector es una herramienta que ayuda a detectar código defectuoso en proyectos PHP (Muy útil a la hora de realizar auditorías de código ajeno). Se basa en el análisis automatizado del código utilizando conjuntos de reglas. Estas reglas buscan detectar código mal estructurado, mala nomenclatura, métodos exageradamente grandes, ciclos ineficientes y demás. Está preparado para emitir su salida en diferentes formatos (Texto, XML, HTML). Su uso es bastante simple, hay que instalarlo y luego corre como una utilidad de línea de comandos. Por ejemplo, corriendo el comando php phpmd.phar . text naming Sobre una base de código algo dudoso, obtuve un resultado como este: /home/mauro/sitio/authorize/authorizenet.php:11 Classes should not have a constructor method with the same name as the class/home/mauro/sitio/authorize/authorizenet.php:11 Classes should not have a constructor method with the same name as the…
Leer más
Cuál es el mejor IDE para PHP

Cuál es el mejor IDE para PHP

Herramientas
Si llevás algo de tiempo trabajando con PHP, te habrás dado cuenta de que ni notepad ni vim ni nada que se le parezca es suficientemente bueno como para que desarrollar aplicaciones sea una tarea amena. Para alcanzar un buen nivel de eficiencia se necesitan herramientas específicas que nos simplifiquen (un poco) la vida. En el caso de la programación, lo que más va a modificar tu día a día es el uso (o falta) de un Entorno Integrado de Desarrollo (IDE en Inglés). Existen muchas opciones cuando se trata de PHP, sin embargo, hay unos pocos que son los estándares de la industria. Veamos algunos: Eclipse para PHP En realidad no se trata de un producto específico, si no de un plugin para el ya conocido Eclipse (El IDE multiplataforma).…
Leer más
Los bundles mínimos para un proyecto empresarial Symfony

Los bundles mínimos para un proyecto empresarial Symfony

Herramientas
Ultimamente me estuve entusiasmando bastante con un par de proyectos en los que estamos trabajando en Leeway (obviamente codeados en mi framework favorito Symfony :)) y me pareció interesante compartir algo de la experiencia. Symfony por sí mismo es un gran Framework cuando se trata de armar un sólido Back-End, pero la parte de front... es un poco floja para mi gusto. Afortunadamente, el diseño modular que tiene ha permitido que mucha gente colabore con excelentes bundles, entre ellos: MopaBootstrapBundle Lograr un frontend responsive sin saber casi nada de css es, en mi opinión, un sueño hecho realidad. Este bundle permite apalancarse en Twitter Bootstrap para lograr una UI muy profesional (y estándar). Ejemplo de una pantalla lograda: Más información acá AsseticBundle La librería Assetic provee una forma muy buena de manejar los recursos estáticos…
Leer más
Qué es composer y por qué deberías usarlo

Qué es composer y por qué deberías usarlo

Herramientas
Estás desarrollando una aplicación PHP y te enfrentás a un problema que seguro alguien ya resolvió antes. Para qué re-inventar la rueda, ¿cierto? Abrís una nueva pestaña, entrás a Google y escribís "Cómo haer X usando php". La lista es larga, pero hay un factor común en todos los ejemplos: composer. Ahí está otra vez. Composer por aquí, composer por allá. Por todos lados te tiran cosas como: composer require base/demo-base-code Como quien dice "Buenos días". Y, a pesar de no ser precisamente un newbie, te frustra tener que copiar, pegar y rezar. No, necesitás entender qué es composer de una buena vez para que a la próxima vez que te lo topes, puedas trabajar y proseguir con esos ejemplos, recursos o códigos sin ningún problema. Así que... ¿de qué…
Leer más