Skip to content

Commit

Permalink
Docs: page "API" is hidden
Browse files Browse the repository at this point in the history
  • Loading branch information
janpecha committed Jun 9, 2023
1 parent 0e61625 commit ed65f4b
Show file tree
Hide file tree
Showing 8 changed files with 9 additions and 11 deletions.
4 changes: 4 additions & 0 deletions _includes/navigation.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@

<ul class="contextMenu__items">
{%- for entry in entries %}
{%- if entry.hidden %}
{%- continue %}
{%- endif %}

{%- assign entrySlugs = entry.url | split: "/" %}
{%- assign entrySlugsCount = entrySlugs.size | minus: 1 %}
{%- assign entrySlugs = entrySlugs | slice: 0, entrySlugsCount %}
Expand Down
1 change: 1 addition & 0 deletions cs/api.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: API dokumentace
hidden: true
rank: 80
---

Expand Down
4 changes: 2 additions & 2 deletions cs/docs/persistence.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Odstraní z databáze knihu s ID 1 a v zápětí vloží novou knihu se stejným

Určitě se podívejte na implementaci metody `persist($entity)` v abstraktní třídě `LeanMapper\Repository`. Mechanismus persistence je z ní dobře patrný.

[Entita](https://apidoc.intm.org/tharos/leanmapper/master/class-LeanMapper.Entity.html) vychází repositáři vstříc svými metodami `isModified()`, `isDetached()`, `detach()`, `getModifiedRowData()`, `attach($id)`, `markAsUpdated()` a `makeAlive($entityFactory, $connection, $mapper)`. Metoda `isModified()` vrací informaci, zda byla data v entitě od okamžiku jejího vytvoření pozměněná, `isDetached()` vrací informaci, zda se jedná o nově vytvořenou entitu nebo v databázi již existující, `detach()` umožňuje prohlásit entitu za nově vytvořenou, `getModifiedRowData()` vrací pole pozměněných hodnot (ve formátu položka => pozměněná hodnota), `attach($id)` slouží ke změnu stavu entity z nově vytvořené na již uloženou, `markAsUpdated()` označí entitu za nepozměněnou a konečně `makeAlive($entityFactory, $connection, $mapper)` poskytuje entitě závislosti, které potřebuje, aby si mohla sama načítat entity, ke kterým má nadefinovanou vazbu.
[Entita](/cs/docs/entity/) vychází repositáři vstříc svými metodami `isModified()`, `isDetached()`, `detach()`, `getModifiedRowData()`, `attach($id)`, `markAsUpdated()` a `makeAlive($entityFactory, $connection, $mapper)`. Metoda `isModified()` vrací informaci, zda byla data v entitě od okamžiku jejího vytvoření pozměněná, `isDetached()` vrací informaci, zda se jedná o nově vytvořenou entitu nebo v databázi již existující, `detach()` umožňuje prohlásit entitu za nově vytvořenou, `getModifiedRowData()` vrací pole pozměněných hodnot (ve formátu položka => pozměněná hodnota), `attach($id)` slouží ke změnu stavu entity z nově vytvořené na již uloženou, `markAsUpdated()` označí entitu za nepozměněnou a konečně `makeAlive($entityFactory, $connection, $mapper)` poskytuje entitě závislosti, které potřebuje, aby si mohla sama načítat entity, ke kterým má nadefinovanou vazbu.

Všimněte si parametru, který přijímá metoda `attach($id)` . ID záznamu v databázi zná bezprostředně po jeho vytvoření pouze repositář a tímto způsobem ho sděluje entitě.

Expand All @@ -142,7 +142,7 @@ echo $author->name;

Franta? Nebo snad něco jiného?

Vypíše Franta. Jak byste asi očekávali. ;) Důvodem je to, že ačkoliv první a druhá instance `Model\Entity\Author` skutečně nejsou ekvivalentní, obě operují nad stejnou instancí [`LeanMapper\Result`](https://apidoc.intm.org/tharos/leanmapper/master/class-LeanMapper.Result.html), která zapouzdřuje vlastní data. Chování Lean Mapperu se v podobných situacích snaží být maximálně intuitivní a transparentní.
Vypíše Franta. Jak byste asi očekávali. ;) Důvodem je to, že ačkoliv první a druhá instance `Model\Entity\Author` skutečně nejsou ekvivalentní, obě operují nad stejnou instancí `LeanMapper\Result`, která zapouzdřuje vlastní data. Chování Lean Mapperu se v podobných situacích snaží být maximálně intuitivní a transparentní.

