Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an.
Weitere Informationen
PHP ist eine schwach typisierte Sprache und verfügt über keine strikte Typisierung. PHP legt intern fest, welchen Datentyp eine Variable annimmt oder eine Funktion zurückgibt. Es gibt zwar die bereits behandelten Umwandlungsfunktionen, letztlich besteht aber kein Typzwang, wie dies in Programmiersprachen üblich ist. Anstatt auf eine strikte Typisierung kann jedoch auf einen klassenbasierten Typen-Hinweise (engl. type hints) zugegriffen werden. Dieser Typen-Hinweis wird zur Laufzeit ausgewertet. Damit kann festgelegt werden, dass an Methoden nur Objekte einer bestimmten Klasse übergeben werden können.
Funktionsweise von Typen-Hinweisen
Die Forderungen an den Typ eines Parameters können durch die Angabe eines Klassen- oder Schnittstellennamens in der Signatur der Methode erfolgen. Die Typenprüfung erfolgt jedoch nicht zum Zeitpunkt der Kompilierung, sondern erst zur Laufzeit. Diese sogenannten Class Type Hints ersparen dem Entwickler einiges an Schreibarbeit, wie die beiden folgenden Beispiele zeigen.
Beispiel – Class Type Hints
<?php
interface Reinlassen
{
function Zutrittgestatten();
}
class Vipzone implements Reinlassen
{
function Zutrittgestatten()
{
echo "VIP Bereich.\n";
}
}
class Normalzone implements Reinlassen
{
function Zutrittgestatten()
{
echo "Öffentlicher Bereich.\n";
}
}
class Privatperson
{
function Betreten(Normalzone $ticket)
{
echo $ticket->Zutrittgestatten();
}
}
class Vipperson
{
function Betreten(Reinlassen $ticket)
{
echo $ticket->Zutrittgestatten();
}
}
Fatal error: Argument 1 passed to Privatperson::Betreten() must be an instance of Normalzone
Wie man an diesem Beispiel sieht, kann das Objekt $normalperson nur den öffentlichen Bereich betreten, während es beim Objekt $vip egal ist, welcher Bereich betreten wird. Die Angabe von function Betreten(Normalzone $ticket) entspricht:
function Betreten($ticket)
{
if (!($ticket instanceof Normalzone))
{
die("Argument 1 must be an instanc of vipzone");
}
echo $ticket->Zutrittgestatten();
}