Virtuální azyl je tady! První RC verze je spuštěna!

Virtuální azyl je tady! První RC verze je spuštěna!

A je to tady! Po spoustě práce, testování a ladění jsme se dostali k první RC verzi Virtuálního azylu. To znamená, že již máme funkční základ a můžeme to rozjet naplno! Co všechno už teď Virtuální azyl umí a jak to může pomoci azylům, útulkům i adoptujícím? Pojďme se na to podívat!

Co Virtuální azyl umí?

1. Snadné nabídky zvířat k adopci

Azyly a útulky zde mohou jednoduše nabízet zvířata k adopci, virtuální adopci nebo do dočasné péče. Kdokoliv tak může najít svého budoucího chlupatého (nebo jinak osrstěného, opeřeného či šupinatého) kamaráda!

2. Automatizace administrativy pro azyly

Azyly mají spoustu práce nejen se záchrannou zvířat, ale také s papírováním. Virtuální azyl jim generuje smlouvy, archivuje dokumenty a eviduje adopce, takže se mohou soustředit hlavně na pomoc zvířatům.

3. Sbírky na pomoc zvířatům

Chcete podpořit azyl? Teď to jde ještě snadněji! Virtuální azyl umožňuje vytvářet sbírky na výbavu, seno, krmivo nebo další potřeby pro zvířata, aby dostala tu nejlepší možnou péči.

4. Adopce bez hranic

Nemusíte hledat jen ve svém okolí – díky Virtuálnímu azylu můžete najít oblíbené zvíře i z druhého konce republiky a pomoci tam, kde je to nejpotřebnější.

Co bude dál?

První RC verze je jen začátek! Počítáme s dalším rozvojem a dalšími verzemi, ve kterých budeme ladit design, opravovat chybky a hlavně přidávat nové funkce.

Mezi plánované novinky patří:

  • Hledaná zvířata – možnost vytvořit inzerát pro ztracená zvířata.
  • Poptávky – azyly budou moci zadat, jaká zvířata jsou schopny přijmout.
  • Vlastní informační stránky pro azyly – každý azyl si bude moci snadno vytvořit svou prezentaci.
  • Automatický tisk plakátů – možnost vygenerovat a vytisknout plakát s hledaným zvířetem.

A to je jen začátek! Budeme rádi za jakoukoliv zpětnou vazbu a těšíme se, kam společně Virtuální azyl posuneme.

Děkujeme všem, kteří se na projektu podílejí, podporují ho nebo se chystají zapojit. Virtuální azyl je tady pro všechny, kteří chtějí pomáhat zvířatům – a společně to zvládneme!

Virtuální Azyl: Revoluce v adopci zvířat začíná

Beta verze spuštěna! (Hurá!!!) 😉

Rádi bychom vám představili náš nový projekt Virtuální Azyl, který vznikl s cílem propojit azylová centra, útulky a zájemce o adopci zvířat na jednom místě. Tento ambiciózní projekt přináší nový způsob, jak najít domov pro opuštěná zvířata a zároveň usnadnit adopční proces.

O projektu

Virtuální Azyl je platforma postavená na moderních technologiích, jako jsou PHP 8.3 (asi plná verze bude na 8.4), Nette framework, ORM Doctrine, Latte šablony a frontendové technologie Bootstrap a JQuery. Systém umožňuje:

  • Jednoduché vyhledávání zvířat k adopci.
  • Propojení jednotlivých útulků a azylů.
  • Vytváření profilů zájemců o adopci.
  • Transparentní a bezpečný proces komunikace.

Vývoj a současný stav

Projekt je aktuálně ve fázi beta verze, která je plně funkční, ale stále probíhá intenzivní vývoj. Spousta věcí se ještě tvoří, testuje a analyzuje. Každý den pracujeme na nových funkcionalitách, opravách chyb a optimalizaci systému. Mezi hlavní výzvy patří:

  • Vytváření efektivních a intuitivních funkcí.
  • Zajištění stability a bezpečnosti systému.
  • Testování s reálnými uživateli.

Budoucnost Virtuálního Azylu

Naší vizí je vytvořit platformu, která bude srozumitelná a dostupná jak útulkům, tak zájemcům o adopci. Pracujeme na implementaci dalších funkcí, jako je například zlepšené filtrování, správa adopčních procesů nebo integrace s dalšími systémy.

