vendor/autoload.php
Bernd
- php
0 dedlfix0 Bernd0 dedlfix0 Bernd
0 1unitedpower
0 1unitedpower0 Bernd0 Was ich nicht verstehe
Bernd0 dedlfix
Hallo,
wenn ich mir die Timeular (ZEIº) Client Library for PHP Beispiele ansehe, sehe ich folgendes:
require_once __DIR__ . '/../vendor/autoload.php';
https://github.com/linkorb/timeular-client-php/blob/master/example/common.php
Dieser Ordner gibt es nicht, wenn ich mir das ganze Projekt auf den Rechner lade. Die Frage ist, woher bekomme ich diesen?
Tach!
Dieser Ordner gibt es nicht, wenn ich mir das ganze Projekt auf den Rechner lade. Die Frage ist, woher bekomme ich diesen?
Wenn du das mit dem Composer installierst, bekommst du den. Das steht jedoch nicht in der Projektdokumentation auf Github, man kann es nur anhand des Indiz composer.json erkennen.
dedlfix.
Misst :/ Anders kommt man nicht an die Datei? Ich kenne mich mit dem Teil nicht aus und möchte es auch ungern auf meinem Mac installieren.
EDIT: Ist das dieser?
https://github.com/squizlabs/PHP_CodeSniffer/blob/master/autoload.php
Tach!
Misst :/ Anders kommt man nicht an die Datei? Ich kenne mich mit dem Teil nicht aus und möchte es auch ungern auf meinem Mac installieren.
Doch, du musst das nur genauso installieren, wie es der Composer tun würde. Es kommt nicht darauf an, diese Datei zu bekommen, denn die gibt es nicht einfach so. Die wird vom Composer erstellt, nachdem der alle Abhängigkeiten installiert hat. In ihr steht Code drin, wo die Dateien für include/require der einzelnen Pakete zu finden sind, grob gesagt.
dedlfix.
Danke für deine Erklärung. Dann kommt das für mich leider nicht in Frage. Ich kenne das Tool nicht und möchte es nicht einfach so auf meinem Mac installieren.
Muss ich eben weiter schauen ob ich noch etwas anderes ohne der Datei finde.
Misst :/ Anders kommt man nicht an die Datei? Ich kenne mich mit dem Teil nicht aus und möchte es auch ungern auf meinem Mac installieren.
Composer ist eines der wichtigsten Werkzeuge eines PHP-Entwicklers. Früher oder später solltest du dich damit befassen. Composer braucht auch keine komplizierte Installation, es reicht im Prinzip die composer.phar-Datei herunterzuladen.
EDIT: Ist das dieser?
https://github.com/squizlabs/PHP_CodeSniffer/blob/master/autoload.php
Nein.
Hallo,
warum kann man nicht einfach einen kompletten Download zur verfügung stellen? Früher ging das doch auch? Und muss ich auf dem Server auch etwas beachten wenn ich mit vendor/autoload.php arbeiten möchte? Ich habe nur ein Webspace und kein SSH Zugang.
Tach!
warum kann man nicht einfach einen kompletten Download zur verfügung stellen?
Kann man. Aber oft sind Abhängigkeiten zu installieren, und je mehr das sind, destoweniger möchtest du das zu Fuß tun. Besonders nicht, wenn jeder sein eigenes Süppchen kocht. Composer hat hier zu Vereinheitlichung geführt und für Vereinfachung gesorgt.
Und muss ich auf dem Server auch etwas beachten wenn ich mit vendor/autoload.php arbeiten möchte? Ich habe nur ein Webspace und kein SSH Zugang.
Dann musst du das lokal installieren und alle Dateien hochladen. Das ist sowieso der übliche Weg. DU brauchst das ja auch alles lokal in deiner Entwicklungsumgebung.
dedlfix.
Ich wusste es, dass es nicht funktioniert. Jetzt habe ich vielleicht mein System versaut wegen so einem Dreck :/
Mein erster Weg war diese Seite aufrufen:
https://getcomposer.org/download/
Dann diese Befehle ausführen, die gezeigt werden, hat auch geklappt. Danach bin ich auf
https://getcomposer.org/doc/00-intro.md gegangen und dort unter
Installation - Linux / Unix / macOS#
habe zuerst dieses Verzeichnis angelegt, da es bei mir noch nicht vorhanden war
mkdir -p /usr/local/bin
Danach folgenden Befehl ausgeführt
sudo mv composer.phar /usr/local/bin/composer
Laut Beschreibung kann ich dann in der Konsole
php composer.phar
aufrufen. Danach erhalte ich folgende Fehlermeldung
Could not open input file: composer.phar
Ich habe mir dazu folgendes Video angesehen, alles ganz einfach nur bei mir nicht
https://www.youtube.com/watch?v=yHPwCZAaMak
Jetzt kann ich wohl mein ganzen Mac neu machen weil irgendetwas passiert ist wo ich nicht weiß was los ist :/
Danach folgenden Befehl ausgeführt
sudo mv composer.phar /usr/local/bin/composer
Laut Beschreibung kann ich dann in der Konsole
php composer.phar
So müsstest du Composer aufrufen, wenn du es lokal installiert hättest. Du hast aber die globale Variante gewählt, deswegen sollte der aufruf einfach nur composer
lauten. Zum Testen führ mal composer --version
aus.
Oh danke für die Aufklärung. Ich bin einfach nicht bei der Sache :/ In Minute 7:18 sagt er es ja, dass man jetzt wenn man dieses Befehl ausgeführt hat einfach nur noch composer -v ausführen kann.
Wenn ich composer --version aufrufe erhalte ich
Composer version 1.8.5 2019-04-09 17:46:47
Sollte also passen?
Jetzt muss ich mir erst einmal MAMP installieren dass ich mir Timeular (ZEIº) Client Library for PHP herunterladen kann.
Tach!
So müsstest du Composer aufrufen, wenn du es lokal installiert hättest. Du hast aber die globale Variante gewählt, deswegen sollte der aufruf einfach nur
composer
lauten. Zum Testen führ malcomposer --version
aus.
Gilt die globale Installation lediglich für den Composer selbst oder legt der nun auch noch Dinge global ab, die im Projekt (und damit auch später auf dem Server) gebraucht werden?
dedlfix.
Gilt die globale Installation lediglich für den Composer selbst oder legt der nun auch noch Dinge global ab, die im Projekt (und damit auch später auf dem Server) gebraucht werden?
Nur für Composer. Dependencies werden weiterhin im vendor
-Ordner abgelegt.
wenn ich mir die Timeular (ZEIº) Client Library for PHP Beispiele ansehe, sehe ich folgendes:
require_once __DIR__ . '/../vendor/autoload.php';
Das ist eine Datei, die von Composer generiert wird.
Dieser Ordner gibt es nicht, wenn ich mir das ganze Projekt auf den Rechner lade. Die Frage ist, woher bekomme ich diesen?
composer create-project linkorb/timeular-client
Hallo,
composer create-project linkorb/timeular-client
danke für den Befehlt, wie bist du an diesen gekommen? Ich habe ihn leicht abgeändert
composer create-project linkorb/timeular-client Timeular-API
Die Frage ist jetzt noch, benötige ich alle Dateien die heruntergeladen wurden? In vendor gibt es Ordner wie
Und eben auch meine autoload.php die ich eigentlich benötigt habe. Warum sind jetzt plötzlich viel mehr Dateien vorhanden?
Tach!
Die Frage ist jetzt noch, benötige ich alle Dateien die heruntergeladen wurden? In vendor gibt es Ordner wie
- Composer
- PSR
- Symfony
- guzzlehttp
Wie gesagt, das sind Abhängigkeiten. Man schreibt heutzutage nicht mehr alles von Grund auf selbst, sondern bedient sich an anderen Projekten für die Teile der Aufgabe, die andere bereits gelöst haben. Also, nachdem man geschaut hat, ob die Lizenzbedingungen zum eigenen Projekt passen.
Ob wirklich alles von allem benötigt wird, kann man vermutlich guten Gewissens verneinen. Aber um das am Ende wegzulassen, man müsste alles durchgehen und die Teile der eingebundenen Bibliotheken finden, die letztlich nicht angesprochen werden. Andererseits organisiert man bestenfalls seinen Code so, dass nicht zu viel Aufgaben in einer Klasse/Datei abgehandelt werden. Dann wird zur Laufzeit auch nur das geladen, was wirklich benötigt wird. Der Autoloader ist dafür ein wichtiger Bestandteil. Man gibt nicht händisch jede Include-Datei an, sondern überlässt das Laden der Dateien mit den Klassen darin dem Autoload-Mechanismus von PHP. Der wiederum bekommt über die vom Composer erzeugte autoload.php gesagt, wo die konreten Dateien für die Klassen zu finden sind.
dedlfix.
Hallo,
jetzt bekomme ich folgenden Fehler
Fatal error: Uncaught Symfony\Component\Dotenv\Exception\PathException: Unable to read the
/Timeular-API/example/get-time-entries.php(3): require_once('/www/htdocs/w01...') #3 {main} thrown in /www/htdocs/Timeular-API/vendor/symfony/dotenv/Dotenv.php on line 465
Ok, am Mac werden Dateien ausgeblendet. Ich musste erst alle über
defaults write com.apple.finder AppleShowAllFiles 1 .
killall Finder
alle einblenden und die dann auch mit hochladen.
Jetzt bekomme ich noch diesen Fehler
Fatal error: Uncaught RuntimeException: Key or secret not specified in Timeular-API/example/common.php:15 Stack trace: #0 /www/htdocs/Timeular-API/example/get-time-entries.php(3): require_once() #1 {main} thrown in /www/htdocs/Timeular-API/example/common.php on line 15
Ok, aus
$secret = getenv('xxxxx');
Musste ich
$secret ='xxxx';
machen. Keine Ahnung was getenv macht.
Hallo Bernd,
Keine Ahnung was getenv macht.
get environment
Bis demnächst
Matthias
Hallo,
was ich nicht verstehe ist folgendes
require_once 'common.php';
$startedBefore = urlencode(date("Y-m-d\TH:i:s.000", time() ));
$stoppedAfter = urlencode(date("Y-m-d\TH:i:s.000", time() - (60*60*24) ));
$res = $client->get('time-entries/' . $stoppedAfter . '/' . $startedBefore);
print_r($res);
Ich möchte gerne ein anderes Datum übertragen, sagen wir den Tag von gestern. Wenn ich bei startedBefore 2019-05-26 eintrage, erhalte ich keine Ausgabe mehr. Wie muss ich das Datum eintragen oder kann ich dieses so nicht händisch hinterlegen?
Tach!
Ich möchte gerne ein anderes Datum übertragen, sagen wir den Tag von gestern.
Nicht alle Tage sind 60*60*24 lang. Solche Rechnungen sollte man gar nicht erst anfangen. Besser strtotime() nehmen, dann steht auch in lesbarer Form (wenn auch auf Englisch), was man zu rechnen gedenkt.
Wenn ich bei startedBefore 2019-05-26 eintrage, erhalte ich keine Ausgabe mehr. Wie muss ich das Datum eintragen oder kann ich dieses so nicht händisch hinterlegen?
Vielleicht hat das angegebene Format ja einen Sinn und du solltest das genauso übergeben. Jedenfalls gibt strtotime('yesterday')
einen passenden Timestamp für date() anstelle von time() plus Rechnerei.
dedlfix.