Aktuálně funkční návod na doctrine v nette (září 2023)

elx
Člen | 2
+
0
-

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-project

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
+
+2
-

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.

elx
Člen | 2
+
0
-

Díky :) Neuvěřitelné, člověk u toho sedí do půlnoci a dalších pár hodin ráno… a taková pitomost :D

grovik
Člen | 53
+
0
-

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.

Felix
Nette Core | 1189
+
0
-

Ahoj @grovik, ja jsem autorem tech rozsireni ✋

Budu moc rad, kdyz mi nadhodis par napadu jak to udelat lepe. Aby se v tom vyvojari vyznali.

grovik
Člen | 53
+
0
-

@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)

Felix
Nette Core | 1189
+
0
-

Za me je nejlepsi zkouset nejaky z predpripravenych skeletonu.

https://github.com/contributte/?…

grovik
Člen | 53
+
+1
-

Felix napsal(a):

Za me je nejlepsi zkouset nejaky z predpripravenych skeletonu.

https://github.com/contributte/?…

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
+
+2
-

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)