Zend Framework 2: AnnotationRegistry not found

19. Oktober 2013

Ich wollte nach diesem Tutorial ein einfaches Login erstellen, und da warf Zend Framework 2 mir diese ‘hilfreiche’ Meldung:

  1. Fatal error: Class 'Doctrine\Common\Annotations\AnnotationRegistry' not found in \zendframework\zendframework\library\Zend\Code\Annotation\Parser\DoctrineAnnotationParser.php on line 42

Stellt sich raus, wenn man den blöden Composer so wie im Tutorial benutzt, wird doctrine nicht mit installiert. Man mache also folgendes:

  1. in vendor/compuser/installed.json bei require eine Zeile hinzufügen:
    1. "require": {
    2. "doctrine/common": ">=2.1", //neu
    3. "php": ">=5.3.3"
    4. },
  2. console starten und dort (im root Verzeichnis des Projekts) folgenden Befehl aufrufen:
    1. php composer.phar update

Dann klappt das auch. Das als Neuling rauszufinden is allerdings ungefähr so wahrscheinlich wie einem zweiköpfigen Schaf zu begegnen. Ganz ehrlich, was is verkehrt mit den Zend Framework Leuten? Soll ich mir so eine Information aus dem Arsch ziehen?

Gott das frustriert mich.

iOS Facebook App Browser erkennen

16. Oktober 2013

Letztens habe ich festgestellt, dass die iOS originale Facebook App einen eigenen “Browser” hat. Das heißt, wenn man im Facebook auf einen Link klickt, öffnet sich nicht der Safari oder ein anderer Browser, sondern die Facebook App nutzt quasi einen eigenen Browser – und der kann natürlich einige Dinge nicht, beispielsweise ignoriert er auf dem iphone die media queries zum Thema “orientation”. Sehr ungünstig das. Anscheinend kann man das Öffnen in Safari nicht erzwingen, deshalb habe ich behelfsmäßig ein browser detect gebaut. Im HTTP_USER_AGENT werden namlich über Facebook ein paar interessante Daten mitgeliefert udn so kann man feststellen, ob man sich gerade im Facebook Browser am iPad oder am iPhone befindet:

  1. if(preg_match('/FBIOS/i',$_SERVER['HTTP_USER_AGENT']){
  2. //facebook browser
  3. if(preg_match('/iPad/i',$_SERVER['HTTP_USER_AGENT'])){
  4. //facebook browser via ipad
  5. echo "iPad!";
  6. }else{
  7. //facebook browser via iphone
  8. echo "iPhone!";
  9. }
  10. }

Falls es wen interessiert, der HTTP_USER_AGENT liefert am ipad folgendes zurück:

  1. Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11A465 [FBAN/FBIOS;FBAV/6.5.1;FBBV/377040;FBDV/iPad3,6;FBMD/iPad;FBSN/iPhone OS;FBSV/7.0;FBSS/2; FBCR/;FBID/tablet;FBLC/de_DE;FBOP/1]