PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for 2012

Wie viele interne Funktionen hat PHP?

with 5 comments

Tja, das ist nicht so leicht zu beantworten, die Antwort lautet: Kommt drauf an.

  • Zählt man nur die Funktionen in der sogenannten Standard-Extension und der SPL-Extension sind es 526. Das ist also die Anzahl die jede PHP Installation auf jeden Fall bietet.
  • Zählt man auch die Methoden der Klassen mit die mit ausgeliefert werden kommt man zusammen auf 1402. Darin sind jedoch auch viele „doppelte“ Methoden vorhanden die durch Ableitung entstehen.

Doch jede PHP-Installation wird normalerweise mit zusätzlichen Extensions kompiliert bzw. werden weitere geladen, sodass die Anzahl der zur Verfügung stehenden Funktionen deutlich höher ist:

  • Zählt man alle internen Funktionen hier in dieser PHP-Version von Xampp dann sind dies 1605. Darin sind nun auch die Funktionen aller installierten Extensions enthalten, z.B. die mysql_* Funktionen durch die mysqli-Extension oder die xdebug_* Funktionen der xdebug-Extension.
  • Zählt man alle Funktionen und Methoden zusammen kommt man auf stolze 3825 Funktionen und Methoden.

Ich habe für diese Zählungen die folgenden Scripte verwendet, die jeweils alle gefundenen Funktionen und Methoden inklusive Parametern ausgibt, man erhält also eine lange Liste die ungefähr so aussieht:

Weiterlesen »

Written by Michael Kliewe

April 13th, 2012 at 10:01 am

Testdaten generieren mit dem Projekt „Faker“

with 4 comments

Auf der Suche nach einem Namensgenerator bin ich auf das Projekt „Faker“ von Francois Zaninotto gestossen. Basierend auf den Fakern aus der Perl- und Ruby-Welt kann man damit nicht nur Namen generieren, sondern auch Straßen, Ortsnamen, Telefonnummern, Zahlen, Firmennamen, E-Mail-Adressen, IP-Adressen, URLs, Datumsangaben, und das ganze lokalisiert. Französische Daten sind also andere als italienische oder österreichische.

Sinnvoll sind solche Daten für die Testumgebung, um keine echten Daten nehmen zu müssen bzw. sich keine hunderte eigene Daten auszudenken, oder für Unit-Tests. Die generierten Daten kann man dann beispielsweise nutzen um eine Datenbank zu füllen, Objekte zu erstellen, XML-Dokumente zu generieren oder JSON-Requests abzufeuern. Die Readme des Projekts ist umfangreich und zeigt sehr schön was alles möglich ist.

Ein schönes und nützliches Projekt wie ich finde. Von Christoph Schaefer gibt es auch einen Fork mit einem de_DE Provider, leider ist die Vornamenliste noch etwas kurz, aber man kann gut darauf aufbauen.

Welche Daten nutzt ihr für Testumgebungen, wie generiert ihr eure Testdaten?

Written by Michael Kliewe

April 10th, 2012 at 10:14 am

Posted in PHP

Tagged with , , ,

PHP Easter Eggs

without comments

In vielen Softwareprodukten verstecken die Entwickler kleine Gimmicks, sogenannte Easter-Eggs. Es gibt sie in vielen Microsoft-Produkten, unter anderem ein Flipper in Word oder ein Flugsimulator in Excel, aber auch auf Webseiten und manchmal auch in Hardware gegossen.

In PHP gibt es auch einige kuriose Bilder, die normalerweise dazu gedacht waren am 1. April auf der phpinfo Seite angezeigt zu werden, die aber auch so abrufbar sind wenn man die Einstellung expose_php in der php.ini eingeschaltet hat.

Man kann diese Bildchen sehen indem man an ein beliebiges PHP Script einen bestimmten Query-String anhängt.

Das erste Logo zeigt je nach PHP Version ein anderes Bild. Man kann daran also die Major-Version erkennen und manchmal auch die Minor-Version.
Weiterlesen »

Written by Michael Kliewe

April 5th, 2012 at 4:36 pm

Posted in PHP

Tagged with ,

Termine 2012

with 10 comments

Einige Konferenzen gab es dieses Jahr bereits, und es wird noch einige geben bei denen wir dabei sein können. Hier die aktuelle Liste die ich mir gemacht habe, falls ihr noch weitere PHP oder PHP-verwandte Konferenzen kennt die es noch 2012 geben wird und die ihr besuchen werdet, sagt bitte kurz Bescheid. Denkt dran, euch stehen einige Tage Bildungsurlaub zu, also mal den Chef fragen wie es mit der Weiterbildung dieses Jahr aussieht!

18. – 19. Mai 2012
phpDay 2012 in Verona, Italien

22. – 25. Mai 2012
php|tek12 in Chicago

Weiterlesen »

Written by Michael Kliewe

April 3rd, 2012 at 10:07 am

APC „Potential cache slam averted for key XXX“

with 4 comments

Erst gestern bin ich wieder auf den folgenden „Bug“ (bzw. Feature) gestossen und musste den Workaround raussuchen, deshalb schreibe ich ihn jetzt hier nieder, vielleicht stösst ja auch jemand von euch mal darauf.

Es geht um die allseits beliebte APC Extension. Seit Version 3.1.3 (von August 2009) gibt es in APC einen Schutz gegen potentielle Race-Condition-Probleme bzw. einem Deadlock bzw. einem Cache-Slam (so genau weiß ich das auch nicht 😉 ). Es geht jedenfalls darum dass viele parallele bzw. aufeinander folgende APC-Schreibbefehle (apc_add()/apc_store()…) ein Problem auslösen können, und deshalb wurde eine Sperre eingebaut sodass auf einen Key nicht innerhalb kurzer Zeit mehrfach schreibend zugegriffen werden kann. Doch je nach Last auf der Maschine bzw. dem eingesetzten Script kann das durchaus vorkommen, und dann gibt es den Fehler:

Weiterlesen »

Written by Michael Kliewe

März 31st, 2012 at 11:52 am

Posted in PHP

Tagged with , , ,