Stažení sandboxu Nette

Rudolf Svátek 2017-08-16 15:07

Frameworky jsou bezva a Nette ještě víc :-). Stáhnout si předpřipravenou webovou aplikaci je hračka:

composer create-project nette/sandbox passwords

Tím se ti stáhne celý sandbox s Nette frameworkem a už je i celkem připravený na práci. Já jsem si pojmenoval složku, do které se má stáhnout jako "passwords".

Nebo je možné si stáhnout přímo zip soubor:

https://github.com/nette/nette/releases/download/v2.4.0/Nette-2.4-20170714.zip

V současné době používám aktuální verzi 2.4. Pokud sis stáhnul ten zip soubor, najdeš v něm složku "sandbox". Její obsah stačí zkopírovat na svůj server a provést pár úprav a nastavení. Já ale preferuji composer - má spousty výhod a není důvod jej nepoužívat.

Připojení k databázi

Najdi soubor app\config\config.local.neon a uprav jej tak, aby ses mohl připojit k databázi, kteou jsme vytvářeli minule. Třeba já mám konfiguraci takto:

parameters:
    database:
        host: localhost
        username: root
        password:
        database: passwords
        lazy: true

Nette má modul "database", ale já si oblíbil Dibi. Proto jsem upravil i soubor \app\config\config.neon tak, aby se Dibi mohlo používat:

services:
    database: Dibi\Connection(%database%, "mysqli")
    database.panel: Dibi\Bridges\Tracy\Panel

    tracy.bar:
        setup:
            - @database.panel::register(@database)

Tohle by teď způsobilo chybu, jelikož Dibi ještě nemáme nainstalovanou. Ale to napravíme hned v dalším kroku

Instalace balíčků

Naše aplikace bude potřebovat nějaký data grid a taky tu Dibi. Jako datagrid jsem volil Ublaboo. Stačí do souboru composer.json doplnit 2 řádky:

	"require": {
		"dibi/dibi": "^3.0",
		"ublaboo/datagrid": "^5.2"
	},

pokud chceš, můžeš odstranit řádek s tou nette database. Jedním příkazem pak aktualizujeme balíčky:

composer update

Tak a tím máme staženo vše, co potřebujeme. Jenže jsme se zbavili nette\database a tak musíme ještě udělat drobné změny. Sandbox totiž již obsahuje modely, které s ní pracovaly a tak je naučíme pracovat s Dibi.

Přechod na Dibi

Najdi soubor \app\model\UserManager.php. Ten je zodpovědný za přihlašování uživatelů. Odborník promine, že používám tak jednoduché výrazy. Vím, že je to autentikace, ale nám je to vcelku jedno :-).

V první řadě změníme konstruktor:

    /** @var \Dibi\Connection */
    private $database;

    /**
     * UserManager constructor.
     *
     * @param \Dibi\Connection $database
     */
    public function __construct(\Dibi\Connection $database)
    {
        $this->database = $database;
    }

Uvnitř metody authenticate je řádek:

$row = $this->database->table(self::TABLE_NAME)->where(self::COLUMN_NAME, $username)->fetch();

Ten změníme na:

$row = $this->database->select('*')
            ->from(self::TABLE_NAME)
            ->where(self::COLUMN_NAME . ' = %s', $username)->fetch();

Ještě změníme metodu add, aby také pracovala s Dibi:

    /**
     * Adds new user.
     *
     * @param string $username
     * @param string $email
     * @param string $password
     *
     * @return void
     * @throws \App\Model\DuplicateNameException
     */
    public function add($username, $email, $password)
    {
        try {
            $this->database->insert(self::TABLE_NAME, [
                self::COLUMN_NAME => $username,
                self::COLUMN_PASSWORD_HASH => Passwords::hash($password),
                self::COLUMN_EMAIL => $email,
            ])->execute();
        } catch (\Dibi\UniqueConstraintViolationException $e) {
            throw new DuplicateNameException;
        }
    }

Díky těmto změnám můžeme přidat uživatele. Jdi do složky \bin\ a pusť příkazový řádek. Do něj zapiš:

php create-user.php admin admin@centrum.cz password

Tím vznikne uživatel "admin" s mailem "admin@centrum.cz" a heslem "password". Je samozřejmě lepší volit vlastní emailovou adresu a také bezpečnější login a hlavně heslo.

A to úplně stačí. V tuto chvíli bys měl po zadání adresy http://localhost/passwords/www/ vidět svou aplikaci.

Příště zamakáme na modelech pro výběr dat z databáze.

Redakční systém RS::RS Předchozí kapitola

Návrh databáze

Redakční systém RS::RS Celý seriál

Aplikace na správu hesel

Redakční systém RS::RS Následující kapitola

Modely pro práci s databází

Komentáře (0)

Přidej svůj komentář

O mně

Jmenuji se Rudolf Svátek. Jsem lektor výpočetní techniky a PHP programátor. Stavím firemní stránky a eshopy. Aby se mi to dělalo pohodlně, vytvořil jsem redakční systém RS::RS, který ti tu nabízím k použití.

Rychlý kontakt na mně

  • Rudolf Svátek
  • Telefon:
    +420 777 828 353
  • Email:
  • Adresa:
    Josefa Hory 1097/5
    736 01 Havířov
    ČR



Tyto stránky používají Cookies. Používáním stránek s tím souhlasíte Další informace