manGoweb / Skeleton

:grapes: Skeleton for Nette 2.2 and onward
Tajná zpráva :P
Other
1 stars 0 forks source link

Laděnka a Vagrant #3

Closed tsusanka closed 3 years ago

tsusanka commented 10 years ago

Protože k serveru na Vagrantu přistupuji přes IP a nikoliv přes localhost, autodetekce development modu nefunguje a nemám laděnku. Ve starém Skeletonu se to řešilo přessoubor .dev v rootu, který pokud existoval, tak byl vynucený development mód. Vypadalo to takto:

if (file_exists(__DIR__ . '/../.dev'))
{
    $configurator->setDebugMode(TRUE); // setup debug environment just by creating a file
}

Něco podobného by se dalo dodat i do Configuratoru. Je to okej? Anebo se to dá řešit lépe? Ty vyvíjíš taky proti Vagrantu ne?

hrach commented 10 years ago

korektni je tam asi pridat lokalni ip adresu vagrantu. $configurator->setDebugMode(['192.168.33.1']);

Mikulas commented 10 years ago

Řešil jsem to přetížením setDebugMode a detekcí hostname, protože se tim pak dá odchytit travis atp. Pro tohle .dev nejsem úplně nadchnutý, ale jestli ti to šetří práci/čas, tak to klidně pushni :)

hrach commented 10 years ago

toto ted pouzivam na signalech:

if (is_file(__DIR__ . '/config/config.debug.neon') && PHP_SAPI !== 'cli') {
    $secret = isset($_COOKIE['nette-debug']) ? $_COOKIE['nette-debug'] : NULL;
    $config = Nette\Neon\Neon::decode(file_get_contents(__DIR__ . '/config/config.debug.neon'));
    $config = $config['parameters']['debug'];
    $configurator->setDebugMode($secret === ($config['prefix'] . date('d')) ? $config['developerIps'] : FALSE);
} else {
    $configurator->setDebugMode(['192.168.33.1']); // default ip interface for vagrant host
}

je to inspirovany tou novou moznosti v bootstrap: https://github.com/nette/bootstrap/commit/2aecd66522b5d89e1dc1c7becac05db2fbff5640

tsusanka commented 10 years ago

Já fanda toho .dev taky moc nejsem, protože to pak omylem překopírujeme na produkci a je to trochu díra. Takže preferuju taky jiný řešení.

Hm, hm. Možná udělat do lokálního configu možnost zadat IP pro který se aktivuje development? A když bude prázdné, tak to nechat na Nette. Vlastně to co píše teď @hrach akorát dát tu IP do configu.

Mikulas commented 10 years ago

Hostname je podle me víc univerzální™ než ip a funguje na vagrantu i CI. :)

tsusanka commented 10 years ago

Pravda, pravda. Můžeš hodit ukázku? Nebo to tam případně rovnou navrtat? Přeci se v tom skeletonu vyznáš lépe a moc to nespěchá, protože odpo odjíždim.

Mikulas commented 10 years ago

Zatim to mam nahackovaný takhle https://github.com/KhanovaSkola/khanovaskola-v3/blob/master/app/config/Configurator.php#L103-L112 ale dám to jako seznam povolených debug hostname do configu.

tsusanka commented 10 years ago

To by bylo úplně mega super trooper !

Mikulas commented 10 years ago

Cim vic nad tim premyslim tim vic si rikam z eje to uplne zbytecny. Nestacil by proste debug on/off v configu?

hrach commented 10 years ago

@Mikulas ne ze bych te chtel otravovat i tady, ale je te treba na smrti :)

tsusanka commented 10 years ago

@Mikulas taky mě nenapadá proč vlastně ne. Asi bych udělal do lokálního configu něco alá forceDebug defaultně nastaven na off. Klidně udělám PR, akorát nevim jak v rámci konstruktoru Configuratoru se dostat ke configu.

tsusanka commented 10 years ago

:+1: :+1: Stačí když si to do webexpa cherrypicknu nebo to mam nějak rebasovat atd?

Mikulas commented 10 years ago

přesně jsem nad tim přemýšlel. Cp je asi nejlepší varianta. Rebase je zase cool že je nejsnadnějc poznat na který verzi skeletonu to je.

tsusanka commented 10 years ago

Hele nějak se to chová jak nemá, ale úplně nevím kde je problem. V současnym stavu s forceDebug: on laděnku nedostanu. Dostanu ji pouze pokud dám $this->setDebugMode(TRUE); na řádek 64 v Configurátoru.

Mikulas commented 10 years ago

divny, mrknu na to

Mikulas commented 10 years ago

Takhle problém je, že když je to cokoliv dál než bootstrap, tak to pak nefunguje pořádně když je chyba třeba v Configurator, neonu a prostě cokoliv před tím, než se to konečně dostane k tomu zapnutí tracy. Měl jsem teď týden na to nad tím přemýšlet a dospěl jsem k tomu, že je fakt asi nejlepší mít prostě zakomentovaný debug mode v boostrapu.

tsusanka commented 10 years ago

Jestli tomu dobře rozumím tak to současný řešení funguje pokud error nastane po načtení configu. Je to tak? Což znamená v presenteru, modelu atd laděnku dostanu. Jen pokud je chyba někde v configu/bootstrapu tak laděnka nebude. (a teď jsem to zkoušel a myslím, že mohu potvrdit)