// fetch masterserver response
$response = Sulphur\ResponseFactory::fromUrl('league.clonkspot.org');
// iterate through all games currently in lobby
foreach($response->where('State')->is('Lobby') as $reference) {
echo $reference->Title.' is now open!';
}
// show comment of first game containing "CMC" (case insensitive)
$references = $response->where('Title')->contains('cmc', true);
echo $references[0]->Comment;
// show title of first running league game
$references = $response->where('State')->is('Running')->where('League')->exists();
echo $references[0]->Title;>obskure Alternativserver
>(auch, falls Clonkspot eines Tages unerwartet so wie Clonk.de aufhören sollte)
>Sind Sie sicher, dass Sie wirklich auf eine so alte Nachricht antworten wollen?
>Eine Idee für die Zukunft ist, Redis nicht nur als Cache zu verwenden, sondern Spielupdates via dessen Pub/Sub System zu verbreiten und dann einen Websockets-Endpoint zu haben, an dem man live die Spiele bekommt.
>Ich habe den Code tatsächlich schon veröffentlicht.
>Install Sulphur by using composer.
>Und wofür ist der Eintrag auf packagist.org?
"beheh/sulphur": "1.1.1"" in der require-Sektion. Weil Composer eng mit Packagist zusammenarbeitet, musst du gar nicht wissen ob das auf GitHub/sonstwo ist - Packagist weiß das und gibt dir daher einfach die richtige Version. Falls ich eines Tages auf eine andere Plattform umziehe, geht Packagist immer noch, ich muss meine Referenz dort updaten. Weiterhin kannst du genau die Version angeben, die du haben möchtest, und ich kann beliebig andere Bibliotheken vorraussetzen, falls es denn mal dazu kommt (z.B. um das Abrufen von einem anderen Server mit einer weit verbreiteten Bibliothek zu machen). Composer kümmert sich auch da dann drum, dass immer die Version da ist, die meine Bibliothek braucht.beheh/sulphur": "1.1.1" (Frage wegen Anführungszeichen) reinschreiben? Und was ist, wenn du aktualisierst? Ist ja jetzt z.B. schon 1.1.2 vorhanden.
/usr/local/bin/composer verschieben>PS: Die composer.phar heißt jetzt "composer" (ohne Extension) und befindet sich in /usr/local/bin. Soweit richtig?
>Ich würde einfach B_E's composer.json runterladen. Die gibt's ja auf GitHub. Aber wohin damit?
autoload.php wird mit der Ausführung von Composer automatisch für dich angelegt und kümmert sich automatisch um die Inkludierung der Dateien./var/www/.../sonstwas) irgendwo:|- index.php
|- composer.json|- vendor/
|- autoload.php
|- <verschiedene Ordner>
|- index.php
|- composer.jsonrequire 'vendor/autoload.php';" und hat dann dadurch Zugriff alle per Composer installierte Bibliotheken. Das heißt, du solltest dann genau die Beispielzeilen Code nutzen können, die in Sulphurs Readme sind.
>Mit "composer install" wird das dann zu [...]
>Also als erstes "composer require beheh/sulphur" in den Terminal eingeben, dann die erstellte composer.json in das Zielverzeichnis kopieren / verschieben und als letztes "composer install" ausführen? Da nochmal mit beheh/sulphur oder nur install?
composer.json per Hand an. Dann nimmst du die, die ich dir oben gegeben habe.composer.json selbst anlegen (da kommt das gleiche bei raus). Dazu führst du erst "composer init", und dann "composer require beheh/sulphur" aus.composer install" aus. Jetzt weiß Composer ja dank der existierenden composer.json, welche Bibliotheken heruntergeladen werden sollen, du brauchst also nichts weiter anzugeben.>Und zum Verständnis, wofür wird jetzt diese composer(.phar (ich hab's ja umbenannt))-Datei gebraucht?
composer(.phar) ist das eigentliche Composer-Programm. Das kennt sich mit der composer.json aus und macht eben diese ganzen Dinge, wie vendor/-Verzeichnis erstellen, die gewünschten Bibliotheken aus require herunterzuladen und autoload.php zu erstellen.composer.json. Die kannst du entweder selbst schreiben, oder Composer für dich anlegen lassen.
composer init probiert und dann abgebrochen, da ich nicht wusste, was ich da jeweils reinschreiben sollte. Deshalb hab ich auch gefragt, ob ich die composer.init von GitHub verwenden kann, da die Inhalte so ziemlich gleich waren. Hab dann composer require beheh/sulphur ausgeführt und habe die daraus produzierte composer.json in mein Hauptverzeichnis (/var/www/) verschoben (Script kommt vsl. auf die Hauptseite). Aber ok, dann nehm mal dein Beispiel weiter unten und führe dann composer install aus.>Du machst also jetzt nur noch "require vendor/autoload.php" und kannst dann alle Klassen von Sulphur (oder jeder anderen geladenen Bibliothek) mit Präfix nutzen, also etwa "new Sulphur\ResponseFactory"....
<?php require("vendor/autoload.php"); ?>, oder?>Hauptverzeichnis (/var/www/) verschoben
><?php require("vendor/autoload.php"); ?>, oder?
>Und kannst du nochmal den Teil mit dem Präfix erklären?
$foo = new Sulphur\ResponseFactory...
>Zur Nutzung setzt du den einfach mit einem Backslash davor: $foo = new Sulphur\ResponseFactory...
>// fetch masterserver response
>$response = Sulphur\ResponseFactory::fromUrl('league.clonkspot.org');
pi@dPi ~ $ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
pi@dPi ~ $>Ich würde einfach nur gerne wie auf der CMC-Seite sowas für meine Seite einrichten.
{
"name": "dman/irgendeinprojekt",
"type": "project",
"require": {
"beheh/sulphur": "~1.1"
}
}Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill