¿Alguna vez ha querido probar rápidamente pequeños fragmentos de código PHP, pero se atascó al abrir su IDE favorito, preparar un archivo test.php simple, cargarlo en el navegador, etc.? A veces, todo lo que quieres hacer es probar rápidamente algo de lógica. Quizás incluso esté examinando algunos de los fragmentos de ejemplo en el manual en línea de PHP, y pensó que sería bueno ejecutar rápidamente estos ejemplos y verlos en acción. Quizás quieras intentar refactorizar algunas cosas y ver cómo funciona. A veces, su flujo de trabajo diario es excesivo para estas situaciones simples. Sin embargo, hay una solución perfecta para ti, te doy: PHP Console !


Creado por Jordi Boggiano

Ahora la consola PHP la crea Jordi Boggiano. Jordi es el creador de Composer. Composer ha revolucionado por sí solo el panorama de PHP, por lo que sabemos que esta Consola PHP es una pequeña y agradable pieza de software. Cuando visite la página de github, verá que hay pasos para instalar la consola de depuración de php y es bastante sencillo.


Instalar la consola de depuración PHP

Para este ejemplo, simplemente lo instalamos C:\wamp\www\consoleescribiendo composer require seld/php-consoledesde el wwwdirectorio.

php-debug-console-install

También puede encontrar la consola en packagist aquí.


Prueba de la consola PHP

Una vez que tengamos instalada la consola php, podemos probarla visitando http://localhost/console/vendor/seld/php-console/.
php-debug-console-captura de pantalla

¡Frio! Tenga en cuenta que se le proporciona un área de texto simple donde puede escribir algunos fragmentos simples de PHP, luego simplemente haga clic en el botón ¡ Probar esto! para ejecutar el código. Justo encima del área de texto está el resultado del código. Si es tan vago que ni siquiera puede hacer clic en un botón para ejecutar su código, también tiene la opción de presionarctrl-enterpara ejecutar su fragmento. Es una gran herramienta de aprendizaje y una forma fantástica de probar fragmentos rápidos de código sin toda la sobrecarga. Tal vez esté aprendiendo sobre una función específica en PHP, como la función substr phpAhora puedes probarlo muy fácilmente. ¡Veamos!

Imagina este código.

En la parte superior de tu cabeza, probablemente olvidas lo que esto hace. No hay problema, conéctelo a la consola y pruébelo.

php-console-is-great

Tal vez le gustaría poner a prueba la función array_uniqueAdemás, es muy fácil de hacer. Primero veamos el código, luego hagamos una prueba en la Consola PHP.

array_unique_php_debug_console

Ingresamos el código en el área de texto y hacemos clic en ¡Pruébelo! Observe que la función array_unique () de hecho elimina cualquier duplicado y la salida se ve bien. ¿Qué tal crear nuestra propia función en el área de pruebas? ¿Funcionará? Probémoslo.

Una cosa muy común en PHP es verificar si una cadena contiene una palabra específica. Dicho de otra manera, a menudo necesitará verificar la aparición de una cadena dentro de otra. La función strpos () se puede utilizar para esto. Usando este conocimiento, creemos una función que sea un poco más fácil de usar. Aquí está el código que se nos ocurrió.

cómo-comprobar-si-una-cadena-contiene-una-palabra-específica-en-php

¡Muy genial! Pudimos crear nuestra propia función nombradafindOccurrence()que acepta dos parámetros. El primero es un pajar en el que buscaremos y el segundo es la aguja que buscaremos. Dentro de nuestrafindOccurrence()función, usamos strpos () para hacer el trabajo pesado por nosotros. Esto es lo que se conoce como función contenedora. Podemos hacer uso de envoltorios para personalizar cómo nos gustaría interactuar con el idioma. En el ejemplo anterior podemos ver que una cadena definitivamente existe dentro de la otra cadena de Podemos encontrar una ocurrencia de una cadena dentro de otra . Cambiemos la aguja que buscamos y veamos qué pasa.
strpos-devolviendo-falso

Esta vez buscamos a Gwen. Cuando ejecutamos nuestra función, podemos ver que está funcionando correctamente ya que nos informa que Gwen no está en el pajar. Es una pena, amamos a Gwen.


¿Qué hay de conectarse a una base de datos?

Al usar la herramienta de la Consola PHP, incluso puede conectarse a una base de datos si desea probar fragmentos que involucren consultas a la base de datos. Tenemos una base de datos en el mismo host local que nuestra instalación de PHP. El nombre de la base de datos es "pdotest" y simplemente iniciaremos sesión como root sin contraseña. ¡Probémoslo!

pdo-conectando-a-base de datos-mysql

Ahora que sabemos que podemos conectarnos a la base de datos, intentemos crear una tabla. La base de datos pdotest está actualmente vacía, pero crearemos una tabla para contener algunos enlaces. Creemos una tabla en nuestra base de datos usando PDO.

crear-una-tabla-mysql-con-pdo

Con una tabla ahora creada, podemos completar una declaración de inserción usando PDO. Insertemos un enlace en nuestra nueva tabla. Insertaremos un enlace para Google.

insertar-en-con-pdo

