InformáticaProgramación

Construción de PHP: creación de instancias de clases

A idea de programación orientada a obxectos é moito máis ampla que as capacidades de PHP debido ás súas especificidades, pero ata na implementación existente dá ao programador posibilidades ilimitadas. A construción de PHP é un método especial dunha clase (obxecto) que se chama cada vez que se instanciou unha instancia da clase.

A limitación é que PHP funciona no momento da formación da páxina. No momento en que se actualiza a páxina ou se carga outra páxina do mesmo sitio, o sistema necesario de obxectos formúlase de novo a partir de cero.

Creando unha instancia dunha clase

Non se require unha descrición de clase para ter un constructor. Se precisa preparar os valores iniciais das variables, coller o instante de instanciación da clase (obxecto), realizar certas accións noutros obxectos, entón non pode usar a sintaxe de construción da clase PHP e escribir o código apropiado fóra dos métodos da clase.

Segundo a lóxica do estilo de programación orientada a obxectos, cada clase debe ter un constructor, ademais, é necesario iniciar a árbore de clase desde o ancestro máis abstracto (absolutamente baleiro). É unha reliquia do pasado e non unha práctica sensata.

Cando o pedigree comeza cunha clase significativa que ten os seus propios datos e propiedades asociados con datos externos (obxectos), non se pode prescindir de rutinas de funcións PHP.

Neste exemplo, cando se crea (construción de PHP) unha instancia da clase de data, chámase esta función (o constructor). Ten un nome específico __construír e é chamado polo autómata só unha vez, cando se crea unha instancia da clase.

Esta clase fornece unha variable estática $ iUniqueNo, que en cada nova instancia desta clase terá un valor único. As instancias de clases non teñen nada en común excepto as descricións dentro da sintaxe de PHP e a interacción desexada do programador dos seus métodos.

Herdanza de lóxica de inicialización

Cada obxecto debe realizar o seu propósito, ter o que necesita e facer o que debería. Desde un punto de vista tan razoable, a inicialización en cada nivel do pedigree pode incluír a inicialización en cada antepasado chamado desde o nivel descendente.

Neste exemplo, a palabra clave parent :: permite chamar ao constructor do pai desde o nivel do descendente. A semántica é simple. En primeiro lugar, o devanceiro debe executar a inicialización, entón a instancia actual. O primeiro segue a súa lóxica, o segundo - o seu.

Cando cada obxecto se implica no seu propio negocio, o proceso xeral parece correcto e comprensible. Pero esta regra non debería considerarse a norma para todos os sistemas de obxectos.

O pedigree do sistema alimentario na primeira aproximación pode ter algo en común, pero os produtos de leite, sandía, pasta e cereais, aínda que se refiren a ese sistema, pero buscan e describen de xeito bastante diferente.

O desarrollador debe construír cada sistema de obxectos desde o campo de aplicación, e non de como algunha vez foi suxerida por alguén. Cada tarefa é única, a esixencia de utilizala na construción primaria de PHP non é absoluta.

Construtores xerais e privados

Por defecto, o constructor é xenérico e está dispoñible para todos os descendentes. Non é necesario especificar a construción da función pública, PHP considera por defecto todas as descritas, como a xeral.

Canto ten sentido usar a palabra clave privada cando se describen os constructores: a especificidade da tarefa, a característica do proceso de desenvolvemento ou as preferencias do programador?

Desde un punto de vista conceptual, o pedigree de obxectos pode tolerar calquera prohibición dos devanceiros en relación aos descendentes, pero canto é unha lóxica razoable dicir difícil, en calquera caso, nun contexto xeral.

Vida útil dos obxectos

O concepto de programación orientada a obxectos é máis amplo que a clase de construción de PHP pola simple razón de que estes só existen no momento da formación da páxina, a súa recreación ou a creación dunha outra páxina do sitio.

A participación de AJAX a través do navegador JavaScript e do código correcto no servidor axudará a prolongar a vida dos obxectos, pero en calquera versión será un estilo limitado.

PHP ofrece a posibilidade de executar unha secuencia de comandos no servidor cando o cliente "desconectado" e "permita" ao cliente de novo no script que executou anteriormente, pero esta non é a opción cando o programa orientado a obxectos se implementa en C ++.

Neste último caso, pode construír un sistema completo de obxectos, que existirá "para sempre", mentres que o programa está en execución e funcionando. Non obstante, isto é o único que pode presumir dunha linguaxe de programación estacionario como C ++, C #, Pascal e Delphi. Nun mundo de Internet dinámico, todo está construído de forma diferente, vive máis rápido e consegue máis.

Da serialización á autoconservación

Podes atopar unha xustificación histórica do término "serialización" ea aparición na vida cotiá do concepto de "métodos máxicos". Pero todo é moito máis sinxelo. Exactamente o mesmo que a liberdade de C ++ difiere da rixidez de C #, a serialización difiere dos conceptos banales:

  • Escribe un obxecto nunha cadea;
  • Ler o obxecto da cadea.

Para rodear esa maxia con métodos máxicos míticos é fermosa, sonora, pero non moi práctica. O mundo da información é interesante en primeiro lugar porque todo o visible, audible e tanxible pode ser descrito por un texto simple e coherente.

A información sempre foi, é e será unha cadea de símbolos. Non importa o tipo de natureza. Nas construcións formais dos idiomas de programación, a natureza dos personaxes é unha: a táboa de codificación.

A idea de converter un obxecto nunha cadea para que poida restaura-lo desde esta liña sen perda de esencia, se é necesario, é unha idea moi práctica.

Desde a autoconservación ao autodesarrollo

A semántica do constructor da construción dentro da súa sintaxe é limitada, pero se o deseñador desenvolve a partir dunha posición en desenvolvemento:

  • Hai un comezo: créase unha instancia completamente nova;
  • Hai un estado actual: créase unha instancia existente.

As limitacións de PHP porque o sistema de obxectos nel existe só no momento da formación da páxina, despegarán por si mesmos.

Ao crear un sistema de obxectos ao crear unha páxina do sitio, podes gardalo. Por simplicidade, este proceso non debe ser chamado de serialización, só pode manter o estado actual das cousas (base de datos, ficheiros) e cando necesite volver crear a mesma páxina ou crear outro no mesmo sitio, simplemente restaurar o estado actual das cousas que xa se formaron.

Neste contexto, o sistema de obxectos só se crea unha vez e no proceso do sitio simplemente desenvolve. Con tal esquema, pódese deseñar un sistema de obxectos como algo que se adapte ás condicións cambiantes de existencia.

Un sistema de aforro de obxectos "recorda" as accións do visitante eo estado das páxinas, e cada vez que se inicia PHP, non se crea desde cero, pero restaurado no estado anterior.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 gl.birmiss.com. Theme powered by WordPress.