Pokud vás projekt zaujal, neváhejte nás kontaktovat nebo se zapojit do testování beta verze. Každá zpětná vazba nás posouvá blíže k cíli – spojit všechny útulky a azylová centra na jednom místě.

A na konec….

Virtuální Azyl není jen technický projekt; je to cesta, jak zlepšit život opuštěným zvířatům a propojit je s těmi, kteří jim chtějí dát nový domov. Děkujeme všem, kteří nám pomáhají na této cestě.

Vyzkoušejte beta verzi na beta.virtualniazyl.cz a dejte nám vědět, co si myslíte!

Co je SQL a proč je tak důležité?

SQL (Structured Query Language) je jazyk určený pro komunikaci s databázemi. Umožňuje uživatelům ukládat, manipulovat a načítat data uložená v relačních databázích. SQL je standardizovaný jazyk, což znamená, že jeho základní syntax je univerzální a podporují ji různé systémy pro správu databází (DBMS) jako MySQL, PostgreSQL nebo SQLite.

Základní principy SQL

SQL pracuje s tabulkami, které jsou organizovány do sloupců a řádků. Sloupce určují typy dat (například jméno, věk, email), zatímco řádky představují jednotlivé záznamy.

Například tabulka produkty:

idnazevcena
1Notebook20000
2Mobilní telefon15000
3Tablet10000

Základní SQL příkazy

  1. SELECT: Načítání dat z tabulky:
SELECT * FROM produkty;

Tento příkaz vrátí všechny sloupce a řádky z tabulky produkty.

  1. INSERT: Vložení nového záznamu:
INSERT INTO produkty (nazev, cena) VALUES ('Monitor', 5000);
  1. UPDATE: Aktualizace stávajícího záznamu:
UPDATE produkty SET cena = 18000 WHERE id = 1;
  1. DELETE: Smazání záznamu:
DELETE FROM produkty WHERE id = 3;
  1. WHERE: Filtrování výsledků:
SELECT * FROM produkty WHERE cena > 10000;

SQL v kontextu relačních databází

Relační databáze organizují data do tabulek, které mohou být propojeny relacemi. SQL umožňuje spojovat tyto tabulky pomocí příkazů jako JOIN. Například:

Tabulka zakaznici:

idjmeno
1Josef
2Anna

Tabulka objednavky:

idprodukt_idzakaznik_id
121
212

SQL dotaz na získání všech objednávek s informacemi o zákaznících:

SELECT zakaznici.jmeno, produkty.nazev
FROM objednavky
JOIN zakaznici ON objednavky.zakaznik_id = zakaznici.id
JOIN produkty ON objednavky.produkt_id = produkty.id;

Výsledek:

jmenonazev
JosefMobilní telefon
AnnaNotebook

Proč se učit SQL?

  1. Univerzálnost: SQL je standardní jazyk pro práci s databázemi, ať už jde o malé projekty nebo rozsáhlé aplikace.
  2. Efektivita: SQL umožňuje rychlé a přesné zpracování dat.
  3. Široké využití: SQL je základní dovednost pro datové analytiky, vývojáře i administrátory databází.

Příklad použití SQL v reálném projektu

Představte si e-shop, kde jsou produkty a uživatelé uloženi v databázi. Pomocí SQL můžete získat přehled o tom, kteří uživatelé nakoupili konkrétní produkty.

Příklad:

<?php
$query = "SELECT zakaznici.jmeno, produkty.nazev
          FROM objednavky
          JOIN zakaznici ON objednavky.zakaznik_id = zakaznici.id
          JOIN produkty ON objednavky.produkt_id = produkty.id";
$result = $pdo->query($query);

foreach ($result as $row) {
    echo $row['jmeno'] . " nakoupil: " . $row['nazev'] . "<br>";
}

Výstup:

Josef nakoupil: Mobilní telefon
Anna nakoupila: Notebook

Výhody a nevýhody SQL

Výhody:

  • Jednoduchost a čitelnost.
  • Standardizovaný jazyk podporovaný většinou DBMS.
  • Výkonnost pro dotazy na velké množství dat.

Nevýhody:

  • Složitější úpravy při změnách struktury databáze.
  • Omezené možnosti práce s nestrukturovanými daty.

Jak začít s SQL?

  1. Zvolte DBMS: Vyberte si systém jako MySQL, PostgreSQL nebo SQLite.
  2. Naučte se základy: Začněte se základními příkazy jako SELECT, INSERT, UPDATE, DELETE.
  3. Vyzkoušejte nástroje: Použijte rozhraní jako phpMyAdmin nebo příkazovou řádku.
  4. Praktikujte: Experimentujte s reálnými scénáři a daty.

SQL je nepostradatelným nástrojem pro každého, kdo pracuje s daty. Díky své jednoduchosti a univerzálnosti zůstává jedním z nejdůležitějších jazyků v oblasti databází.

Co je MySQL a proč je tak oblíbená?

MySQL je jedním z nejpopulárnějších systémů pro správu relačních databází na světě. Byla vytvořena v roce 1995 švédskou společností MySQL AB a dnes je vlastněna společností Oracle Corporation. MySQL je open-source software, což znamená, že je zdarma dostupná, a zároveň existuje komerční verze s pokročilými funkcemi.

Jak MySQL funguje?

MySQL je systém správy relačních databází (RDBMS), což znamená, že ukládá data do tabulek spojených vzájemnými relacemi. Data jsou organizována tak, aby byla snadno přístupná a spravovatelná pomocí jazyka SQL (Structured Query Language).

Například tabulka uzivatele může vypadat takto:

idjmenoemail
1Josefjosef@email.cz
2Annaanna@email.cz

SQL dotazy vám umožňují data do této tabulky vkládat, číst, upravovat nebo mazat.

Proč používat MySQL?

  1. Výkon: MySQL je optimalizována pro rychlost a efektivitu, což ji činí ideální pro webové aplikace.
  2. Snadná integrace: Dobře spolupracuje s PHP a dalšími programovacími jazyky.
  3. Škálovatelnost: Lze ji používat pro malé projekty i pro rozsáhlé aplikace.
  4. Podpora komunity: Díky své popularitě má MySQL rozsáhlou komunitu, která poskytuje podporu a sdílí nástroje.

Jak se připojit k MySQL z PHP

Připojení k MySQL z PHP je jednoduché díky rozhraní PDO (PHP Data Objects). Ukázkový kód vypadá takto:

<?php
try {
    $dsn = 'mysql:host=localhost;dbname=mojedb';
    $username = 'root';
    $password = '';

    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "Připojení úspěšné!";
} catch (PDOException $e) {
    echo "Chyba připojení: " . $e->getMessage();
}
?>

Základní SQL dotazy

  1. Vložení dat:
INSERT INTO uzivatele (jmeno, email) VALUES ('Petr', 'petr@email.cz');
  1. Získání dat:
SELECT * FROM uzivatele;
  1. Aktualizace dat:
UPDATE uzivatele SET email = 'novy@email.cz' WHERE id = 1;
  1. Smazání dat:
DELETE FROM uzivatele WHERE id = 2;

Příklad použití MySQL v reálném projektu

Představme si, že vytváříte jednoduchou webovou aplikaci, kde si uživatelé mohou vytvořit účet. Po registraci jejich data uložíte do databáze a při přihlášení je ověříte.

Registrace:

<?php
$stmt = $pdo->prepare('INSERT INTO uzivatele (jmeno, email) VALUES (?, ?)');
$stmt->execute(['Karel', 'karel@email.cz']);

Přihlášení:

<?php
$stmt = $pdo->prepare('SELECT * FROM uzivatele WHERE email = ?');
$stmt->execute(['karel@email.cz']);
$user = $stmt->fetch();
if ($user) {
    echo "Uživatel nalezen: " . $user['jmeno'];
} else {
    echo "Uživatel neexistuje.";
}

Výhody a nevýhody MySQL

Výhody:

  • Rychlost a spolehlivost.
  • Snadná integrace s programovacími jazyky.
  • Široká podpora komunitou.
  • Open-source s možností komerčního využití.

Nevýhody:

  • Omezení při práci s velmi komplexními dotazy nebo pokročilými funkcemi.
    Nevyžaduje transakce, které jsou například v PostgreSql nutností.

