Desarrollo del desarrollo avanzado: Introducción a la programación orientada a objetos

¿Quieres llevar tu juego de WordPress a un nuevo nivel de dominio completo? ¿Estás listo para impulsar realmente tus habilidades de PHP y agregar aún más complejidad y funcionalidad avanzada a tus complementos y temas? Bienvenido a nuestra última serie, Advanced WordPress Development. Esta serie sigue de acuerdo con nuestro popular desarrollo de WordPress para usuarios intermedios, que le han presentado algunos temas de codificación, incluido el desarrollo de temas en detalle, la preparación de temas, la creación de complementos, tipos de publicaciones personalizadas y taxonomías, consultas y bucles, campos personalizados y de metadatos. ubicación.
En esta serie de seis semanas, está en un desafío aún más difícil, pero que le dará todo el derecho de llamarse a sí mismo un desarrollador de WordPress con plenos derechos cuando haya terminado. Aprenderás:
Técnicas de programación orientadas a PHP,
Cómo escribir complementos orientados a objetos,
Trabajando con transitorios,
Uso de la línea de comando para mejorar su flujo de trabajo de desarrollo,
Uso de Gulp para compilar JavaScript y Sass y
Automatización de WordPress con WP-CLI.
Nota: Es importante tener un conocimiento práctico sobre PHP, ya que este es el lenguaje básico de WordPress para esta serie, que cubre temas avanzados para los desarrolladores. Me referiré a los fragmentos de código en esta serie.
Antes de comenzar este curso, supone que ha codificado para WordPress y tiene una comprensión básica de cómo funcionan los temas y los complementos. Si no ha desarrollado para WordPress o si desea una actualización hasta ahora, le recomiendo leer el desarrollo de WordPress para usuarios intermedios, lo que le dará todo lo que necesita saber antes de comenzar esta serie. También necesitará acceso a algunas cosas para poder rastrear y trabajar conmigo. Estos son: una instalación de desarrollo de WordPress. Te recomiendo que trabajes en tu coche local
Un editor de código con acceso FTP si trabaja de forma remota (lo que hará al final)
Si el editor de códigos no tiene acceso FTP, un cliente de FTP
Deliberadamente, no le he ofrecido enlaces para ayudarlo a encontrar todas estas cosas; supongo que ya está en el nivel que conoce sobre este tipo de cosas y puede encontrarlas usted mismo.
Lo que cubriremos en este tutorial en este primer tutorial, nos moveremos directamente a la programación orientada al objeto y cómo se aplica al desarrollo de WordPress. Este tutorial se basará en lo que ha aprendido si ha completado nuestro desarrollo de WordPress para usuarios intermedios. La programación orientada a objetos no es en realidad algo que necesite saber como desarrollador de WordPress, pero descubrí que la calidad de mi código ha aumentado dramáticamente una vez que comencé a pensar con OOP en mente. Además, pude aprender otros idiomas mucho más fáciles, porque los objetos y las clases, la base de OOP, son predominantes en la mayoría de los lenguajes de programación.
Por lo tanto, eche un vistazo a los elementos básicos de la caca, para que pueda comprender lo que sucede en construcciones de WordPress más complejas y comenzar a escribir mejores complementos y temas. ¿Qué es la programación orientada a objetos? La programación orientada a objetos, u OOP, es más una mentalidad que una forma específica de codificación. Estrictamente hablando, significa que usa cosas avanzadas como objetos, clases, interfaces, etc. En mi opinión, también significa pensar de una manera más estructurada, encapsulando el código de una manera que facilita la reutilización más tarde. En la superficie, los objetos se parecen a las funciones. Cuando ve por primera vez, aprende que son una forma de agrupar el código asociado para crear funcionalidad reutilizable. ¿Por qué escribir un código que genera un extracto cada vez que es necesario cuando solo puede llamar a una función, verdad? Las clases y objetos siguen la misma mentalidad. Siempre que tenga que mostrar una publicación, probablemente desee mostrar el título, el contenido y el uso de funciones, como el Generador de Fragmentos y un Creador de enlaces más grande. Puede agrupar funciones relacionadas en una clase, creando una estructura lógica que se refiere a un artículo en particular, como una publicación de blog.
No se preocupe si todo esto no está claro por el momento. Analizaremos muchos ejemplos en este tutorial para ayudar a poner las cosas en su lugar. ¿Por qué usar OOP? El código orientado a objetos es a menudo un buen código que no. Encapsula grupos de código lógico, ofreciendo una base de código más limpia y legible. Entre otras cosas, proporcionan los siguientes beneficios:
El código es más fácil de seguir,
La extensión del código es mucho más fácil y simple, los nombres de las funciones no deben ser largas, y las funciones dentro de las clases no chocan con las funciones fuera de las clases,
Documentos de caca bien escritos en sí mismo y
Se puede obtener un mayor grado de reutilización.
Aprendiendo, por ejemplo, creo que sería mejor comenzar desde el principio con un ejemplo que comienza como un código de procedimiento y progresa en el código orientado a objetos.
Supongamos que construimos algo como Twitter (¡no para apuntar demasiado o nada!) En el que tenemos que limitar el número de personajes y convertir ciertas cuerdas en enlaces. En el siguiente ejemplo, creo algunas funciones que nuestro pequeño proyecto puede usar:
La idea se carga 125AAC6213F3BB67EF9510FB8978F597
La función get_chirp_text () se transmite como texto y simplemente la interrumpe después de 200 caracteres. La función get_hashtags () usa algunos get_hashtags () fantasioso regex para hacerse cargo de todas las cadenas que comienzan con un signo hash. Create_chirp () utiliza funciones anteriores y emite un “chirp” que se reduce a 200 caracteres y tiene hashtags transformados en enlaces.
Nuestro ejemplo de texto chirp en acción.
Hasta aquí todo bien. Nuestro servicio Chirp está activo y funciona, pero hay algunos problemas potenciales con nuestro código. ¿Qué sucede si ofrecemos planes de monetización para nuestro servicio, lo que le permitiría usar 300 o 500 caracteres? ¿Qué pasa si queremos cambiar nuestra URL de hashtag? ¿Qué pasa si queremos enumerar los hashtags en un chirrido? Ninguno de estos problemas no tiene restricciones, pero introduciría la complejidad del código, lo que sería más obvio si tuviéramos el código para administrar a los usuarios, visualizar, acciones de canto, flujos y más. Así que encapsulemos toda nuestra funcionalidad de tweet Chirp en un código orientado a objetos. Comenzaré con el código completo y explicaré a continuación:
La idea se carga 125AAC6213F3BB67EF9510FB8978F597

¡Muchas cosas para explicar aquí, pero las dividiré en pedazos pequeños y verá lo genial que es! Explicaré el ejemplo y en la siguiente parte veremos las definiciones técnicas de los componentes. Justo en la parte superior, ves que creamos una clase llamada “Chirp”. Se incluye alrededor de una serie de variables y funciones. Las variables describen algunas propiedades importantes de los objetos que se crearán con esta clase.
$ Text contiene un texto original que queremos convertir en un chirp
$ La longitud tiene una longitud de $ permitido de chirring
$ hashtag_base contiene la URL básica del enlace hashtag
$ hashtags tiene el mapa de hashtag
$ Chirp posee el HTML final para Chirp
Saltemos sobre la función __construct () por el momento y centremos en set_length (). Todo lo que hace esta función es asignar 200 a $ this-> Legth. ¿Qué es $ esto, escuché que te preguntas? Es una palabra clave especial que indica una variable o función dentro de la clase. Cuando establezcamos el valor de la longitud de la longitud con $ this-> longitud, podremos recordar el valor de cualquier función en la clase que se ejecute más adelante. El resultado: no tenemos que pasar todo con parámetros. El siguiente es set_hashtags (). La funcionalidad es similar, pero recibe el texto del texto $ this-> que se establecerá como un constructor, más sobre esto más adelante. He cambiado ligeramente la matriz que produce para contener el hash como claves y el enlace completo como valores, esto facilitará el texto. Los hashtags se establecen de manera similar a la longitud de la función. Finalmente, la función set_chirp () usa $ this-> text y $ this-> longitud para reducir el texto y $ this-> hashtags para reemplazar las cadenas de caracteres con enlaces. Finalmente, atribuye el HTML que resulta en $ this-> chirp. En la parte inferior, uso la clase para crear un objeto almacenado en la variable $ chirp. Pasé un solo parámetro a la clase. Cuando se crea un objeto (o, en otras palabras, instantándose) en una clase, la función de construcción (__construct ()) dentro de la clase se ejecuta primero. Mirando __construct () puede ver cómo se transmite el parámetro a la clase. Entonces haz una serie de cosas:
Establece el valor directamente $ this-> hashtag_base.
Establece directamente el valor de $ this-> text.
Use una función llamada set_length () para establecer la longitud. Tenga en cuenta que debido a que esta función está en el aula, nos referimos a $ esto crea el código HTML final usando la función set_chirp ().
Entonces, inmediatamente después de crear nuestro objeto, podemos hacer eco de una propiedad dentro del objeto. Sabemos que el HTML final se almacena en una propiedad $ Chirp, a la que podemos acceder usando $ chirp-> chirp. Si no entendiste todo este 100%, ¡no te preocupes! Es una buena idea leer las definiciones técnicas de los elementos que utilizamos a continuación y luego regresar y leer esta sección. Elementos de clases y objetos En esta sección, haremos un poco de regreso, adoptaremos un enfoque más fácil y analizaremos los componentes de los objetos y clases. La diferencia entre objetos y clases es que las clases son planes sobre la base de qué objetos se crean. Las clases se definen utilizando la clase de palabras clave seguida del nombre de nuestra clase y aparatos contenedores que contienen el código de clase.

La idea se carga 125AAC6213F3BB67EF9510FB8978F597
Las clases pueden contener dos cosas, variables y funciones, pero dentro de las clases nos referimos a ellas como propiedades y métodos, ¡vaya! Esto es prácticamente todo lo que es una clase, una colección de propiedades y métodos. Para usar una propiedad y un método dentro de una clase, deberá consultarla utilizando la palabra clave $ this, por ejemplo: $ this-> get_chirp (). Para acceder a un método o propiedad fuera de la clase, deberá consultarlo utilizando el nombre de la clase, por ejemplo: $ objeto-> get_chirp (). Las clases pueden contener una serie de funciones especiales. Tal función es __construct () que se ejecuta tan pronto como se crea un objeto a partir de una clase. Se puede crear cualquier número de objetos a partir de una clase. Se cobra la idea 125AAC6213F3BB67EF9510FB8978F597
En vista de toda esta información, le sugiero que vuelva al ejemplo anterior y lo lea, luego continúe con la sección a continuación. El uso correcto de los objetos debe haber colocado comillas alrededor de la palabra “correcto”, porque no hay una sola forma de usar los objetos correctamente. Depende mucho de lo que hagas. Permítame pasar por algunos puntos de interés en nuestro ejemplo anterior. Especificando la longitud tenemos un método separado para establecer la longitud, pero todo lo que hace esto es establecerlo en 200, pase lo que pase. ¿Es esto redundante? ¿Por qué no codifica 200 en la función Sub () set_chirp ()?
La razón es pensar antes. No debe ser la tarea set_chirp () para realizar la longitud. Podemos decidir reducir a 160, para ofrecer diferentes longitudes dependiendo de la membresía o cuánto tiempo sea miembro. Si separamos el código para definir la longitud en un método separado, podemos cambiar la lógica interna de la longitud sin afectar otras partes de nuestro código. Los métodos de métodos de setter que establecen el valor de una propiedad a menudo se denominan funciones setter. Tenga en cuenta que establecemos algunas propiedades directamente en el constructor, pero para algunos usé un setter. Mi lógica aquí fue que si puedo establecer algo sin tener que realizar una operación en él, solo lo haré en el constructor. Si tengo que hacer algunos cálculos, como con hashtags, o sé que tendré algo lógico allí pronto, como longitud, usaré un setter. Recibir el pequeño problema con esta clase es que generamos el CYRP, lo colocamos propiedad de $ chirp y luego nos referimos a esa propiedad. Esto hace que la clase sea un poco inútil una vez que se ha creado el chirp. Una mejor solución podría ser eliminar set_chirp () del fabricante, renombrarlo en get_chirp () y usar esta función para hacerse cargo del chirp. Cargue la idea 125AC6213F3BB67EF9510FB8978F597
Esto será útil la identificación que queremos realizar operaciones en el chirrido antes y/o después de crearlas. Trabajar con objetos La capacidad de referirse a propiedades y métodos dentro de las clases nos da muchas estrategias para trabajar con clases. Si renunciamos a la mayoría del constructor en nuestro ejemplo inicial, podríamos realizar las operaciones necesarias fuera de la clase. Echar un vistazo:
La idea está cargada 125AAC6213F3BB67EF9510FB8978F597 DIFIERE AQUÍ es que el constructor no se ocupa de los hashs, lo que significa que la propiedad $ this-> hashtags no siempre estará disponible. Tomé esto en cuenta en la función get_chirp (). El resultado es que podemos construir un chirrido de dos maneras:
La idea se carga 125AAC6213F3BB67EF9510FB8978F597
Es genial porque tenemos más control, ¿verdad? Una especie de. Está en el camino correcto, pero hay un problema de inconsistencia. Nunca puede estar seguro de lo que sucederá cuando invoque get_chirp () -may o puede no tener enlaces de hashtag. Este es un ejemplo de cómo el uso de OOP (o solo PHP ordinario) puede conducir a problemas más adelante. Una mejor manera de hacerlo es crear dos funciones, una que siempre mostrará la garra con enlaces, una que siempre la mostrará sin enlaces. Un ejemplo de WordPress, un ejemplo grande y bien documentado de WordPress es WP_QUEY. Si lo usó antes sin conocimiento, esperamos que sea mucho más claro ahora. Supongamos que crea una página especial de WordPress, que contendrá ocho de las últimas publicaciones y tres de las futuras reseñas de libros. Puede crear dos objetos usando la misma clase WP_Query de la siguiente manera:
La idea se carga 125AAC6213F3BB67EF9510FB8978F597
Con respecto a la documentación, podemos ver que hay una serie de propiedades ofrecidas por esta clase, como $ FUND_POSTS. Sabemos cómo referirnos a estas propiedades ahora:
La idea se carga 125AAC6213F3BB67EF9510FB8978F597
Una nota sobre los cursos, la parte más difícil de los objetos y clases es no usarlos, sino usarlos correctamente. En el peor de los casos, no proporcionarán ningún beneficio de la programación de procedimientos, en el mejor de los casos, le darán la estructura y la extensibilidad del código. Hay mucho más en los cursos de lo que aprendí aquí, estos son solo los elementos básicos que necesita para leer el código usando OOP. El secreto del uso correcto de las clases, como en el caso de cualquier otro código, es una gran práctica. Le insto a que comience a escribir un código orientado al objeto. Cuando comencé a aprender sobre todo esto, parecían completamente superfluos; No ofreció ningún beneficio aparente. La razón fue la siguiente: no ofreció ningún beneficio. Una vez que comencé a aprender algo caca de WordPress a través de algunas clases, Laravel y otros proyectos, me volví lo suficientemente competente como para escribir un código verdaderamente modular y una autodescripción en el PHP. El control del desarrollo de WordPress hasta ahora solo he arañado la superficie de lo que es posible. Como mencioné anteriormente en el tutorial, hay mucho más de lo que traté aquí y te animo a que aprendas más, practicar, a cometer errores y nunca rendirte. Aquí hay algunos recursos excelentes que vale la pena verificar antes de comenzar el siguiente tutorial de esta serie: PHP orientado a PHP – Tuts+
Métodos mágicos – PHP
OOP para principiantes – WPMU Dev
Herencia-php5-tatorial.com
En el próximo tutorial de esta serie, pondremos en práctica lo que ha aprendido hasta ahora y comenzaremos a escribir complementos orientados a objetos.
¿Y este tutorial parecía útil?¿Por qué quieres aprender el desarrollo de WordPress?¿De qué quieres saber más?Háganos saber en los comentarios a continuación.
código
desarrollo

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *