Pripojenie sa na DB (WebSocket)

KrKOo
Člen | 3
+
0
-

Snažím sa urobit jednu WebSocket-ovú aplikáciu ktorá po každom pripojení/odpojení užívatela pošle niečo do databázy, akurát sa mi nejde pripojit.

<?php
namespace WebSocket;
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;

use Nette;

class Chat implements MessageComponentInterface {
    protected $clients;
    private $database;

    public function __construct(Nette\Database\Connection $database) { //   <<---------
        $this->clients = new \SplObjectStorage;
        $this->database = $database;
    }

Tu sa vytvara object z Chat

<?php
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use WebSocket\Chat;

require dirname(__DIR__) . '/vendor/autoload.php';

    $server = IoServer::factory(
        new HttpServer(
            new WsServer(
                new Chat()  //   <<-------
            )
        ),
        8080
    );

    $server->run();

Mám tam zatial tento kód ale ked vytvaram object tak tam musim pridat nejaky parameter ale neviem aky.
Vopred ďakujem za pomoc.

Ondřej Kubíček
Člen | 494
+
0
-

jakto že nevíš jaky?
šak v construktoru vidíš, že to chce Nette\Database\Connection

co tak z toho kousku vidím, tak to není nette aplikace, není tam žádný DI kontejner, takže si to asi budeš muset povytvářet všechno ručně sám
takže si uděláš novou instanci Connection a předáš ji do constructoru třídy Chat

KrKOo
Člen | 3
+
0
-

No je mi jasne ze tam ma byt Nette\Database\Connection, ale ja to chcem s DI containerom ktory tam neviem pridat.

v config.neon mam toto

database:
	dsn: 'mysql:host=127.0.0.1;dbname=test'
	user: root
	password:
Ondřej Kubíček
Člen | 494
+
0
-

no ale ti říkam, že tam nemáš žádnou ted nette aplikaci. kde máš nějaké vytváření toho containeru, abys to mohl použít tak jak chceš?

Ondřej Kubíček
Člen | 494
+
0
-

container vytvoříš klasicky, viz třeba sandbox https://github.com/…ootstrap.php