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 | 63
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 | 69
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 | 69
@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 | 69
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ů. Méně pokus omyl času více tref na jistotu.
Editoval grovik (9. 11. 5:05)
- grovik
- Člen | 69
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)
- d@rkWolf
- Člen | 167
Stará známá klasika, řešil jsem před 4 lety tady :-)) : https://forum.nette.org/…-konfigurace
Od té doby přibyly další skeletony, stále nacpané hromadou zbytečných komponent přetěžujících všechny části Nette. Každá z nich je poteciální problém s kompatibilitou, pokud to není něco, co nutně potřebuju. Chce to jeden skeleton úplně nejobyčejnější s úplně základní konfigurací, jen Nette + Nettrine, nic víc. Protože nainstalovat to do Nette web-projectu nebo sandboxu od nuly přes composer require ..xx.. prostě nejde. Nějak jsem to tehdy rozchodil, ale taky jen z některého z tehdejších skeletonů plus odebral to, co se mi odebrat podařilo aniž by se to zhroutilo.
Apitte bylo dřív taky rozdělené na několik kusů(taky zábava pokus rozchodit to), teď by to asi tímto: composer require contributte/apitte mělo jít přidat celé…možná…
- HonzaN
- Člen | 66
Proč to dělat složitě, když to jde snadno ? https://www.doctrine-project.org/…uration.html
- grovik
- Člen | 69
Protože pokud nejsi člověk co to zná, tak čekáš, že nejlepší
řešení pro tebe když používáš Nette je použít něco co patří
k Nette. Před pár lety, mělo PHP dokumentaci co byla fakt chaos. To se
změnilo a jsem rád, protože dost pomáhá tomu aby s tím někdo začal.
Já třeba teď řeším proč mi sakra datagrid nedá vybrat z bool
přepínače. Sice ho vykreslí, ale není tam druhá možnost… zatím ještě
bojuju protože nechci projekt rozdrbat změnou v datagridu… ale jestli se mi
to nepodaří tak to udělám. Lepší dokumentace by tomu pomohla.
Občas mám pocit, že autoři dokumentaci píšou jenou proto aby si mohli
tvářit jako mistři světa, vytvoříš něco pro Nette která má třeba 70%
uživatelů v prostoru ČSR a dokumentaci napíšeš jen anglicky. Ok tak jsi
hrdina a jako co? :D
- Lumeriol
- Generous Backer | 63
grovik napsal(a):
Občas mám pocit, že autoři dokumentaci píšou jenou proto aby si mohli tvářit jako mistři světa, vytvoříš něco pro Nette která má třeba 70% uživatelů v prostoru ČSR a dokumentaci napíšeš jen anglicky. Ok tak jsi hrdina a jako co? :D
Je to celkem nefér od tebe tohle tvrzení. Spousta doplňků a rozšíření je třeba jen nadstavba nad doplňky jiných jazyků (typicky Symfony) a tam ti nikdo dokumentaci do češtiny překládat nebude. Nehledě na to, že pokud už používáš něco takového a ne jen základní Nette, očekává se určitá zkušenost a znalost technické angličtiny alespoň na úrovni čtení, překladačů máš dneska celou haldu. Navíc spousta kódu a API je poměrně dobře psaná tak, abys to pochopil, co to dělá ať už názvem metody, třídy nebo v PhpDocu. Tohle není Wordpress :)
A pokud ti něco nefunguje, pořád je tady dost míst (autoři/správci doplňků, forum, GitHub, Slack, Péhápkáři, …), kde se můžeš zeptat a někdo ti obvykle odpoví, abys tím nemusel trávit čas nebo se dozvěděl, proč tomu tak je.
P.S.: můžeš si přečíst i tohle
- grovik
- Člen | 69
A jak to vysvětluje, že je v dokumentaci zmatek? Díky pěkně, právě
jsem se dozvěděl, že autor něčeho, nemůže za blbou dokumentaci, ale že
to je vlastně moje chyba. Ok.
Mohl by mi tedy autor dát k tomu přístup abych to mohl opravit? Asi nemohl.
Ok.
Tak právě se tu zabetonovala slepá ulička. Rovnou můžeme říct, že
používat doplňky od Conttribute a Ublablo, nebo jak si zrovna říkají, je
špatně a pokud si k nim nenapíšeme vlastní dokumentaci, nejsme dost
dobří na jejich použití.
A já jsem tu řešil jestli by jakože nebylo dobré tu dokumentaci přepsat a klidně bych to zkusil, ale zároveň bych čekal nějakou součinnost a to vyšumělo. Protože jestli mám strávit půl roku studováním gitHubu a kódu, abych k němu napsal dokumentaci, to se asi můžu věnovat radši tvorbě vlastního… čehokoliv.
PS: Hezký článek a co tím chtěl básník říci? Jakože moje chyba? Nebo, že to nemám řešit? Mám to nechat být? No, ale nechávat věci být, je přesně to co většinou věci zabije. Tak dlouho se to nechává hnít, až to skončí na kompostu. Možná bych měl napsat článek, který by obsahoval jednu větu: „Než něco komentujete, podívejte se co se řešilo v diskusi před tím, než se do někoho navezete.“
- grovik
- Člen | 69
@Pepino Slušně manipulativní technika.
Když jsi za něco neplatil, tak to nekritizuj. Když sám nic neuděláš,
nemáš právo kritizovat. Lol. Natočil jsi někdy film? Ne? Tak nemáš právo
si stěžovat, že tenhle není dost dobrý. Pokud nebudeš někoho kritizovat,
tedy upozorňovat na chyby, věci se nikam nepohnou. Nečekal jsem, že je tu
tolik sněhových vloček.
Já si ani nemyslím, že je něco zadarmo. Znovu si přečti celé vlákno. Nabízel jsem autorovi, že s dokumentací rád pomůžu, protože jsem sám narazil na to, kde jsou její limity. Mně by to pomohlo, a vzhledem k tomu, kolik je tu kolem toho debat, nejen mně.
Editoval grovik (11. 11. 3:08)
- Infanticide0
- Člen | 104
Mile, neironicky, nápomocně a konstruktivně tě kritizuji za tvůj pravopis, který je na úrovni prvního stupně ZŠ.
- Felix
- Nette Core | 1196
Ahoj, ja jsem autor tech balicku, skeletonu a ruznych projektu.
@grovik Kritiku akceptuju, jen nevim co s tim v tvem pripade delat. Porovnavat konfiguraci Doctrine vs Nettrine urcite muzeme, jen nevim do jake hloubky. Zkusis napsat seznam konfigurace co potrebujes v Doctrine udelat? S PHP ukazkami, at to pochopim. Ja bych doplnil jak to nakonfigurovat v Nettrine, co ty na to?
@darkWolf Tvuj komentar ke skeletonum taky akceptuju. Ale nechci je menit, tech lidi co to nevidi jako ty je radove vic, skeletony jim pomahaji a ja jsem za to rad. Abych ale dokazal, ze mi to neni uplne jedno, tak jsem udelal opravdu MVP projekt, kde je pouze Nette a pouze Nettrine. Doufam, ze to pomuze.
- David Grudl
- Nette Core | 8218
Myslim, že u těch skeletonů hodně chybí nějaké průvodní slovo (cca 1000 až 2000 slov). Aby je člověk rozpletl, musel by už mít povědomí o těch knihovnách, takže začátečníkům moc nepomůžou.
Napsat návod srozumitelný i pro začátečníky je nejen časově náročné, ale hlavně to vyžaduje skill, který prostě nemá každý. Znám to velmi dobře – tak 75 % programátorů, kteří se pokusili přidat něco do dokumentace Nette, napsalo text, který se fakt nedal použít. Takže i když grovik nabízí, že by pomohl napsat dokumentaci, je spíš matematicky pravděpodobnější, že by tím jen přidělal dalším lidem práci bez přidané hodnoty. Ale muže byt užitečná jeho zpětná vazba, protože je v ni pohled začátečníka.
Proto je skvělé, že dnes se ta náročnost psaní řádově snížila, protože skvělé texty generuje AI.
- grovik
- Člen | 69
Já bych na to šel od lesa.
- Zkusme prostě tu věc vzít, nainstalovat Nette, k němu doinstalovat balíček a vzít to krok po kroku.
- Pokud má nějaký krok víc možností, dejme k tomu vysvětlení, proč zvolit jednu nebo druhou. Nakonec to nemusí být jen text, může to být i video, které lze snadno přepsat do textu (a já se vyhnu své dys a dys ;-)).
- Takový návod vzít a znovu to podle něj zkusit.
(při tom se najdou ty věci kde to drhne)
Uvědomuji si, jak je složité psát věci pro začátečníky (hodně
velký kus života jsem pracoval jako ICT ve firmě, případně jsem dělal
servisáka, kde 99 % zákazníků byli vedoucí školních jídelen).
Hlavní problém je, že postup prostě nefunguje, a člověk nad tím sedí a
říká si, kde udělal chybu. Prochází to znovu a znovu. Po půl hodině
v tom už nic nevidí, i kdyby se zbláznil.
Kdyby existoval postup s poznámkami typu „Pokud máte tuhle chybu, je to
kvůli tomuhle,“ voila.
Ideálně by k tomu existoval seznam věcí, které je potřeba přidat do
service.neon, local.neon atd. Proto říkám, že rád pomůžu – třeba
tím, že to zkusím rozchodit na čisto a sepíšu, kde jsem se zasekl. Autor
bude vědět lépe než já, proč se to stalo.
Mně to hrozně pomáhá. Před třemi lety jsem se na Nette nemohl ani
podívat, dneska v tom dělám projekt velký jako stodola pro Můvmentariány.
Živí mě to, a i když asi nemám sílu a čas něco programovat, potažmo se
toho bojím, třeba jsem si teď napsal interní messenger pro uživatele.
Možná by se to dalo vyseknout jako samostatný balíček, který by někdo
mohl využít.
Kdby existoval postup a ten by měl napsáno pokud máte tuhle chybu, tak je to
kvůli tomuhle. Voala.
Ideálně aby k tomu eixstoval seznam věcí co je potřeba přidat do
service.neon, local.neon atd.
Proto říkám rád pomůžu, třeba tím, že to zkusím na čisto rozchodit a
sepíšu kde jsem se seknul – autor bude vědět lépe než já proč se to
stalo.
Mě to hrozně pomáhá třema rokama jsem neuměl na Nette ani koukat, dneska
v tom dělám projekt velký jako stodola pro Můvmentariány. Živí mě to a
asi nemám sílu a čas, třeba něco programovat potažmo asi se toho bojím
(i když třeba jsem si teď napsal interní messenger pro uživatele a to by
se možná dalo vyseknout jako samostatný balíček a někdo by to mohl
využít).
@Felix To co psal David k těm skeletonům je recht. Já jsem zkoušel ten Apitte a prostě jsem to nerozchodil. Celé jsem to nainstaloval, chtěl jsem si to vyzkoušet a po spuštění jsem byl v červeném a když jsem se prokousal někam dál nechal jsem na tom třeba 3 hodiny a výsledek nijaký. Přitom to určitě musí nějak fungovat jinak by to nevzniklo (tajně si při pláči do kapesníku říkám :D ).
Editoval grovik (11. 11. 3:17)