237 Shares 6613 views

PHP build: creazione di istanze di classi

L'idea della programmazione orientata agli oggetti è molto più ampia delle funzionalità di PHP a causa delle sue specifiche, ma anche nell'esecuzione esistente offre al programmatore possibilità illimitate. Il costrutto PHP è un metodo speciale di una classe (oggetto), che viene chiamato ogni volta che un'istanza della classe viene istanziata.

La limitazione è che PHP funziona al momento della formazione della pagina. Nel momento in cui viene aggiornata la pagina o viene caricata un'altra pagina dello stesso sito, il sistema necessario di oggetti si forma di nuovo da zero.

Creazione di un'istanza di una classe

Non è richiesta una descrizione di classe per avere un costruttore. Se è necessario preparare i valori iniziali di variabili, catturare l'istante dell'istanza della classe (oggetto), eseguire determinate azioni su altri oggetti, allora non è possibile utilizzare la sintassi di struttura della classe PHP e scrivere il codice appropriato al di fuori dei metodi di classe.

Secondo la logica dello stile di programmazione object-oriented, ogni classe deve avere un costruttore, inoltre, è necessario avviare l'albero della classe dall'antico più astratto (assolutamente vuoto). È una reliquia del passato, e non una pratica sensata.

Quando il pedigree inizia con una classe significativa che possiede propri dati e proprietà associati a dati esterni (oggetti), le routine di funzioni PHP non possono essere dispensate.

In questo esempio, quando si crea (costrutto PHP) un'istanza della classe data, viene chiamata questa funzione (il costruttore). Ha un nome specifico __construct e viene chiamato dall'automa solo una volta, quando viene creata un'istanza della classe.

Questa classe fornisce una variabile statica $ iUniqueNo, che in ogni nuova istanza di questa classe avrà un valore univoco. Le istanze di classi non hanno nulla in comune, tranne le descrizioni all'interno della sintassi di PHP e l'interazione prevista dal progettista dei loro metodi.

Eredità della logica di inizializzazione

Ogni oggetto deve realizzare il suo scopo, avere ciò che ha bisogno e fare quello che dovrebbe. Da un punto di vista ragionevole, l'inizializzazione a ciascun livello del pedigree può includere l'inizializzazione in ogni antenato chiamato dal livello discendente.

In questo esempio, il parente di parola chiave: consente di chiamare il costruttore del genitore dal livello del discendente. La semantica è semplice. In primo luogo, l'antenato deve eseguire l'inizializzazione, quindi l'istanza corrente. Il primo segue la sua logica, la seconda – propria.

Quando ogni oggetto è impegnato nella propria attività, il processo complessivo sembra corretto e comprensibile. Ma questa regola non dovrebbe essere considerata la norma per tutti i sistemi di oggetti.

Il pedigree del sistema alimentare nella prima approssimazione può avere qualcosa in comune, ma i prodotti del latte, dell'anguria, della pasta e dei cereali, anche se si riferiscono a un tale sistema, ma guardano e descrivono in modo piuttosto diverso.

Lo sviluppatore deve costruire ogni sistema di oggetti dal campo di applicazione, e non da come fosse una volta suggerito da qualcuno. Ogni attività è unica, il requisito di utilizzarlo nel costrutto genitore PHP non è assoluto.

Costruttori generali e privati

Per impostazione predefinita, il costruttore è generico ed è disponibile per l'uso da parte di tutti i discendenti. Non è necessario specificare il costrutto di funzioni pubbliche, PHP per impostazione predefinita considera tutto descritto, come generale.

Quanto ha senso usare la parola chiave privata quando si descrive i costruttori: la specificità dell'attività, la funzionalità del processo di sviluppo o le preferenze del programmatore?

Dal punto di vista concettuale, il pedigree degli oggetti può tollerare qualsiasi divieto degli antenati in relazione ai discendenti, ma quanto è logica ragionare dire difficile, in ogni caso, in un contesto generale.

Durata dell'oggetto

Il concetto di programmazione orientata agli oggetti è più ampio di PHP costruire la classe per il semplice motivo che questi ultimi esistono solo al momento della formazione di pagine, la sua creazione o la creazione di un'altra pagina del sito.

La partecipazione di AJAX tramite browser JavaScript e codice appropriato sul server aiuterà a prolungare la vita degli oggetti, ma in qualsiasi versione sarà uno stile limitato.

PHP fornisce la possibilità di eseguire uno script sul server quando il client "disconnesso" e "consente" il client di nuovo nello script eseguito in precedenza, ma questa non è l'opzione quando il programma orientato agli oggetti viene implementato in C ++.

In quest'ultimo caso, è possibile costruire un sistema completo di oggetti che esisteranno "per sempre" mentre il programma è in esecuzione e in esecuzione. Tuttavia, questa è l'unica cosa che un linguaggio di programmazione stazionario come C ++, C #, Pascal e Delphi può vantarsi. In un mondo dinamico di Internet, tutto è costruito in modo diverso, vive più velocemente e raggiunge più.

Dalla serializzazione all'autoconservazione

È possibile trovare una giustificazione storica per il termine "serializzazione" e l'aspetto nella vita quotidiana del concetto di "metodi magici". Ma tutto è molto più semplice. Esattamente lo stesso della libertà di C ++ differisce dalla rigidità di C #, la serializzazione è diversa dai concetti banali:

  • Scrivi un oggetto a una stringa;
  • Leggere l'oggetto dalla stringa.

Circondare questa magia con metodi mitici magici è bello, sonoro, ma non molto pratico. Il mondo delle informazioni è interessante innanzitutto in quanto tutto visibile, udibile e tangibile può essere descritto da un testo semplice e coerente.

Le informazioni sono sempre state, sono e saranno una serie di simboli. Non importa quale natura. Nelle costruzioni formali dei linguaggi di programmazione, la natura dei caratteri è una – la tabella di codifica.

L'idea di trasformare un oggetto in una stringa in modo da poterlo ripristinare da questa linea senza perdere l'essenza, se necessario, è un'idea molto pratica.

Dall'auto-conservazione all'auto-sviluppo

La semantica del costruttore del costrutto nella sua sintassi è limitata, ma se il progettista si sviluppa da una posizione in via di sviluppo:

  • C'è un inizio – si crea un'istanza completamente nuova;
  • Esiste uno stato attuale: viene creata un'istanza esistente.

Limitazioni di PHP poiché il sistema degli oggetti su di esso esiste solo al momento della formazione delle pagine, scompare da soli.

Creare un sistema di oggetti durante la creazione di una pagina del sito, è possibile salvarlo. Per semplicità, questo processo non deve essere chiamato serializzazione, si può solo mantenere lo stato attuale delle cose (database, file) e quando è necessario ricreare la stessa pagina o creare un'altra sullo stesso sito, è sufficiente ripristinare lo stato attuale delle cose già formate.

In questo contesto, il sistema di oggetti viene creato solo una volta e nel processo del sito si sviluppa semplicemente. Con questo schema, è possibile progettare un sistema di oggetti come qualcosa che si adatta alle mutevoli condizioni di esistenza.

Un sistema di auto-salvataggio di oggetti "ricorda" le azioni del visitatore e lo stato delle pagine e ogni volta che PHP viene avviato, non viene creato da zero, ma viene ripristinato nello stato precedente.