Diskuze: Problem s externou knižnicou

PHP Nette Framework Nette framework Problem s externou knižnicou

Avatar
Dominik Gavrecký:

Zdravím,

opäť sa mi podarilo naraziť na problém s ktorým si neviem dať rady už niekoľko dni. Cez composer som si natiahol do nette https://github.com/Austinb/GameQ. No po vyskúšaní mi to nenfunguje. Čo je zaujímavé tak mi nevyhodí žiadnu hlášku a dokonca ani tracy debuger nič nehlási.

<?php

namespace App\FrontModule\Presenters;

use Nette,
    GameQ\GameQ,
    Tracy\Debugger,
    App\Model;


class HomepagePresenter extends BasePresenter {

    public function status(){
        $servers = array(
        array(
                'id' => 'BF3',
                'type' => 'bf3',
                'host' => '8.6.15.241:25200',
        ),
        array(
                'id' => 'Test CS 1.6',
                'type' => 'cs16',
                'host' => '207.210.254.51:27015',
        )
);
        $gq = new GameQ();
        $gq->addServers($servers);
        $gq->setOption('timeout', 4); // Seconds
        $results = $gq->requestData();
        //Debugger::dump($results);
    }
}
Odpovědět 12. ledna 23:22
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Dominik Gavrecký:

Správa sa to dosť zvláštne ako by to tam bolo aj nebolo ...

Nahoru Odpovědět 12. ledna 23:29
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Odpovídá na Dominik Gavrecký
Jindřich Máca:

Mě to tak nějak funguje a to jsem pouze nainstaloval Nette sandbox, přidal knihovnu přes composer a zkopíroval Tvůj kód. :D Hlásí to tedy, že oba servery jsou offline, ale informace to z nich vytáhne. :)

 
Nahoru Odpovědět 13. ledna 13:28
Avatar
Odpovídá na Jindřich Máca
Dominik Gavrecký:

Skúsim znova nainštalovať nette

Nahoru Odpovědět 13. ledna 13:32
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Dominik Gavrecký:

Skúsil som to a stále nič.

Postupoval som:

  • Šiel som do wamp zložky (localhostu) a cez Use Composere Here som stiahol nette príkazom
composer create-project nette/web-project
  • Klikol som pravým na composer.json v nette a znova použil Use Composere Here s príkazom
composer require austinb/gameq:3.*@stable
  • Prekopíroval som kód hore upravil cestu k namespace a exteds na defaultnu a stále nič.

Vyhodí mi to len bielu stránku bez obsahu a to iste aj po použití Tracy dump

Pre istotu prikladám screen composera

Ďakujem

Nahoru Odpovědět 13. ledna 16:02
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Dominik Gavrecký:

Použil som @dev nie stable

composer require austinb/gameq:3.*@dev
Nahoru Odpovědět 13. ledna 16:04
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Odpovídá na Dominik Gavrecký
Jindřich Máca:

Tak za prvné jsem použil Nette sandbox, ne web-project, a za druhé GameQ jsem použil verzi 2.0.4, především protože

Version 2 is now closed to new features. I will add new games as time allows.
Please test v3 as much as possible and provide any feedback. Note that v3 is not production ready.

Můj HomepagePresen­ter.php potom vypadá stejně jako Tvůj:

<?php

namespace App\Presenters;

use GameQ;

class HomepagePresenter extends BasePresenter
{
    public function renderStatus()
    {
        $servers = array(
            array(
                'id' => 'BF3',
                'type' => 'bf3',
                'host' => '8.6.15.241:25200',
            ),
            array(
                'id' => 'Test CS 1.6',
                'type' => 'cs16',
                'host' => '207.210.254.51:27015',
            )
        );
        $gq = new GameQ();
        $gq->addServers($servers);
        $gq->setOption('timeout', 4); // Seconds
        $this->template->results = $gq->requestData();
    }
}

a šablonu status.latte jsem upravil z default.latte:

{block content}
<div id="banner">
        <h1 n:block=title>Status</h1>
</div>

<div id="content">
        {dump $results}
</div>
{/block}

{block head}
<style>
…

U mě se pak stránka zobrazuje klasicky pod URL

http://localhost/gameq/homepage/status

Přičemž ten dump je pak standartně zobrazen v Tracy, jak je vidět i na tom mém screenshotu. :)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 13. ledna 16:36
Avatar
Odpovídá na Jindřich Máca
Dominik Klapuch:

No, změnil si ale ze status na renderStatus. Nebo to v Nette nevadí?

Nahoru Odpovědět 13. ledna 16:52
Kód a data patří k sobě.
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Odpovídá na Dominik Klapuch
Jindřich Máca:

To jsem udělal proto, že jsem ten výstup chtěl hezky vykreslit do šablony, kde si ho můžu pohodlně projít. ;)

 
Nahoru Odpovědět 13. ledna 17:02
Avatar
Odpovídá na Jindřich Máca
Dominik Klapuch:

Ale když má jen status, tak se žádnej request nad presenterem nevykoná, když člověk zavolá /www/presenter/sta­tus z url ne?

Nahoru Odpovědět 13. ledna 17:05
Kód a data patří k sobě.
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Odpovídá na Dominik Klapuch
Jindřich Máca:

Ne, nevykoná, proto jsem tam dopsal ten render*. :D

 
Nahoru Odpovědět 13. ledna 17:10
Avatar
Odpovídá na Jindřich Máca
Dominik Klapuch:

Proto se ptám a měl si to zmínit :)

Nahoru Odpovědět 13. ledna 17:11
Kód a data patří k sobě.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.