Jak začít s MySQL

  1. Instalace: Nainstalujte MySQL server (např. pomocí XAMPP, WAMP nebo Dockeru).
  2. Správa: Použijte nástroje jako phpMyAdmin nebo MySQL Workbench pro správu databází.
  3. Základy SQL: Naučte se základní příkazy SQL, jako jsou SELECT, INSERT, UPDATE a DELETE.
  4. Integrace: Vyzkoušejte připojení MySQL s vaší aplikací v PHP nebo jiném jazyce.

MySQL je silný nástroj pro správu databází, který zůstává oblíbenou volbou jak pro malé projekty, tak pro rozsáhlé aplikace. Díky své jednoduchosti a výkonu je skvělým výchozím bodem pro každého vývojáře.

Co je ORM a proč ho používat?

Object-Relational Mapping (ORM) je technika, která usnadňuje práci s databázemi. Pomocí ORM můžete manipulovat s databázovými daty jako s objekty, což zjednodušuje kód a činí jej přehlednějším.

Doctrine ORM

Doctrine je populární ORM nástroj pro PHP. Poskytuje robustní nástroje pro mapování entit na databázové tabulky a podporuje pokročilé funkce, jako jsou vztahy mezi tabulkami nebo lazy loading.

Ukázka práce s Doctrine:

Definice entity:

/**
 * @Entity
 * @Table(name="products")
 */
class Product
{
    /** @Id @Column(type="integer") @GeneratedValue */
    private $id;

    /** @Column(type="string") */
    private $name;

    /** @Column(type="decimal", scale=2) */
    private $price;

    // Gettery a settery
}

Dotaz na data:

$product = $entityManager->find(Product::class, 1);
echo $product->getName();

Nextras ORM

Nextras ORM je česká alternativa k Doctrine, která se zaměřuje na jednoduchost a rychlost. Je vhodná pro projekty v Nette frameworku.

Ukázka práce s Nextras ORM:

Definice entity:

/**
 * @property int    $id    {primary}
 * @property string $name
 * @property float  $price
 */
class Product extends \Nextras\Orm\Entity\Entity
{
}

Definice repository:

class ProductRepository extends \Nextras\Orm\Repository\Repository
{
    public static function getEntityClassNames(): array
    {
        return [Product::class];
    }
}

Dotaz na data:

$product = $productRepository->getById(1);
echo $product->name;

Výhody ORM

  1. Zjednodušení: Práce s databází pomocí objektů místo SQL dotazů.
  2. Bezpečnost: Ochrana proti SQL injection.
  3. Údržba: Kód je přehlednější a snadno rozšiřitelný.

ORM nástroje, jako Doctrine nebo Nextras ORM, jsou neocenitelnými pomocníky při práci s databázemi v moderních aplikacích.

Co je to ORM? Jak ho použítvat a jaké jsou jeho výhody

Co je to ORM? Jak ho použítvat a jaké jsou jeho výhody

Objektově relační mapování (ORM) je technika používaná k propojení relačních databází s objektově orientovanými programovacími jazyky. V PHP se ORM nástroje, jako například Doctrine, Propel nebo Eloquent, staly nedílnou součástí moderního vývoje aplikací. Tento článek poskytne přehled o tom, co ORM znamená, jaké výhody a nevýhody nabízí, a srovná některé z nejpopulárnějších ORM knihoven v PHP.


Co je ORM?

ORM umožňuje vývojářům pracovat s databázemi prostřednictvím objektů namísto přímého psaní SQL dotazů. Mapuje tabulky a sloupce v databázi na třídy a vlastnosti v kódu, čímž zjednodušuje interakci mezi aplikací a databází.

Výhody ORM:

  1. Abstrakce od SQL: Vývojáři nemusí psát složité SQL dotazy.
  2. Zvýšená produktivita: ORM zrychluje vývoj díky automatizaci opakujících se úkolů.
  3. Portabilita: ORM umožňuje snadno přenášet aplikaci mezi různými databázovými systémy.
  4. Bezpečnost: Pomáhá předcházet útokům, jako je SQL injection.

Nevýhody ORM:

  1. Výkon: ORM může být pomalejší než ručně psané SQL dotazy.
  2. Složitost: Pro složitější dotazy může být ORM méně intuitivní.
  3. Náročnost na zdroje: ORM knihovny mohou být těžkopádné, pokud nejsou správně optimalizovány.

Doctrine ORM

Doctrine je jedním z nejpopulárnějších ORM nástrojů v PHP. Nabízí pokročilé funkce a flexibilitu, díky čemuž je oblíbený v komunitě vývojářů.

Klíčové vlastnosti Doctrine:

  1. Entity Manager: Slouží jako hlavní brána pro práci s databází.
  2. Podpora pokročilých vazeb: Doctrine zvládá složité relace mezi tabulkami, jako jsou mnoha na mnoho (many-to-many).
  3. Přenositelnost: Doctrine podporuje více databázových platforem.
  4. Query Builder: Poskytuje výkonný nástroj pro vytváření dynamických dotazů.

Doctrine je populární ORM nástroj pro PHP. Poskytuje robustní nástroje pro mapování entit na databázové tabulky a podporuje pokročilé funkce, jako jsou vztahy mezi tabulkami nebo lazy loading.

Ukázka práce s Doctrine – definice pro moderní verze PHP(7,8):

use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity]
#[ORM\Table(name: "products")]
class Product
{
    #[ORM\Id]
    #[ORM\GeneratedValue]
    #[ORM\Column(type: "integer")]
    private int $id;

    #[ORM\Column(type: "string")]
    private string $name;

    #[ORM\Column(type: "decimal", precision: 10, scale: 2)]
    private float $price;

    // Gettery a settery
}

Dotaz na data:

$product = $entityManager->find(Product::class, 1);
echo $product->getName();

Starší verze zápisu:

/** @Entity */
class User {
    /** @Id @GeneratedValue @Column(type="integer") */
    private $id;

    /** @Column(type="string") */
    private $name;

    public function getId() {
        return $this->id;
    }

    public function getName() {
        return $this->name;
    }

    public function setName($name) {
        $this->name = $name;
    }
}

// Použití Entity Manageru
$user = new User();
$user->setName('John Doe');
$entityManager->persist($user);
$entityManager->flush();

Další populární ORM knihovny

Propel ORM

Propel je další známý ORM nástroj, který nabízí lehčí alternativu k Doctrine. Je vhodný pro menší projekty nebo tam, kde je důležitá jednoduchost.

Výhody Propelu:

  • Snadná konfigurace a použití.
  • Podpora automatické generace tříd z existující databáze.
  • Menší nároky na výkon.

Nevýhody:

  • Méně funkcí ve srovnání s Doctrine.
  • Slabší komunita a podpora.

Eloquent ORM

Eloquent je ORM knihovna používaná v rámci Laravel frameworku. Je známá svou jednoduchostí a intuitivním API.

Výhody Eloquentu:

  • Silná integrace s Laravelem.
  • Snadná práce s relačními daty pomocí metod jako hasOne, belongsTo.
  • Podpora lazy loadingu.

Nevýhody:

  • Závislost na Laravelu.
  • Méně vhodný pro projekty mimo Laravel ekosystém.

Srovnání

VlastnostDoctrinePropelEloquent
FlexibilitaVysokáStředníStřední
VýkonPrůměrnýLepšíDobrý
Komunita a podporaSilnáSlabšíVelmi silná
JednoduchostNáročnějšíJednoducháVelmi snadná
Podpora vazebPokročiláZákladníPokročilá

Kdy použít Doctrine a kdy jinou knihovnu?

  • Doctrine: Ideální pro komplexní aplikace, kde je potřeba pokročilá práce s relačními daty.
  • Propel: Vhodný pro menší projekty nebo tam, kde je důležitá jednoduchost.
  • Eloquent: Nejlepší volba, pokud používáte Laravel framework.

Závěr

Výběr správného ORM závisí na konkrétních požadavcích projektu. Doctrine nabízí maximální flexibilitu a pokročilé funkce, ale může být náročné na učení. Propel poskytuje jednoduchost a výkon pro menší projekty, zatímco Eloquent je perfektní pro ty, kdo se pohybují v ekosystému Laravel. Bez ohledu na to, který nástroj si zvolíte, ORM vám umožní efektivněji pracovat s databázemi a soustředit se více na logiku aplikace.