A medida que continuamos nuestra discusión sobre la programación orientada a objetos en el contexto de WordPress, es hora de que comencemos a hablar sobre las características reales de la programación orientada a objetos..
Aunque ya hemos cubierto las clases, necesitamos explorar algunas construcciones de programación fundamentales antes de regresar a algunos de los conceptos centrales orientados a objetos..
En este artículo, vamos a comenzar a hablar sobre funciones y atributos: dos aspectos fundamentales de la programación orientada a objetos. Pero primero, asegúrese de que todos estén al día con los artículos anteriores:
Uno de los puntos que me gustaría reiterar sobre esta serie es que estamos trabajando en examinar la programación orientada a objetos en el contexto de WordPress a partir de los aspectos fundamentales absolutos de la programación..
Estamos haciendo esto para asegurarnos de que aquellos que son principiantes en la programación tienen todo lo que necesitan no solo para comenzar con la programación, sino también para aprender el paradigma y, finalmente, trabajar en la creación de un complemento de WordPress..
Dicho esto, resumamos nuestra discusión hablando de funciones y atributos.
Para aquellos que están familiarizados con la programación de procedimientos, entonces, sin duda, están familiarizados con las funciones. Después de todo, son la forma en que realiza el trabajo.?
Pero para aquellos que simplemente están saltando en la programación, hay dos cosas que entender acerca de las funciones:
Para el segundo punto, es cierto que gran parte de lo que discutimos anteriormente, es decir, variables, condicionales, bucles, etc., también son responsables de completar un trabajo de una sola unidad; sin embargo, cada uno de ellos trabaja en conjunto para lograr algo ligeramente mayor que ellos mismos.
Dependiendo del idioma, también es probable que escuche que se hace referencia a ellos como métodos o rutinas. Independientemente de la terminología utilizada, el punto es que las funciones usan construcciones fundamentales para completar una acción.
Las funciones pueden funcionar de tres maneras, también:
Examinaremos cada uno de estos escenarios con más detalle en un momento, y en un artículo futuro veremos cómo funcionan dentro de la clase. Por ahora, veamos cómo funcionan las funciones dentro de PHP y varios matices sobre cada una de ellas.
Recuerde en la sección anterior que hay veces en que podemos definir funciones que no aceptan ninguna entrada ni devuelven ninguna información.
En este caso, estos tipos de funciones generalmente realizarán algún tipo de operación (como actualizar una opción en la base de datos) y serán invocadas por otra función después de que una operación determinada haya finalizado..
Entonces, por ejemplo, digamos que tenemos una función que queremos usar para actualizar la base de datos de WordPress subyacente. Esto requiere que sepamos varias cosas:
update_option
En nuestro caso, digamos que queremos actualizar un valor en la base de datos identificada por el blog_last_updated
llave. Entonces, usaremos la función PHP hora()
para almacenar el tiempo cuando se llama la función.
Dicho esto, definamos nuestra función:
En función de la descripción que hemos proporcionado anteriormente, puede ver que el cuerpo de la función utiliza la
update_option
Función de la API de WordPress con la clave y el valor especificados que describimos.Esto puede ser invocado por otra pieza de código simplemente llamando
set_blog_updated ();
.Argumentos
Las funciones que no aceptan argumentos solo pueden ser útiles hasta cierto nivel. En algún momento, debe poder pasar información a una función para que pueda realizar algún tipo de cálculo, operación o evaluación en la información..
Siguiendo con nuestro ejemplo anterior, digamos que todavía queremos actualizar la base de datos con una marca de tiempo, pero solo si se pasa una cierta clave a la función; de lo contrario, no haremos nada.
Observe que la firma de la función, es decir, el nombre de la función y los datos entre paréntesis, se ha actualizado para aceptar una variable referenciada por
$ clave
.A continuación, la función utiliza un condicional para verificar que el valor de la variable sea igual al de la clave que estábamos viendo en la primera versión de la función. Con el fin de hacer una comparación fácil, baja el valor de
$ clave
mediante el uso de PHPstrtolower
función.Esto significa que podemos invocar la función de la siguiente manera y todavía tenerlo actualizado:
set_blog_updated ('BLOG_LAST_UPDATED');
set_blog_updated ('Blog_Last_Updated');
set_blog_updated ('blog_last_updated');
Todas las llamadas de función anteriores realizarán la siguiente operación; sin embargo, si tuviéramos que pasar algo más a la función, el condicional evaluaría a falso
y lo haría no disparar la función de actualización.
Por ejemplo, llamando set_blog_updated ('not_now');
haría no trabajo.
Ahora, digamos que queremos que la función con la que estamos trabajando devuelva un valor. Específicamente, digamos que queríamos devolver un valor sobre si la función de actualización se activó con éxito o no.
Para ello, podemos aprovechar una función de regreso
declaración, así como el valor que la función update_option devuelve. Según el códice de WordPress, update_option
devolverá lo siguiente:
Verdadero si el valor de la opción ha cambiado, falso si no, o si la actualización falló.
Para ese fin, podemos ajustar nuestra función para que funcione de esta manera:
Ahora tenemos una función que acepta un argumento, devuelve un valor y también aprovecha un condicional no solo para actualizar el valor, sino también para asegurarse de que el valor se haya actualizado correctamente..
Dada la función anterior, podemos invocarla como lo hemos hecho en ejemplos anteriores, pero ahora podemos almacenar su resultado en una variable que nos permitirá mejorar aún más el código en nuestro programa.
Por ejemplo, podemos continuar llamando a la función diciendo
set_blog_last_updated ('blog_last_updated');
Pero ahora también podemos almacenar el resultado de la función en una variable..Para hacer esto, todo lo que tenemos que hacer es escribir una línea de código que realice lo siguiente:
$ blog_was_updated = set_blog_last_updated ('blog_last_updated');
En este caso, la variable.$ blog_was_updated
se establecerá encierto
si la condición se ejecutó y la llamada de actualización fue exitosa, pero seráfalso
Si la condición no se ejecutó o si se ejecutó pero elupdate_function
ha fallado.Argumentos de longitud variable
Hay otro aspecto de las funciones que está más allá del alcance de este artículo en particular y son los argumentos de longitud variable. En resumen, hay una forma en que una función puede aceptar una serie de argumentos que no podemos anticipar al escribir código.
Si está interesado en leer por adelantado, puede consultar el artículo en el manual de PHP; Sin embargo, buscaremos cubrir esto más adelante en la serie..
Atributos
En este punto, vamos a cambiar de marcha y hablar sobre algo que está puramente relacionado con la programación orientada a objetos y eso es atributos de clase.
Recordemos de nuestra discusión sobre las clases que observamos una clase de muestra para una
Entrada en el blog
. Para referencia, el código se veía así:clase Blog_Post private $ author; privado $ publish_date; privado $ es_publicado; función pública publish () // Publicar el artículo aquí public function delete () // Eliminar el artículo aquíEn este punto de la serie, debería poder identificar fácilmente la definición de clase, la definición de función y los atributos.
Específicamente, los atributos son las tres variables que existen en la parte superior del archivo sobre las funciones. Como se indica en el artículo sobre las clases, los atributos pueden considerarse como los adjetivos que describen la clase..
En el ejemplo anterior, tenemos una clase que representa una publicación de blog, y una publicación de blog puede ser descrita por su autor, su fecha de publicación y si se ha publicado o no..
Estos valores particulares no son más que variables, como hemos visto anteriormente en la serie, y pueden contener cualquier tipo de valor, ya sea un tipo de datos primitivos como una cadena, entero, booleano o puede hacer referencia a un tipo de datos más complejo como como una matriz u otro objeto.
El punto de los atributos es que existen en el nivel de clase. Esto significa que las variables se pueden usar en cualquiera de las funciones definidas en la clase; no tienen que pasarse como argumentos de función, y pueden actualizarse para reflejar el estado del objeto en cualquier momento durante su tiempo de ejecución.
Ahora, en términos de cómo están configurados, esto se hace dentro del contexto de un tipo especial de función llamado constructor. En resumen, un constructor es una función que se reserva específicamente para inicializar una clase y, en muchos casos, se utiliza para iniciar valores..
En PHP, un constructor es una función que se llama
__construir
que es una palabra reservada en el idioma Por lo tanto, dados los atributos anteriores y nuestro manual sobre funciones, aquí se explica cómo podríamos inicializar nuestros atributos:clase Blog_Post private $ author; privado $ publish_date; privado $ es_publicado; función pública __construct () $ this-> author = "; $ this-> publish_date = null; $ this-> is_published = false; public function publish () // Publique el artículo aquí public function delete () // Eliminar el artículo aquíUna de las cosas más importantes que debe quitarse del código anterior es que los atributos son referencias ligeramente diferentes a las variables normales. Específicamente, observe que están referenciados usando el
$ esto
palabra clave. Esto es lo que diferencia los atributos de las variables normales dentro de una definición de clase..En segundo lugar, tenga en cuenta que las variables que se configuran a los valores iniciales. Tal como está ahora, cada publicación de blog que se creará no tener un autor que se especifica, lo hará no tener una fecha de publicación, y será no tener un estado de ser publicado.
A medida que nos adentramos en el tema de la programación orientada a objetos, hablaremos sobre cómo se establecen las variables, cómo se pueden usar en toda la clase, cómo se pueden configurar, recuperar, etc..
Público, privado y qué?
Para esos lectores astutos, es probable que haya notado que las palabras clave se utilizan en todo el código, como
público
yprivado
. También hay otra palabra clave que se usa dentro de la programación orientada a objetos y eso esprotegido
.Hablaremos de cada uno de estos en detalle en el siguiente artículo..
A continuación
Como acabamos de mencionar, hay una serie de palabras clave que se usan para referirse a atributos y funciones que tienen que ver con lo que se conoce como alcance. En el próximo artículo, vamos a comenzar a explorar el alcance de las funciones y las variables, que es una idea central en la programación orientada a objetos..
Entonces, como hemos cubierto todos los elementos fundamentales de la programación en PHP, ahora nos estamos preparando para avanzar más hacia la programación orientada a objetos, y luego seguiremos aplicando los conceptos y técnicas en el desarrollo de WordPress..