Aktuálně funkční návod na doctrine v nette (září 2023)
- elx
- Člen | 2
Ahoj,
dříve jsem doctrine v nette nepoužíval, chtěl bych to poprvé zkusit.
Existuje prosím někde aktuální funkční návod / postup jak to v nette
zprovoznit?
Zkoušel jsem toto:
https://contributte.org/…ine-orm.html
ale podle toho návodu to nejde nainstalovat.
Konkrétně:
Vytvořím web-project
composer create-project nette/web-projec
t
A dále postupuju krok po kroku podle návodu, tedy:
OK – composer require nettrine/orm
OK – composer require nettrine/dbal
CHYBA – composer require nettrine/cache
Problem 1
– Root composer.json requires nettrine/cache ^0.4.1, found
nettrine/cache[v0.4.1] but these were not loaded, likely because it conflicts
with another require.
Problem 2
– nettrine/orm is locked to version v0.8.4 and an update of this package
was not requested.
– nettrine/orm v0.8.4 requires nettrine/cache ^0.3.0 || ^0.4.0 → found
nettrine/cache[v0.3.0, v0.4.0, v0.4.1] but these were not loaded, likely because
it conflicts with another require.
Problem 3
– nettrine/dbal is locked to version v0.8.2 and an update of this package
was not requested.
– nettrine/dbal v0.8.2 requires nettrine/cache ^0.3.0 → found
nettrine/cache[v0.3.0] but it conflicts with your root composer.json require
(^0.4.1).
Nabízí to „řešení“
composer require nettrine/cache:*
Takže jsem to udělal, nicméně zdá se, že se nic nestalo a zůstala tam
původní verze. Asi ok?
Dále tedy zaregistruju do configu
extensions:
nettrine.orm: Nettrine\ORM\DI\OrmExtension
nettrine.orm.cache: Nettrine\ORM\DI\OrmCacheExtension
nettrine.dbal: Nettrine\DBAL\DI\DbalExtension
A skončím chybou a ať už zkouším cokoli, nerozjede se to.
Service of type Doctrine\DBAL\Connection not found.
V tom „návodu“ taky vůbec není nic uvedeno o tom, že by se to mělo připojit k nějaké databázi – host, login, heslo, driver, apod…
Některé parametry do konfigurace connection jsem si vyzobal tady
z doctrine-skeleton: https://github.com/…ine-skeleton,
přes tu chybu jsem se ale nedostal.
Nechci použít celý ten skeleton, je tam spousta balíčků, které ani nevím
k čemu jsou, potřeboval bych jen doctrine s migracema a asi anotations..
Editoval elx (6. 9. 2023 11:55)
- Lumeriol
- Generous Backer | 58
Ahoj,
problém je, že se řídíš pouze návodem pro Nettrine/Orm, ale už nikoliv návodem pro Nettrine/Dbal, který chceš také použít. Orm je nadstavba pro Dbal a v něm najdeš konfiguraci pro připojení k databázi samotné.
Případně můžeš vyzkoušet konkurenční řešení v podobě Nextras Orm a Dbal.
- grovik
- Člen | 53
Jo tak ty návody jsou naprostý chaos.
Podobné starosti, s každou verzí s něco změní.
Návaznosti komponent pro to aby to chodilo nejsou nikde popsané. Aby to
běželo člověk slepí tři návody do jednoho. Příšerná magie a když se
něco rozsype tak neví jak na to :-/.
Jakože pokud by byl zájem nebylo by od věci ten návod vytvořit, ale z druhé strany by to chtělo konzultaci s autory aby to nebyl návod na jednu verzi.
- grovik
- Člen | 53
@Felix Super… já tu mám vlákno jak správně nakonfigurovat
Custom Typy v Nettrine. Vyznělo to do prázdna.
Třeba tohle mě teď už několik dní trápí.
V Doctrině je to věc používající metodu Type::addType().
Na dokumentaci obecně mi vadí ta roztříštěnost.
Jednu část informací mám z webu Contibutte, další část se najde na
GitHubu… občas někde úplně jinde. Navíc mám pocit, že tam hraje
aktuálnost dost výraznou roli.
Mě se ten balíček líbí a proto jsem si ho zkusil nainstalovat a
rozběhnout s tím, že bych ho rád využil v mém projektu na kterém
dělám, ale po třeba 15 hodinách blbnutí, se stále točím v kruzích :D.
To, že mi to nešlo, mě vedlo ke změně Anotací na Atributy, což vedlo
k nefunkčnosti a překopání konfigurace a atd atd. Možná by pomohlo,
udělat nějakou základní funkční konfiguraci a tu při instalaci balíčku
hodit do configu.
Dát do ní komentáře co je co a k čemu je to dobré. Co je potřeba co ne.
Atd.
Za mě by byl lepší okomentovaný kód a ideálně i česky (protože občas
mám pocit, že se něco ztrácí v překladu :D).
Klidně poprosím o nasměrování. Nebo můžu zkusit přiložit ruku
k dílu. Na psaní dokumentace ale moc dobrý nejsem :D.
Jinak samozřejmě, díky za všechnu práci. Já bych se k tomu nedokopal,
takže z toho mám radost.
Editoval grovik (12. 3. 21:53)
- grovik
- Člen | 53
Felix napsal(a):
Za me je nejlepsi zkouset nejaky z predpripravenych skeletonu.
To jsem zkoušel… ale v momentě kdy si to chci udělat od nuly po svém
je mi to na knedlík :D.
Já se ty věci snažím pochopit jako celek abych povědomí jak co funguje.
Což je těžké (se mnou ;-) ).
Třeba jak jsem ve vedlejším vlákně řešil to přidání typů.
Docela by se šiklo, mít konfig Doctriny a Nettrine vedle sebe a říct, tohle
je tady a když je někde návod a ten do dává v Doctrine sem, tak
v Nettrine to bude tady.
To by dost usnadnilo případné řešení problémů. M0ně pokus omyl času více tref na jistotu.
- grovik
- Člen | 53
Teď jsem se pokoušel rozběhat Nettrine přímo z repozitáře
s předpřipraveným projektem a nepovedlo se. Potažmo, pokud jsem chtěl
použít novější zápis pomocí anotací přestalo to fungovat.
Po asi hodině blbnutí s konfigurací jsem na to vykašlal. Prostě moc času
na experiment ve slepé uličce.
Takže jestli je zájem, můžu zkusit během nějakého času začít testovat
postupy co jsou v dokumentaci a balíčky a začít dávat dohromadu bugy na
které narazím případně začít psát nějaké postupy a návody jak co a
jak případně doplňovat komentáře tam kde by to bylo vhodné, pro
přehlednost.
Btw. narazil jsem na dost divné chování balíčku Apitte, zkoušel jsem ho
nainstalovat pomocí composeru a apitte/core
nefungoval a podle
všeho je dlouhodobě opuštěný.
Když se mrknu sem: https://contributte.org/…utte/apitte/ tak nastane přesně
to co jsem psal, že dokumentace je rozstříštěná s verzemi.
Zatímco odkaz na balíček vede na apitte/core
na Githubu je nový
balíček: contributte/apitte
o kterém se píše jen tam. Tady na
fóru je všude ten nefunkční odkaz.
Nevím jak to udržovat konzistentní, jen to píšu. Protože když to sem
napíšu, google si všumne a někdo další bude mít o asi 30 minut méně
šedivých vlasů. :D
Editoval grovik (8. 4. 2:43)