Dobrá rada na závěr: nikdy neuchovávejte žádné hodnoty entity přímo v entitě, ale vždy je deleguje až do `LeanMapper\Result` (typicky pomocí třídy `LeanMapper\Row`, jejíž instance je přítomná v každé entitě).

Expand Down
2 changes: 1 addition & 1 deletion cs/docs/repositare.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ rank: 20
* [Metoda getTable()](#toc-metody)


Repositáře typicky (nikoliv ale nezbytně) reprezentují potomci abstraktní třídy [`LeanMapper\Repository`](https://apidoc.intm.org/tharos/leanmapper/master/class-LeanMapper.Repository.html). Ta obsahuje pouze výchozí implementaci metod pro persistenci a odstranění entity a několik pomocných protected metod usnadňujících definici konkrétních repositářů.
Repositáře typicky (nikoliv ale nezbytně) reprezentují potomci abstraktní třídy `LeanMapper\Repository`. Ta obsahuje pouze výchozí implementaci metod pro persistenci a odstranění entity a několik pomocných protected metod usnadňujících definici konkrétních repositářů.

Význam repositářů je následující: v souladu s návrhovým vzorem Data mapper, kterým je Lean Mapper silně inspirován, se entity bez cizí pomoci neumějí načítat ani persistovat (tj. ukládat se do databáze nebo se z ní mazat). K tomu jsou zapotřebí repositáře. Repositáře mají za úkol načítat entity z databáze a pokud se nějaká entita v průběhu svého života změní, mají za úkol umožnit uložení těchto změn do databáze. Zodpovědností repositářů je také entity trvale odstraňovat a vytvářet zbrusu nové.

Expand Down
5 changes: 0 additions & 5 deletions cs/download.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,3 @@ composer require tharos/leanmapper
Zdrojový kód je dostupný pod MIT licencí na server [GitHub.com](https://github.com/tharos/leanmapper).

* [Vývojová verze (ZIP)](https://github.com/Tharos/LeanMapper/archive/develop.zip)


## [API dokumentace](/cs/api/)

Online API dokumentace k jednotlivým verzím je dostupná na stránce [API dokumentace](/cs/api/).
1 change: 0 additions & 1 deletion cs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,4 @@ redirect_from: "/dokumentace/"

* [Download](/cs/download/)
* [Changelog](/cs/changelog/)
* [API dokumentace](/cs/api/)
* [Podpořte vývoj](/cs/donate/)
2 changes: 1 addition & 1 deletion cs/quick-start/kapitola-4.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ class TagRepository extends Repository

To je vše. S touto šesticí tříd si v našem quick startu bohatě vystačíme.

Abstraktní třída [`LeanMapper\Repository`](https://apidoc.intm.org/tharos/leanmapper/master/class-LeanMapper.Repository.html) obsahuje řadu užitečných metod, které nám ve většině případů vyřeší vytváření, persistenci a odstraňování entit. Načítání entit ale Lean Mapper v této abstraktní třídě záměrně neřeší, protože požadavky na něj bývají různé. Nicméně obsahuje alespoň podpůrné metody, které lze ve vlastních metodách pro načítání entit výhodně využít.
Abstraktní třída `LeanMapper\Repository` obsahuje řadu užitečných metod, které nám ve většině případů vyřeší vytváření, persistenci a odstraňování entit. Načítání entit ale Lean Mapper v této abstraktní třídě záměrně neřeší, protože požadavky na něj bývají různé. Nicméně obsahuje alespoň podpůrné metody, které lze ve vlastních metodách pro načítání entit výhodně využít.

Určitě nepřehlédněte [část dokumentace věnovanou repositářím](/cs/docs/repositare).

Expand Down
1 change: 0 additions & 1 deletion index.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,3 @@ active: home

1. Přečtete si [quick start](/cs/quick-start/)
2. Podle potřeby nastudujte [podrobnou dokumentaci](/cs/)
3. Nepřehlédněte [dokumentaci API](/cs/api/)

0 comments on commit ed65f4b

Please sign in to comment.