Archivo Explosivo: OOP

FIAE – Objektorientierte Programmierung – Einführung

Was ist Objektorientierte Programmierung?
Laut ISO/IEC 2382:
„Ein Programmier-Stil, der Objekte, Klassen und Vererbung einsetzt.“
Nach Allen Kay (Erfinder von SmallTalk):
„Alles ist ein Objekt. Objekte kommunizieren duch das Senden und Empfangen von Nachrichten – diese Nachrichten sind wiederum Objekte. Objekte haben Ihren eigenen Speicher, jedes Objekt ist die Instanz einer Klasse (die auch wiederum ein Objekt ist). Eine Klasse beinhaltet das Verhalten aller Ihrer Instanzen (Objekte in einer Programmliste). Für das Ausführen einer Programmliste, wird die Ausführungskontrolle dem ersten Objekt gegeben und das verbleibende als dessen Nachricht behandelt“.
In 2003 revidierte Kay seine Aussage und definierte Objektorientierung folgendermaßen:
„OOP bedeutet für mich nur Messaging, lokales Beibehalten und Schützen und Verbergen des Prozesszustands sowie spätestmögliche Bindung aller Dinge.“

Als Anmerkung sei gesagt: Es existieren auch klassenlose objektorientierte Programmiersprachen (Prototypen basierend – zum Beispiel Javascript) und der Vererbung wird heutzutage weniger Bedeutung zugesprochen, als noch in den 1990ern. Deswegen gilt der erstgenannte Ansatz der ISO/IEC als veraltet.

Die Schlagworte objektorientierter Programmierung
Abstraktion: Entweder in Form von Klassen, oder in Form von Prototypen.
Klassen: Die Datenstruktur eines Objekts wird durch die Attribute einer Klassendefinition festgelegt.
Prototypen: Objekte werden durch das Klonen bereits existierender Objekte erzeugt und können als Prototypen dienen.
Datenkapselung: Die eigentlichen Implementierungsdetails bleiben bei der Ausführung verborgen. Zugriff über Schnittstellen.
Feedback: Kommunikation über einen Nachrichten-Antwort-Mechanismus. Führt zu Veränderung von Objekten.
Persistenz: Objektvariablen existieren, solange die Objekte vorhanden sind und verfallen nicht automatisch nach Abarbeitung einer Methode.
Polymorphie: Unterschiedliche Datentypen können angenommen und verarbeitet werden.
Vererbung: Eine abgeleitete Klasse „erbt“ die Methoden und Attribute der Basisklasse.

Als absolute Basis objektorientierter Programmiersprachen gelten:
Vererbungsmechanismen
Datenkapselung
Polymorphie

Deutscher PHP-Kalender

Deutscher PHP-Kalender

Hier gibt es die Demo und hier das Paket zum Download auf GitHub.

Permalink
11. Januar 2015
GitHubPHPProgrammierung
encoding & verify

Sensitive Benutzerdaten verschlüsseln und wieder verifizieren

Hier findet sich ein kleines Beispiel, wie man mit PHP sensitive Benutzerdaten verschlüsseln kann und spätere Identifizierungen wieder verifizieren kann. Das gesamte Beispiel kann hier auf GitHub heruntergeladen werden.

Benutzt werden nur die beiden nativen PHP-Funtionen „password_hash“ und „password_verify„.

Zwei-Faktor-Authentifizierung

Zwei-Faktor-Authentifizierung für ConstructrCMS

ConstructrCMS Changelog vom 19.12.2014:

– Zwei-Faktor-Authentifizierung (Wikipedia Eintrag zu diesem Thema)

ConstructrCMS-Webseite
ConstructrCMS auf GitHub

MrRender Mini-CMS

MrRender – MiniCMS

Die Evolutionsstufe 3 beim MiniCMS (MrRender) ist erreicht und die Dateien auf GitHub (DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE), bzw. die Demo-Seite wurden aktualisiert.

Zum System:

  • 187 Zeilen Code
  • 4,6 KB Dateigröße
  • 1 Klasse, 3 Funktionen
  • Definition der Navigationsstruktur über ein „Routes-Array“
  • 404 Fehlerseite, Error-Seite
  • 1 Content-Verzeichnis ohne Verschachtelung
  • Beliebige Einzelseiten (HTML, PHP, …)
  • Clean URL’s per ModRewrite (.htaccess)
  • Klein, flexibel und schnell
ConstructrCMS 1.04.0

Constructr CMS

Constructr CMS