Skip to content

Commit 290a6b5

Browse files
authored
Merge pull request #10 from janpecha/pr/changes-3
Aktualizace
2 parents e0680f8 + 67f20ac commit 290a6b5

File tree

11 files changed

+398
-3
lines changed

11 files changed

+398
-3
lines changed

_includes/footer.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Lean Mapper, 2013-2016
1+
Lean Mapper, 2013-2017

cs/changelog.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,148 @@
22
title: Changelog
33
---
44

5+
## [3.1.1](https://github.com/Tharos/LeanMapper/tree/v3.1.1) (10. 7. 2016)
6+
7+
[Oznámení na GitHubu (anglicky)](https://github.com/Tharos/LeanMapper/releases/tag/v3.1.1)
8+
9+
* Nette DI rozšíření - opravena kompatibilita s Nette 2.4
10+
11+
* Známé chyby:
12+
[#97](https://github.com/Tharos/LeanMapper/pull/97)
13+
14+
Všechny změny lze vidět v tomto [diffu](https://github.com/Tharos/LeanMapper/compare/v3.1.0...v3.1.1?expand=1).
15+
16+
17+
## [3.1.0](https://github.com/Tharos/LeanMapper/tree/v3.1.0) (9. 5. 2016)
18+
19+
[Oznámení na GitHubu (anglicky)](https://github.com/Tharos/LeanMapper/releases/tag/v3.1.0)
20+
21+
* Opravena chyba [#85](https://github.com/Tharos/LeanMapper/issues/85)
22+
23+
* Vylepšeny chybové hlášky
24+
25+
* `Entity::get` vrací `null` pro nullable položky detachovaných entit
26+
27+
* `Entity::get` a `Entity::set` umožňuje přes `passThru` změnu datového typu (BC break)
28+
29+
* Nette DI rozšíření - opravena chyba [#95](https://github.com/Tharos/LeanMapper/pull/95)
30+
31+
* Vyžaduje PHP 5.4 nebo vyšší (BC break)
32+
33+
* Místo zastaralého balíčku `dg/dibi` vyžaduje `dibi/dibi`
34+
35+
* Známé chyby:
36+
[#97](https://github.com/Tharos/LeanMapper/pull/97)
37+
38+
Všechny změny lze vidět v tomto [diffu](https://github.com/Tharos/LeanMapper/compare/v3.0.0...v3.1.0?expand=1).
39+
40+
41+
## [3.0.0](https://github.com/Tharos/LeanMapper/tree/v3.0.0) (8. 3. 2016)
42+
43+
[Oznámení na GitHubu (anglicky)](https://github.com/Tharos/LeanMapper/releases/tag/v3.0.0)
44+
45+
* Vylepšen výkon
46+
47+
* Vyžaduje Dibi 3.x (BC break)
48+
49+
* Přidáno rozšíření pro Nette DI (obsahuje chybu [#95](https://github.com/Tharos/LeanMapper/pull/95))
50+
51+
* Přidána anotace `m:default` jako alternativa pro nastavení výchozí hodnoty property
52+
53+
* Přidána anotace `m:column` jako alternativa pro nastavení názvu sloupce
54+
55+
* Známé chyby:
56+
[#85](https://github.com/Tharos/LeanMapper/issues/85),
57+
[#95](https://github.com/Tharos/LeanMapper/pull/95),
58+
[#97](https://github.com/Tharos/LeanMapper/pull/97)
59+
60+
Všechny změny lze vidět v tomto [diffu](https://github.com/Tharos/LeanMapper/compare/v2.3.0...v3.0.0?expand=1).
61+
62+
63+
## [2.3.0](https://github.com/Tharos/LeanMapper/tree/v2.3.0) (9. 2. 2016)
64+
65+
* Přidána podpora pro `ResultProxy`
66+
67+
[Informace na GitHubu](https://github.com/Tharos/LeanMapper/issues/53#issuecomment-41611844)
68+
69+
* Zjednodušeno a vylepšeno rozhraní entity, kód z magických metod `Entity::__get` a `Entity::__set` přesunut do nových metod `Entity::get` a `Entity::set`
70+
71+
* Změněna viditelnost metody `Entity::mergeFilters` na `protected`
72+
73+
* Vylepšena metoda `Entity::__isset` ([commit](https://github.com/Tharos/LeanMapper/commit/b4a9dc7d99227d68721e4df23e3049d62c0a82dc))
74+
75+
* Vylepšen výkon
76+
77+
* Opravena chyba [#73](https://github.com/Tharos/LeanMapper/issues/73)
78+
79+
* Různá vylepšení a opravy
80+
81+
* Známé chyby:
82+
[#85](https://github.com/Tharos/LeanMapper/issues/85),
83+
[#97](https://github.com/Tharos/LeanMapper/pull/97)
84+
85+
Všechny změny lze vidět v tomto [diffu](https://github.com/Tharos/LeanMapper/compare/v2.2.0...v2.3.0?expand=1).
86+
87+
88+
## [2.2.0](https://github.com/Tharos/LeanMapper/tree/v2.2.0) (27. 4. 2014)
89+
90+
[Oznámení na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=22#p124335)
91+
92+
* Zachovávání kolekce ID ve Fluent
93+
94+
[Informace na GitHubu](https://github.com/Tharos/LeanMapper/issues/30)
95+
96+
* Nová metoda Connection::hasFilter
97+
98+
[Informace na GitHubu](https://github.com/Tharos/LeanMapper/pull/26)
99+
100+
* Nově se lze odkazovat na aliasy v SQL
101+
102+
[Informace na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=20#p119516)
103+
104+
* [„Preloading“](https://github.com/Tharos/LeanMapper/commit/f21c9f7898633ece4ac30fdc9b73f43824a6d09d), který umožňuje vznik [nadstavby zvané LQL](https://github.com/Tharos/LeanMapper/issues/46)
105+
106+
Všechny změny lze vidět v tomto [diffu](https://github.com/Tharos/LeanMapper/compare/v2.1.0...v2.2.0?expand=1).
107+
108+
109+
## [2.1.0](https://github.com/Tharos/LeanMapper/tree/v2.1.0) (13. 12. 2013)
110+
111+
[Oznámení na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=18#p115098)
112+
113+
* Přidáno rozhraní `IEntityFactory` včetně výchozí implementace `DefaultEntityFactory` (BC break)
114+
115+
[Informace na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=15#p113095)
116+
117+
* Zásadní zlepšení chybových hlášek
118+
119+
[Informace na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=15#p113095)
120+
121+
* Implicitní filtry
122+
123+
[Informace na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=16#p113453)
124+
125+
* Anonymní filtry
126+
127+
[Informace na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=16#p114029)
128+
129+
* Dekompozice `Entity::__get` a `Entity::__set`
130+
131+
[Informace na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=17#p114413)
132+
133+
* `Entity::createCollection` a `Repository::createCollection` přesunuto do `IEntityFactory::createCollection` (BC break)
134+
135+
[Informace na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=17#p114393)
136+
137+
* přidána podpora pro výchozí hodnoty (v anotaci) null a prázdný řetězec
138+
139+
[Informace na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=18#p114545)
140+
141+
* z vlastních getterů a setterů se lze nově odkazovat na `__get` a `__set`
142+
143+
[Informace na fóru](https://forum.dibiphp.com/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=18#p115096)
144+
145+
Všechny změny lze vidět v tomto [diffu](https://github.com/Tharos/LeanMapper/compare/v2.0.1...v2.1.0?expand=1).
146+
5147

6148
## [2.0.1](https://github.com/Tharos/LeanMapper/tree/v2.0.1) (12. 9. 2013)
7149

cs/docs/entity-factory.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: EntityFactory
3+
---
4+
5+
EntityFactory je třída implementující rozhraní `LeanMapper\IEntityFactory`. Stará se o vytváření entit.
6+
7+
Výchozí implementací je třída `LeanMapper\DefaultEntityFactory`.
8+
9+
**Poznámka:** EntityFactory je dostupná až od verze [2.1.0](/cs/changelog/).
10+
11+
12+
[« Mapper](/cs/docs/mapper/) |

cs/docs/filtry.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ title: Filtry
66

77
Prozatím je k [dispozici mikrodokumentace](http://forum.nette.org/cs/14592-lean-mapper-tenke-orm-nad-dibi?p=3#p105447).
88

9-
[« Persistence](/cs/docs/persistence/) |
9+
[« Persistence](/cs/docs/persistence/) | [Mapper »](/cs/docs/mapper/)

cs/docs/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,8 @@ Pět kapitol příručky vás seznámí se všemy aspekty Lean Mapperu a pomohou
99
3. [Konvence](konvence/)
1010
4. [Persistence](persistence/)
1111
5. [Filtry](filtry/)
12+
6. [Mapper](mapper/)
13+
7. [EntityFactory](entity-factory/)
14+
8. [Integrace LeanMapperu do aplikace](integrace-do-aplikace/)
1215

1316
[Entity »](entity/) |

cs/docs/integrace-do-aplikace.md

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
---
2+
title: Integrace Lean Mapperu do aplikace
3+
---
4+
5+
* [Úvod](#page-title)
6+
* [Vytvoření připojení](#toc-pripojeni)
7+
* [Mapper](#toc-mapper)
8+
* [EntityFactory](#toc-entityfactory)
9+
* [Repositáře](#toc-repositare)
10+
* [Integrace do Nette](#toc-nette)
11+
* [DI rozšíření](#toc-nette-extension)
12+
* [Ruční definice](#toc-nette-config)
13+
* [Předání repositáře do presenteru](#toc-nette-presenter)
14+
15+
16+
## Vytvoření připojení {#toc-pripojeni}
17+
18+
Vytvoříme si objekt `LeanMapper\Connection` a předáme mu parametry potřebné pro připojení k databázi.
19+
20+
``` php?start_inline=1
21+
$connection = new LeanMapper\Connection(array(
22+
'driver' => 'mysqli',
23+
'host' => 'localhost',
24+
'username' => 'root',
25+
'password' => '***',
26+
'database' => 'mydatabase',
27+
));
28+
```
29+
30+
**Tip:** `LeanMapper\Connection` přebírá stejné parametry jako třída [`DibiConnection`](https://api.dibiphp.com/3.0/Dibi.Connection.html).
31+
32+
33+
## Mapper {#toc-mapper}
34+
35+
Dále potřebujeme objekt implementující [`LeanMapper\IMapper`](/cs/docs/mapper/). Lean Mapper nám poskytuje výchozí implementaci formou třídy `LeanMapper\DefaultMapper`.
36+
37+
``` php?start_inline=1
38+
$mapper = new LeanMapper\DefaultMapper;
39+
```
40+
41+
42+
## Entity factory {#toc-entityfactory}
43+
44+
A jako poslední věc vytvoříme objekt, který implementuje rozhraní [`LeanMapper\IEntityFactory`](/cs/docs/entity-factory). Lean Mapper nám opět podává pomocnou ruku prostřednictvím třídy `LeanMapper\DefaultEntityFactory`.
45+
46+
``` php?start_inline=1
47+
$entityFactory = new LeanMapper\DefaultEntityFactory;
48+
```
49+
50+
51+
## Repositáře {#toc-repositare}
52+
53+
Abychom mohli pracovat s [entitami](/cs/docs/entity/), potřebujeme k tomu [repositáře](/cs/docs/repositare/). Předpokládejme, že máme repositář napsaný, nyní ho jen vytvoříme a předáme mu potřebné závislosti.
54+
55+
``` php?start_inline=1
56+
$bookRepository = new Model\BookRepository($connection, $mapper, $entityFactory);
57+
```
58+
59+
A to je vše.
60+
61+
62+
## Integrace do Nette aplikace {#toc-nette}
63+
64+
Ještě si ukážeme, jak použít Lean Mapper v rámci aplikace napsané v [Nette](https://nette.org).
65+
66+
### DI rozšíření {#toc-nette-extension}
67+
68+
Doporučenou cestou je použití DI rozšíření. Do konfiguračního souboru aplikace (`config.neon`) si přidáme následující definici:
69+
70+
``` yaml
71+
extensions:
72+
leanmapper: LeanMapper\Bridges\Nette\DI\LeanMapperExtension
73+
74+
leanmapper:
75+
db:
76+
driver: mysqli
77+
host: localhost
78+
username: ...
79+
password: ...
80+
database: mydatabase
81+
82+
services:
83+
- Model\BookRepository
84+
```
85+
86+
**Poznámka:** *rozšíření je dostupné od verze **3.0**.*
87+
88+
### Ruční definice {#toc-nette-config}
89+
90+
Pokud nechceme, nebo nemůžeme použít předpřipravené DI rozšíření, můžeme jednotlivé *služby* definovat ručně. Do konfiguračního souboru aplikace (`config.neon`) si přídáme následující parametry a definice služeb:
91+
92+
``` yaml
93+
parameters:
94+
# údaje pro připojení k DB
95+
leanmapper:
96+
driver: mysqli
97+
host: localhost
98+
username: ...
99+
password: ...
100+
database: mydatabase
101+
102+
services:
103+
# registrace Lean Mapperu
104+
- LeanMapper\Connection(%leanmapper%)
105+
- LeanMapper\DefaultMapper
106+
- LeanMapper\DefaultEntityFactory
107+
108+
# registrace repositářů
109+
- Model\AuthorRepository
110+
- Model\BookRepository
111+
```
112+
113+
Repositářům nemusíme ručně předávat závislosti, o to se automaticky postará [auto-wiring](http://doc.nette.org/cs/2.4/configuring#toc-auto-wiring) v Nette.
114+
115+
116+
### Předání repositáře do presenteru {#toc-nette-presenter}
117+
118+
Preferovaným způsobem je předání závislostí přes konstruktor.
119+
120+
``` php?start_inline=1
121+
class BookPresenter extends BasePresenter {
122+
/** @var \Model\BookRepository */
123+
private $bookRepository;
124+
125+
public function __construct(\Model\BookRepository $bookRepository)
126+
{
127+
$this->bookRepository = $bookRepository;
128+
}
129+
}
130+
```
131+
132+
133+
Alternativně lze pro předání repositáře do presenteru můžeme využít anotaci [`@inject`](https://doc.nette.org/cs/2.4/presenters#toc-pouziti-modelovych-trid).
134+
135+
``` php?start_inline=1
136+
class BookPresenter extends BasePresenter {
137+
/** @var \Model\BookRepository @inject */
138+
public $bookRepository;
139+
140+
...
141+
}
142+
```
143+
144+
V rámci presenteru pak máme repositář přístupný přes `$this->bookRepository`.
145+
146+
[« Mapper](/cs/docs/mapper/) |

cs/docs/mapper.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: Mapper
3+
---
4+
5+
Mapper je třída implementující rozhraní `LeanMapper\IMapper`. Mapper definuje výchozí [konvence](../konvence/) používané systémem. Jedná se např. o tvar názvu vazební tabulky, převod názvu entity na název tabulky, apod.
6+
7+
Výchozí implementací je třída `LeanMapper\DefaultMapper`.
8+
9+
**Poznámka:** Mapper je dostupný až od verze [2.0.0](/cs/changelog/). Ve starších verzích sloužily k částečnému ovlivnění konvencí metody `LeanMapper\Entity::getEntityClass` a `LeanMapper\Repository::getEntityClass`.
10+
11+
12+
## Související
13+
14+
* [CamelCase to under_score mapper](/cs/tutorials/camelcase-to-underscore-mapper/)
15+
16+
17+
[« Filtry](/cs/docs/filtry/) | [EntityFactory »](/cs/docs/entity-factory/)

cs/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ title: Dokumentace
99
3. [Konvence](/cs/docs/konvence/)
1010
4. [Persistence](/cs/docs/persistence/)
1111
5. [Filtry](/cs/docs/filtry/)
12+
6. [Mapper](/cs/docs/mapper/)
13+
7. [EntityFactory](/cs/docs/entity-factory/)
14+
8. [Integrace LeanMapperu do aplikace](/cs/docs/integrace-do-aplikace/)
15+
* [Ukázky použití a zajímavá řešení](/cs/tutorials/)
1216
* [Changelog](/cs/changelog/)
1317
* [Download](/cs/download/)
1418
* [Rozšíření, addony](/cs/rozsireni/)

0 commit comments

Comments
 (0)