Aktualizovaný sandbox pro Nette + Dibi
- stonewheel
- Člen | 5
Ahoj lidi,
Opravdu by to chtělo vytvořit jednoduchý ale pravidelně aktualizovaný
sandbox pro Nette + Dibi, začátečník ztratí spoustu času s rozcházení
základních věcí a přehrabováním se ve starých nefunkčních kódech a
odkazech.
Nenašla by se dobrá duše, která by to dokázala?
Díky.
Editoval stonewheel (12. 4. 2015 0:17)
- David Matějka
- Moderator | 6445
Rozchozeni nette + dibi by melo byt snadny:
composer create-project nette/web-project
cd web-project
composer require dg/dibi
do app/config/config.neon akorat pridas https://github.com/….sample.neon a je to ;)
- stonewheel
- Člen | 5
Wow. Díky.
Mohl bych ještě poprosit o příklad kódu pro HomepagePresenter, jak se tam
dostat k dibi a nějaký select?
Editoval stonewheel (12. 4. 2015 2:12)
- webdata
- Člen | 153
stonewheel napsal(a):
Wow. Díky.
Mohl bych ještě poprosit o příklad kódu pro HomepagePresenter, jak se tam dostat k dibi a nějaký select?
Toto forum a celý NETTE web má jednu hodně vyhytanou funkci a to hledání kam stačí zadat DIBI a hned na první stránce vypadne odpověď na váš dotaz.
PS: Tak si tak někdy říkám zda to není ztráta času pro ty co píšou dokumentaci a „tutoriály“, protože podle některých dotazů to nikdo stejně nečte a bohatě by stačilo primitivní fórum BEZ VYHLEDÁVÁNÍ kde by se dotazy řešili pořád dokola :-)
Editoval webdata (12. 4. 2015 2:42)
- stonewheel
- Člen | 5
Mám svůj sandbox kde se o aktualizaci starám sám. :-)
Toto forum a celý NETTE web má jednu hodně vychytanou funkci a to hledání kam stačí zadat DIBI a hned na první stránce vypadne odpověď na váš dotaz.
Když tě to zjevně obtěžuje, proč si nenajdeš jiné vlákno? Nebo se nechceš jít starat sám o svůj kód?
Vlastně se ptám proto, že se to podle této stránky nepodařilo rozjet. Je tam podle mě pár zastaralých a zavádějících informací. Je těžké to posoudit co k čemu patří a co v nové verzi zbytečné. Tak místo toho, abych otravoval s 10 chybovými hláškami chci jednoduchý kód pro quick start.
- Šaman
- Člen | 2666
To odkazované vlákno je již zastaralé a odkazovat na něj nováčka dneska je trochu prasárna. Konkrétně ty metody startup s přímým saháním do contextu jsou už total out. A to, že ArticlePresenter dědí od Objectu, takže to vlastně vůbec není presenter.
@stonewheel: Pokud máš Dibi nakonfigurované v neonu, tak by v presenteru mělo stačit
<?php
class ArticlePresenter extends Nette\Application\UI\Presenter
{
/** @var DibiConnection @inject */ # anotace inject (a vyplněná třída/rozhraní předávané závislosti)
public $db; # musí být public
?>
Druhá varianta je předat závislost v konstruktoru, stejně, jako je v té ukázce předáváno do modelu. (A při předávání do modelu je jediná plně podporovaná možnost ten konstrukor, anotace inject ti nebude fungovat mimo presentery).
Editoval Šaman (12. 4. 2015 13:45)
- webdata
- Člen | 153
stonewheel napsal(a):
Mám svůj sandbox kde se o aktualizaci starám sám. :-)
Toto forum a celý NETTE web má jednu hodně vychytanou funkci a to hledání kam stačí zadat DIBI a hned na první stránce vypadne odpověď na váš dotaz.
Když tě to zjevně obtěžuje, proč si nenajdeš jiné vlákno? Nebo se nechceš jít starat sám o svůj kód?
Vlastně se ptám proto, že se to podle této stránky nepodařilo rozjet. Je tam podle mě pár zastaralých a zavádějících informací. Je těžké to posoudit co k čemu patří a co v nové verzi zbytečné. Tak místo toho, abych otravoval s 10 chybovými hláškami chci jednoduchý kód pro quick start.
A co je složitého na pochopení po postu Davida Matěky se podívat do dokumentace kde je popsané to co napsal šaman?
Všimni si, že zde dávám odkazy které se dají najít a vlastně na tvůj dotaz dávají odpověď. Co se týče starání se o můj kód, tak bez obav, to mám očekované přes composer , ale o tom zase v nějakém dalším tvém postu :-)
- Šaman
- Člen | 2666
@stonewheel: Abych neradil naslepo a abych se taky podíval na ten
nový nette\web-project
, tak jsem vytvořil nejjednodušší ukázku na
githubu.
K jejímu rozběhnutí potřebuješ jen překopírovat
config.sample.neon
na config.local.neon
a vytvořit si
databázi a naplnit ji nějakými testovacími daty (data pro tento příklad
jsou přiložená přímo v /app
).
Anebo začít čistý projekt tak, jak psal @DavidMatějka výše a pak
následovat jednotlivé commity.
- stonewheel
- Člen | 5
Šaman napsal(a):
@stonewheel: Abych neradil naslepo a abych se taky podíval na ten nový
nette\web-project
, tak jsem vytvořil nejjednodušší ukázku na githubu.
K jejímu rozběhnutí potřebuješ jen překopírovatconfig.sample.neon
naconfig.local.neon
a vytvořit si databázi a naplnit ji nějakými testovacími daty (data pro tento příklad jsou přiložená přímo v/app
).
Anebo začít čistý projekt tak, jak psal @DavidMatějka výše a pak následovat jednotlivé commity.
Díky oběma za pomoc. Po ‚anotace inject‘ mi to už docvaklo :-)
Editoval stonewheel (12. 4. 2015 15:50)
- chemix
- Nette Core | 1310
@stonewheel Ja jen dodam ze injectovat db do presenteru chces pouze v pripade pidi aplikace, kde nema cenu udrzovat komplikovany kod (chapej jako ze se akorat na stankach vypisujou novinky a tim to hasne) V opacnem pripade nechces injectovat dibi do presenteru, ale do „manageru“ (s nazvoslovim mam problem, posledni dobou pozuzivam manager) ktery si pak injectnes do presenteru a zavolas jen
presenter.php
...
/**
* @inject
* @var \Model\ArticleManager
*/
public function renderDefault()
{
$this->templates->articles = $this->articleManager->findForHomepage();
}
...
manager.php
namespace Model;
...
/**
* ArticleManager
*/
class ArticleManager extends Nette\Object
{
/**
* @var \DibiConnection
*/
public $db;
...
public function __construct(\DibiConnection $db)
{
$this->db = $db;
}
public function findForHomepage()
{
return $this->db->select(...);
}
...
a config.neon
services:
- ArticleManager
pokud je to pro tebe novinka, prosim mrkni se na pripravovany dokument do dokumentace, pomuze jakakoli reakce. Neni to sice na Dibi, ale princip je stejny. https://docs.google.com/…pDMqNiM/edit?…