En ocasiones, por el motivo que sea es posible que se muestre algún mensaje de error o aviso de PHP en nuestras páginas o entradas de WordPress y la verdad es que queda muy feo.
Antes de continuar hay que tener en cuenta que los errores y avisos están para algo, para hacerles caso e intentar resolverlos pero también debemos hacer algo rápidamente para que los visitantes no vean estos errores o avisos mientras nosotros procuramos solucionarlos lo ante posible.
Teniendo en cuenta esto, nos ponemos en la situación que por ejemplo, después de instalar o actualizar un plugin nos muestra un mensaje de error como por ejemplo algo similar a esto:
Warning: Cannot modify header information - headers already sent by xxxx
(output started at xxxxruta/de/nuestro/wordpress/header.php:59) in /otra/ruta/...xx/fichero.php
Como no queremos que se muestre este mensaje de error, vamos a ocultar todos los mensajes y avisos de php para que no se muestren, por lo menos mientras lo vamos solucionando.
El fichero wp-config.php
Si nos fijamos en el fichero ‘wp-config.php‘ de nuestro WordPress seguramente veremos la siguiente línea:
define('WP_DEBUG', false);
Como este «define» no nos está solucionando el problema que tenemos, lo que vamos a hacer es eliminar esa línea de define para añadir las siguiente líneas en nuestro ‘wp-config.php‘:
Añadimos estas líneas, guardamos el fichero y lo subimos a su directorio, refrescamos el navegador y es muy probable que ya no veamos los mensajes de error que nos aparecían hace un momento.
Espero que esto os sea de ayuda en esos momentos de tensión en los que aparece un mensaje de error de este tipo y no sabemos por donde tirar.
Eso si, os recuerdo que los mensajes de error de php deben estar activados, ok? En cuanto lo solucionéis, volvéis a dejarlo como estaba y listo.
Hoy en día es muy importante por no decir imprescindible saber gestionar datos de una Base de Datos desde PHP.
Claro que haremos muchas cosas que no tendrán que trabajar contra una base de datos pero seguro que estáis de acuerdo conmigo que hoy por hoy, la gestión de los datos es de suma importancia. Debemos almacenar, borrar, gestionar datos en una base de datos.
Pues bien, en el tutorial de hoy vamos a ver de una forma sencilla cómo conectarnos a una base de datos desde PHP.
Lo vamos a hacer por pasos para que veamos las diferentes partes del proceso de conexión con la base de datos y además realizaremos una consulta sencilla para cerciorarnos de que todo ha salido bien.
Como digo, voy a utilizar la base de datos Alumnos que ya creamos en el tutorial que os acabo de mencionar y que está en local pero vosotros podéis hacerlo con cualquier otra base de datos.
Pues sin mas, pongámonos manos a la obra…
¿Qué necesitamos?
Para poder realizar las prácticas de este tutorial necesitamos, en primer lugar, una base de datos. En este caso, como he dicho, voy a utilizar la base de datos alumnos que ya tengo creada en local pero vosotros podéis utilizar cualquier otra.
También vamos a necesitar el host o url de nuestro servidor de base de datos. En mi caso es localhost porque lo tengo en local.
Necesitamos también un nombre de usuario con permisos en la base de datos y la contraseña del mismo. En mi caso el usuario es root y no tiene contraseña.
Como vamos a hacerlo poco a poco para que se entienda bien, vamos a comenzar creando las variables que contendrán los datos que acabo de mencionar.
Creando las variables con los datos necesarios
Pues eso, lo primero que vamos a hacer es crear las variables para almacenar los datos de la base de datos que utilizaremos más adelante. También podemos hacerlo directamente sin utilizar variables pero personalmente creo que mucho más limpio.
Las variables que crearemos serán las siguientes:
$usuario = "root";
$contrasena = "tu_contraseña"; // en mi caso tengo contraseña pero en casa caso introducidla aquí.
$servidor = "localhost";
$basededatos = "alumnos";
Creo que no hay duda sobre a lo que corresponde cada una de ellas, verdad?
Crear la conexión con el servidor de base de datos con mysqli_connect()
Ahora vamos a crear la conexión con el servidor de la base de datos mediante la función mysqli_connect() y los datos o variables que hemos creado hace un momento. Para ello crearemos una variable $conexion que contendrá la conexión.
Para explicar un poco la función mysqli_connect() podéis ver que debemos indicarle el servidor, el usuario de la base de datos y la contraseña de ese usuario.
En mi caso he introducido «» para la contraseña pero en vuestro caso, si tenéis definida una contraseña para ese usuario de la base de datos, deberíais introducir la contraseña en la variable $contrasena y luego indicar la variable como tercer parámetro en la llamada a la función mysqli_connect()
Si ejecutáis el código que tenemos hasta ahora no deberíais ver nada y eso es bueno porque no estará dando ningún error.
Pero como no podemos estar seguro de que la conexión con el servidor de la base de datos sea correcta, vamos a añadir un poco de código para que muestre un mensaje en el caso de que la conexión con la base de datos no se haya podido realizar. De esta forma:
$conexion = mysqli_connect( $servidor, $usuario, "" ) or die ("No se ha podido conectar al servidor de Base de datos");
Resumiendo lo que hemos hecho hasta ahora: Hemos creado las variables con los datos que necesitaremos y posteriormente hemos creado una variable y le hemos asignado la conexión con el servidor de base de datos.
La conexión ya estaría hecha pero claro, no nos vamos a quedar aquí…
Conexión a la base de datos
Ahora que ya hemos conectado con el servidor de Base de Datos lo que tenemos que hacer es seleccionar la base de datos que vamos a utilizar. Os recuerdo que en mi caso en la base de datos alumnos que ya la hemos guardado en la variable $basededatos.
Para seleccionar la base de datos a utilizar, usaremos la función mysqli_select_db() a la que le indicaremos 2 parámetros:el objeto de conexión a la base de datos que hemos creado hace un momento ($conexion) y el nombre de la base de datos ($basededatos) y .
Si lo ejecutamos y no nos da ningún error podemos estar de enhorabuena pero, como hemos hecho antes con la conexión al servidor de base de datos, vamos a añadir también aquí la opción para que nos devuelva un mensaje de error en el caso de que algo salga mal.
$db = mysqli_select_db( $conexion, $basededatos ) or die ( "Upps! Pues va a ser que no se ha podido conectar a la base de datos" );
De momento todo va bien pero si queréis, podéis cambiar el nombre de la base de datos por uno que no exista y así ver que nos muestre el mensaje de error como en la siguiente captura:
Es una forma de asegurarnos, verdad?
Hacer una consulta a la base de datos
Aunque ya hemos cumplido con el objetivo de este tutorial que no es otro que conectar con una base de datos MySQL con PHP, vamos a aprovechar para realizar una consulta a la misma y así ya nos vamos soltando con este asunto.
Para hacer una consulta a una base de datos haremos eso, una consulta y como ya sabréis algo de SQL no me voy a meter de momento en esos derroteros.
Entonces, para realizar una consulta utilizaremos la función mysqli_query() en la que indicaremos la consulta que queremos hacer.
Para hacerlo un poco más limpio y ordenado vamos a guardar la consulta en una variable y así la podremos reutilizar sin problemas.
Sin más, creamos una variable y le asignamos la consulta a realizar:
$consulta = "SELECT * FROM alumnos";
La consulta anterior nos devolverá todos los registro de la tabla «alumnos». Si, la tabla se llama igual que la base de datos, que no os confunda esto…
Pero aún no hemos realizado la consulta, ahora debemos utilizar la función mysqli_query() de la siguiente forma:
Como hemos venido haciendo, vamos a añadir un poco más de código a lo anterior para que nos muestre un mensaje de error si algo a ido mal:
$resultado = mysqli_query( $conexion, $consulta ) or die ( "Algo ha ido mal en la consulta a la base de datos");
Si ejecutamos el código que tenemos hasta ahora todo funciona bien pero vamos a terminar mostrando los datos porque si no lo vemos no nos lo creemos, verdad?
Mostrar los datos de la consulta a la base de datos
Para mostrar los datos de la consulta que hemos realizado lo vamos a hacer muy sencillo pero os animo a que probéis más con este asunto porque es muy interesante y entretenido.
Como lo vamos a mostrar en formato de tabla, en primer lugar creamos la parte de creación de la tabla y el encabezado del mismo:
Si eres un programador, desarrollador web o simplemente tienes algunas páginas webs realizadas con algún gestor de contenidos (cms) como WordPress, Joomla, Drupal, Magento, etc… seguro que te interesa saber que pasa con PHP 7 y que novedades y cambios trae consigo.
Yo he realizado algunas pruebas durante estos últimos días para comprobar de primera mano los cambios y novedades que se comentan en la comunidad de php.
Seguro que hay más cosas pero voy a intentar comentar unas pocas para que te hagas una idea.
¿Qué pasa con PHP 6? ¿Dónde está?
Si eres programador PHP seguro que sabrás que PHP 6 ya existía. Si, como una versión o proyecto experimental pero que nunca se llegó a poner en producción. Tampoco es que me preocupe mucho este asunto pero bueno, ahí queda como curiosidad.
El caso es que al existir PHP 6 como proyecto experimental, no se ha querido que la nueva versión de PHP produjera confusiones entre la comunidad de programadores y es por eso que tras la versión 5.6 se ha decidido pasar directamente a PHP 7.
Esto no hay que tomárselo de ninguna forma porque no aporta más. Es más, creo que incluso estoy de acuerdo con la decisión que se ha tomado.
Dos veces más rápido
Esto siempre nos gusta a todos, ¿A que si? Bueno, es lo que yo supongo porque a mi estas cosas me gustan mucho, claro que si y por eso asumo que a todos los programadores y programadoras nos gusta que nuestros programas carguen más rápido.
Pues si, el equipo de desarrollo de PHPNG ha optimizado el uso de memoria añadiendo compilación just-in-tim (JIT) lo que permite la compilación en tiempo de ejecución en lugar de antes de ejecución.
Es más, utilizando PHP 7 no solo el código se ejecutar más rápido sino que además necesitaremos menos servidores para servir a la misma cantidad de usuarios.
En resumen, el doble de peticiones por segundo!! Nada más y nada menos!
Mejora en el manejo de errores
En PHP nunca ha sido fácil el manejo de errores pero con el nuevo EngineException podremos sustituir los errores fatales por excepciones. De todas formas sin no se detecta la excepción, seguirá devolviendo los acostumbrados errores fatales como hasta ahora.
Para manejar o atrapar los errores, PHP 7 introduce una nueva clase parent. Esta clase es BaseException.
Sin duda una buena noticia para los programadores.
Soporte para sistemas Windows 64 bits
Hasta ahora, la versión actual de PHP no soporta números enteros de 64 bits y tampoco archivos grandes.
Esto se soluciona con PHP 7 ya que introduce soporte para versiones Windows de 64 bits. De esta forma se podrá ejecutar PHP en sistemas operativos Windows con más seguridad.
Claro que no es mi caso, al menos por ahora ya que siempre trabajo sobre entornos basados en linux. Pero bueno, ahí queda eso y siempre está bien este tipo de mejoras.
Nuevo operador de comparación combinada <=>
Interesante aporte. Este operador que ya existía en algunos lenguajes de programación, por fin está disponible en PHP 7.
¿Cómo funciona? Pues básicamente devolverá 0 si los dos operandos son iguales. 1 si el de la izquierda (antecedente) es mayor y -1 si es mayor el de la derecha.
Lo utilizaremos cuando queramos comprobar si existe algo y devolver un valor por defecto en el caso de que no sea cierto.
Devuelve el resultado del primer operando si existe y no es nulo. Devolverá el segundo operando en cualquier otro caso.
Declaraciones precisas
Ahora disponemos de nuevos tipos para controlar el envío de datos a una función. Estos tipos son: int, bool, float y string.
Lo que quiere decir que podremos validar si el parámetro es un número entero, un booleano, un número decimal o una cadena.
Clases anónimas
Con PHP 7 podremos crear clases anónimas. Qué es esto? Pues no es otra cosa que podremos crear clases sin nombre, definidas en la misma línea de código donde creamos el objeto de la clase.
Esta característica ya existía en lenguajes como C# y Java.
En cuanto a la sintaxis es igual que las clases habituales de PHP lo que pasa es que no escribimos el nombre.
La buena utilización de las clases anónimas puede mejorar el tiempo de ejecución del proyecto web.
var_dump(new class($i) {
public function __construct($i) {
$this->i = $i;
}
});
Un poco de limpieza
PHP 7 ha liberado espacio para permitir la mejora del rendimiento y para esto se ha deshecho de algunas funcionalidades que ya no se utilizaban y algunas APIs antiguas no estaban obsoletas y no eran compatibles con la mayoría de servidores.
Seguramente todo lo que se ha eliminado no lo usabas pero de todas formas hay que tener especial cuidado si actualizamos a PHP 7 desde una versión muy antigua de PHP.
Y muchos más cambios que nos harán la vida del programador más llevadera o eso espero yo por mi parte.
De todas formas, vamos a ver qué tal se porta a partir de ahora.
Soporte de CMSs
Drupal 8 soporta PHP 7.
Drupal 7 soporta PHP 7.
WordPress 4.3.1 soporta PHP 7.
Joomla 3.4.5 soporta PHP 7.
Joomla 3.5 soporta PHP 7.
Y para terminar este post comentar que he visto por la web en algún sitio que la mejora de rendimiento de WordPress con PHP 7 es del 129%. Impresionante!!
Bueno, como yo soy un poco segurolas, esto habrá que verlo y experimientarlo.
Espero que este post os haya sido de ayuda u os haya aclarado algunas dudas sobre la nueva versión de PHP.
Sin duda una de las cosas más interesantes de WordPress, o por lo menos lo es para mi, es la opción de poder crear Plugins propios que añadan o modifiquen la funcionalidad de WordPress a nuestro gusto.
Seguro que te ha pasado más de una vez que has buscado un plugin que haga exactamente lo que quieres pero no se ajusta totalmente a vuestras necesidades, ¿verdad? Para estos casos viene bien conocer el funcionamiento del desarrollo de plugins porque podríamos hacer ligeras modificaciones para que se ajuste a nuestras necesidades.
Esto ya es menos probable pero es posible. Me refiero a que has buscado un plugin que haga algo en concreto y no lo has encontrado ni siquiera nada parecido. Pues bien, en estos casos es en los que sería buena idea crear un nuevo plugin para esto que no encontramos.
Este será el primero de varios tutoriales dedicados al desarrollo de plugins para Wodpress y como no podía ser de otra manera, he pensado que lo mejor es empezar por el principio e ir poco a poco.
Si estás aquí doy por sentado que tienes algunos conocimientos sobre esto, somo por ejemplo qué es un plugin. Además, supongo que tendrás algunos conocimientos sobre php, html y css. No se requieren muchos conocimiento pero algo básico si que te lo aconsejo.
En este primer tutorial sobre desarrollo de plugins wordpress voy a comentar la estructura y lo necesario para crear plugins.
1-. Estructura de directorios.
Los plugins, como ya sabrás, están ubicados en el directorio /wp-content/plugins de la instalación de WordPress.
Es posible crear un plugin que sea sólo un fichero pero lo más recomendado es crear un directorio o carpeta para cada uno. Este directorio tendrá por nombre el del plugin.
Debemos tener en cuenta que el nombre del plugin que vamos a crear debe ser descriptivo, es decir indique lo que hace el plugin. Además, debe ser exclusivo y coincidir con ningún otro del repositorio de WordPress. En el caso que nos ocupa no hace falta porque es sólo un ejemplo.
Dentro de este directorio que podríamos llamar para este ejemplo: «mi-primer-plugin«, debe tener dentro un fichero con el mismo nombre que la carpeta y con extensión .php.
/wp-content
/plugins
/mi-primer-plugin
mi-primer-plugin.php
En la estructura anterior sólo hemos indicado lo necesario e imprescindible para crear un plugin pero a continuación pongo algo más extendido y que seguramente será lo más normal a partir de ahora:
/mi-primer-plugin
mi-primer-plugin.php
uninstall.php
/js (directorio para archivos javascript)
/css (directorio para archivos css)
/includes (directorio para archivos php adicionales)
/images (directorio para imágenes)
Bien, una vez comentado lo anterior, vamos a editar el fichero «mi-primer-plugin.php» para que por lo menos aparezca en las sección de plugins del panel de administración de WordPress.
Como decía, editamos el fichero «mi-primer-plugin» y de momento incluiremos lo siguiente:
<?php
/*
Plugin Name: Mi primer plugin
Plugin URI: https://oscarabadfolgueira.com
Description: Plugin de ejemplo para saber cómo crear un plugin
Version: 1.0
Author: Oscar Abad Folgueira
Author URI: https://oscarabadfolgueira.com
License: GPLv2+
*/
Creo que es bastante visual pero aún así te comento que:
<?php –> Abrimos para incluir código php.
/* … */ –> Comentamos toda la cabecera de información de plugin.
Plugin Name: -> Nombre del plugin.
Plugin URI: –> Dirección web del plugin.
Description: –> Descripción de lo que hace el plugin.
Version: –> Versión del plugin.
Author: –> Autor del plugin. Tú mismo.
Author URI: –> Web del autor.
License: –> Tipo de licencia.
Pues bien, con esto ya tendríamos nuestro plugin creado. Ya, que todavía no hace nada, ya lo se, pero es simplemente para que veas que con sólo lo que acabamos de hacer, lo guardamos, lo subimos a nuestro WordPress en el lugar que le corresponde y ya podremos ver algo parecido en la sección de Plugins del Backend de WordPress:
Interesante cuanto menos, ¿verdad? Pues esto es sólo el principio.
Ahora lo podemos activar:
Si, ya se que no hace nada pero es para que veamos, sin mas…
Para terminar este post de introducción a la creación de plugins para WordPress solo comentar que también está bien visto incluir el texto de la licencia o un enlace a la misma.
Bueno a partir de ahora iré publicando tutoriales más interesantes y, por supuesto, que hagan algo.
Este sitio web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando regresas a esta web, ayudar a nuestro equipo a comprender qué secciones del sitio web te resultan más interesantes y útiles y ofrecerte publicidad a tu medida.
Cookies estrictamente necesarias
Las cookies estrictamente necesarias deben estar habilitadas en todo momento para que podamos guardar tus preferencias para la configuración de cookies.
Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar cookies de nuevo
Cookies de terceros
Este sitio web utiliza Google Analytics para recopilar información anónima, como la cantidad de visitantes al sitio y las páginas más populares.
Mantener estas cookies habilitadas nos ayuda a mejorar nuestro sitio web.
Por favor, primero habilita las cookies estrictamente necesarias para que podamos guardar tus prefencias.