Ahora que hemos insertado un enlace usando PDO, intentemos sacarlo de la base de datos para ver si funcionó. Usaremos una declaración preparada para probar esto.

seleccionar-todo-de-base de datos-usando-pdo

¡Muy genial! ¡Esto parece estar funcionando muy bien! Agreguemos ahora otro enlace a la base de datos, pero esta vez también usaremos una declaración preparada para la inserción. Agregaremos Twitter esta vez.

insertar-en-usando-pdo-y-declaraciones-preparadas

Obtenemos un booleano verdadero que significa que funcionó. ¡Busquemos los registros nuevamente y veamos qué obtenemos!
fetchall-using-pdo-like-a-boss

Definitivamente parece que está funcionando, pero observe la duplicación de datos. Esto se debe a que, de forma predeterminada, el método fetchAll () en PDO devolverá los datos en dos formas. Uno como una matriz indexada y otro como una matriz asociativa. En realidad, esto funciona bastante bien, porque te da la flexibilidad de interactuar con esos datos como quieras. Otra forma de hacer que esto funcione es decirle a PDO que le gustaría trabajar con objetos en su lugar. Veamos cómo.

pdo-buscar-como-objeto

Ahora sería fácil, por ejemplo, decir que desea el href del segundo enlace en la base de datos. Para hacer esto, puede usar este fragmento en la consola de depuración de php.

pdo-drill-down-into-object-property


PHP Psysh y Laravel Tinker

Otro método de interactuar con PHP en la consola es a través de PsyshSi usa el marco de Laravel, es posible que esté familiarizado con Tinker, que funciona con Psysh. Esta herramienta es oficialmente un ciclo de impresión REPL o read eval. Le permite ejecutar código PHP directamente en la consola. Intentemos configurar una matriz basada en índices en Psysh (Tinker en este caso). Tenga en cuenta que primero debe ingresar al shell escribiendo, lo php artisan tinkerque le dará el siguiente resultado: Psy Shell v0.7.2 (PHP 7.0.5-3 + donate.sury.org ~ trusty + 1 - cli) por Justin Hileman .
matriz-basada-en-índice-en-consola-boris

Ahora que tenemos una matriz de datos basada en un índice simple, podemos inspeccionarla como esperaríamos. Aquí probamos los datos con print_r () y var_dump () de la matriz.
print_r-of-array-data

Probemos la función in_array () de uso común que prueba para ver si un valor dado está en una matriz.
in_array-test-repl

Ahora creemos rápidamente un objeto para trabajar con PHP. La forma más rápida de crear un objeto para trabajar en PHP sin tener que depender de una clase es simplemente lanzar una matriz a un objeto. Veamos cómo podemos hacer esto.
matriz-conversión-a-objeto-php
Observe que en este caso simplemente estamos asignando una matriz asociativa a una variable, pero justo antes de los corchetes de la matriz está el operador (objeto) de conversión. Esto toma nuestra matriz asociativa y la convierte en un objeto. Observe cómo se envía a la pantalla de inmediato. Desde allí, podemos acceder a las propiedades individuales del objeto como lo haríamos normalmente. Todo esto está haciendo uso de stdClass integrado en PHP. Incluso podemos crear una nueva clase en REPL y probar su funcionalidad. Creemos una clase de tarea simple directamente en la consola y completemos una tarea.
crear-una-clase-en-la-respuesta

Aunque la respuesta solo funciona una línea a la vez, aún puede presionar la tecla Intro e ir a una nueva línea, continuando ingresando el código. Lo que verá es que el mensaje cambia de tres signos mayores que a tres puntos. Esto indica que la consola reconoce que no ha terminado de ingresar un código PHP válido y debe terminar de escribir. El primer ejemplo de esto es donde comenzamos a definir nuestra clase Task. Observe los tres puntos en cada nueva línea hasta que finalmente completemos la última llave de cierre de la clase. En ese punto, se muestra un valor nulo en la pantalla y recuperamos nuestro indicador estándar. En este punto, tenemos una nueva clase definida en memoria. ¡Ahora podemos hacer uso de él! Creamos una nueva tarea para Clean Desk. Luego inspeccionamos la propiedad completa y vemos que es falsa. Luego hacemos una llamada al método finish () y completamos la tarea. Una inspección final de la propiedad terminada nos muestra que esto ahora es cierto. ¡Muy genial! Este tipo de código simple de prueba y ejecución en una consola es una buena práctica para perfeccionar sus habilidades de sintaxis sin la ayuda de un IDE que lo guíe.


Resumen de cómo probar rápidamente fragmentos de PHP

En este tutorial cubrimos la consola de depuración php. Descubrimos que es una gran herramienta cuando solo desea probar fragmentos rápidos de código PHP. Facilita el proceso ya que puede evitar la sobrecarga de encender su IDE y cambiar entre el IDE y la ventana del navegador junto con las actualizaciones constantes de la ventana. A veces, solo desea probar rápidamente el comportamiento de cualquier número de funciones de cadena o funciones de matriz, probar objetos o incluso trabajar con una base de datos como lo hicimos aquí. Es una buena herramienta para tener a su disposición. ¡Que te diviertas!