Firebase + APF

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Coach83
Beiträge: 274
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Firebase + APF

Beitrag von Coach83 » 10.11.2016, 12:53:23

Hallo zusammen! alles klar bei euch? Ich war ja schon länger nicht mehr da ...

ich möchte meine Daten in firebase abspeichern - dazu wollte ich folgendes Skript nutzen:
http://firebase-php.readthedocs.io/en/latest/index.html

Wie muss ich das denn einbinden?

Benutzeravatar
dave
Beiträge: 928
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: Firebase + APF

Beitrag von dave » 10.11.2016, 14:11:07

Hallo Coach,
wie du siehst ist immer jemand aktiv ;) Aber schön, mal wieder was zu hören. Es fühlt sich gut an, wenn einige User regelmässig das APF nutzen.

Christian ist derzeit im Urlaub, ich versuche dir mal zu helfen kann aber nichts garantieren ;) Ich denke, für deinen Anwendungsfall eignet sich der ServiceManager optimal. Eventuell ist es nötig, den Namespace der Firebase-Klasse noch bekannt zu geben. Dazu musst du einfach nur namespace pfad/zur/firebase-klasse; in der Firebase.php nachtragen.

Die Einbindung dürfte recht einfach sein:

Code: Alles auswählen

use pfad/zur/firebase-klasse/Firebase;

[...]  // Definition deines Controllers oder deines Manager/Data-Mapper

    $firebase = $this->getServiceObject(Firebase::class);
    // Alternativ auch: $firebase = $this->getServiceObject('pfad/zur/firebase-klasse/Firebase');
    
    $database = $firebase->getDatabase();
 
Alle Angaben ohne Gewähr :lol:
Ich habe aktuell noch ein paar Schwierigkeiten, dass der Context nicht mitgegeben wird. Das müsste bei dir aber klappen. Ich bin gespannt, obs funktioniert :)

Coach83
Beiträge: 274
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: Firebase + APF

Beitrag von Coach83 » 08.01.2017, 01:13:12

Guten Abend Dave,

bitte entschuldige die extreme Verspätung meiner Antwort. Ich hatte beruflich sehr viel um die Ohren.
Wenn ich das so umsetzen will erhalte ich ein
Fatal error: Cannot declare class Firebase, because the name is already in use in /var/www/vhosts/APPLICATION/tools/extern/firebase/Firebase.php on line 11

Benutzeravatar
dave
Beiträge: 928
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: Firebase + APF

Beitrag von dave » 08.01.2017, 13:26:24

Hi Coach, danke für das Feedback. Kein Stress, wir machen das alles aus Spass an der Freude ;)
Ok, verdammt, dann probiere einmal einen anderen Weg, der definitiv klappen sollte:
1. Die Firebase-Klasse in deiner Bootstrap via RootClassLoader registrieren:

Code: Alles auswählen

RootClassLoader::addLoader(new StandardClassLoader('Firebase', 'pfad/zur/klasse'));
 
2. Die Firebase-KLasse kann nun an jeder beliebigen Stelle PHP-typisch genutzt werden:

Code: Alles auswählen

use pfad\zur\klasse\Firebase;

$firebease = new Firebase();
 
Frage an Christian: Warum funktioniert 1. Variante nicht?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4593
Registriert: 04.11.2007, 16:13:53

Re: Firebase + APF

Beitrag von dr.e. » 08.01.2017, 15:54:03

Hallo dave, hallo Coach,

die Deklaration

Code: Alles auswählen

RootClassLoader::addLoader(new StandardClassLoader('Firebase', 'pfad/zur/klasse'));
besagt (rückwärts übersetzt), dass alle Klassen für den Hersteller Firebase unter pfad/zur/klasse liegen. Das ist in diesem Fall jedoch nicht korrekt, denn die Klasse Firebase liegt ja dem Namespace pfad/zur/klasse/ und der Ordner pfad wiederum im Root-Ordner des Herstellers. Die korrekte Deklaration für den ClassLoader (sofern die Library PSR-3-kompatibel ist), lautet:

Code: Alles auswählen

RootClassLoader::addLoader(new StandardClassLoader('pfad', '/vendor/root/ordner'));
Dabei ist pfad (der erste Teil des Namespaces) der Hersteller (so wie in APF\core\pagecontroller das Kürzel APF) und /vendor/root/ordner zeigt auf den Ordner, im dem die Klassen des Herstellers liegen. Der komplette Pfad ist dann /vendor/root/ordner/pfad/zur/klasse/Firebase.php.

Details dazu könnt ihr auch nochmal unter http://adventure-php-framework.org/Seit ... lassLoader nachlesen.

Hoffe das hilft euch weiter! :)
Viele Grüße,
Christian

Coach83
Beiträge: 274
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: Firebase + APF

Beitrag von Coach83 » 08.01.2017, 20:17:56

Perfekte Erklärung Christian & Dave! Es klappt alles wie gewünscht :-) Merci euch Beiden

Coach83
Beiträge: 274
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: Firebase + APF

Beitrag von Coach83 » 19.02.2018, 20:42:24

Hey!
Ich checks mal wieder nicht. Ich möchte die SendGrid Mail Klasse einbinden.
Zu finden im Root-Ordner unter
"/SENDGRID/vendor/sendgrid/sendgrid/lib/SendGrid.php"
Wie binde ich die denn ein!?

Benutzeravatar
dave
Beiträge: 928
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: Firebase + APF

Beitrag von dave » 21.02.2018, 19:01:11

Sollte auch ganz gut mit dem RootClassLoader in deiner index.php klappen:

Code: Alles auswählen

RootClassLoader::addLoader(new StandardClassLoader(SendGrid, '/SENDGRID/vendor/sendgrid/sendgrid/lib'));

Coach83
Beiträge: 274
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: Firebase + APF

Beitrag von Coach83 » 28.09.2018, 12:37:12

Hey! Sorry für die späte Antwort. Ich hatte mir beim Radfahren beide Handgelenke mehrfach gebrochen und war ewig nicht am PC.
Ich hab die Klasse so eingebunden... in meinem Skript hab ich dann versucht mittels

Code: Alles auswählen

use Sendgrid;

$from = new SendGrid\Email("Name", "EMAIL");
            $subject = "Sending with SendGrid is Fun";
            $to = new SendGrid\Email("Name", "EMAIL");
            $content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP");
            $mail = new SendGrid\Mail($from, $subject, $to, $content);
eine Mail zu versenden... da erhalte ich dann aber den Fehler
"Class 'Sendgrid\Email' not found"

Benutzeravatar
dr.e.
Administrator
Beiträge: 4593
Registriert: 04.11.2007, 16:13:53

Re: Firebase + APF

Beitrag von dr.e. » 01.10.2018, 09:00:53

Hallo Coach,

schön, dass du wieder mal vorbei schaust! Und vor allem: schön, dass du wieder (halbwegs?) gesund bist! :) Das klingt ja nach einer echt anstrengenden Zeit... :shock:

Ich habe mir die Library unter https://github.com/sendgrid/sendgrid-php/blob/master/ mal angesehen und ich habe zwei Vermutungen:
  • Die Erstellung der Klasse müsste \SendGrit\Email lauten (mit führendem "\"), oder
  • die Klasse heißt eigentlich Mail statt Email
.

Falls das nicht hilft, versuche mal einen Breakpoint in den StandardClassLoader zu setzen und schau mal, was der da versucht zu laden.

Hoffe das hilft dir!
Viele Grüße,
Christian

Coach83
Beiträge: 274
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: Firebase + APF

Beitrag von Coach83 » 05.10.2018, 22:52:45

Hey! Gesund so halbwegs.. bzw. bin ich halbwegs wieder fit.
Momentan sitz ich aber kaum am PC, weil ich erst mal schauen muss, dass meine beiden Gelenke wieder beweglich werden. Danke für die Antwort, ich schau mir das in den nächsten Tagen mal an.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast