Funkční sandbox pro Doctrine2

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
frosty22
Člen | 373
+
0
-

Zdravím Vás,

již pár dní hledám nějaké hezké již hotové řešení propojení doctrine 2 spolu s nette, dost lidí zde používá Doctrine2, čili věřím, že nějaký existuje :) Osobně jsem již nějaké jednoduché propojení měl, avšak pro starší verzi a nepříliš hezké zapouzdření.

Docela se mi líbí nástavba z kdyby, která zajímavě propojuje doctrine2 a nette, avšak funkční sandbox jsem nenašel a bohužel se mi nedaří nastavit kontajner – nejsem příliš chytrý z oněch extensions (ConsoleExtension, DoctrineExtension, …) a též z CLI.

Dále jsem tedy zkusil nellu, kde též vypadá propojení hezky, ale zde opět sandbox obsahuje nějaké chybějící části z nelly (https://forum.nette.org/…-nette-2-0-x?p=2).

Otázka tedy zní, zda-li jsem nepřehlédl nějaký zajímavý repozitář na gitu, který by mi ulehčil tuto práci? Bohužel trošku mě tíží čas, a již 3. den trávím hledáním a zkoušením tohoto :(

Samozřejmě chápu, že bych si to mohl udělat sám, jen přeci jen bych něco osvědčeného praxí, než-li si znovu montovat kolo :=)

Díky moc za pomoc .)

Filip Procházka
Moderator | 4668
+
0
-

Přehlédl. Ale je fakt, že se s tím moc nešířím. Takže jen na vlastní riziko:

$ composer create-project hosiplan/project test

(Na chatu i na twitteru jsem téměř neustále, byť jsem teď měl dva dny od posoboty více hektické, mohl jsi se kdykoliv zeptat :)

frosty22
Člen | 373
+
0
-

Čauky Filipe, moc díky za vstřícnost :) Ono já jsem ti na twitteru už psal právě ohledně tohoto tvého sandboxu a pravda, že jsem zapomněl ho tady uvést, jak jsem zmiňoval, že jsem zkoušel kdyby, tak jsem si s ním právě hrál přes tenhle tvůj sandbox :) Ale to víš, já jsem ten, co ti spamoval email, jelikož jsem si prvně nevšiml v configu tvého mailu a začala ti chodit laděnka :) viz twitter Vít-Macbook.local :)

Jinak tedy tě samozřejmě nechci moc otravovat, ale mám právě pár otázek k tomuto sandboxu, naoplátku ti pak třebas napíšu tu dokumentaci, resp. něco k ní, co zjistím :)

Nedaří se mi propojit právě CLI s bootstrapem, máš tam CliRouter to ano, ale když ho napojím v RouterFactory, tak nemůžu přijít na to, kde připojit entityManager, a hází to stále

The helper 'em' is not defined.
Filip Procházka
Moderator | 4668
+
0
-

To em is not defined jsem opravil myslím v pondělí, asi jsi pracoval na starém kdyby/doctrine.

Co se týče propojení konzole, tak je zcela automatické. Našel jsem tam ale teď chybku, takže jsem vylepšil registraci cli routeru.

Dej si composer update a spusť v konzoli:

$ php www/index.php
frosty22
Člen | 373
+
0
-

Právě, že tuto verzi mám staženou a stejně .. nemáš někde jinou verzi či je problém u mě? Protože tady máš i syntax error:

https://github.com/HosipLan/project/blob/master/app/presenters/BasePresenter.php

ten USE .. takže ten sandbox nejde ani spustit .. samozřejmě tohle jsem si opravil, a následně po zavolání:

php index.php orm:info

tak mám právě onu chybu s „em“ not defined.

Edit: Beru zpět .. ted tam mám jinou chybu .. že nemám namapované entity v konfiguraci .. tak to už si dohledám to bude LogicException :)

Edit: Tak beru vše zpět, to nebude syntax error, ty používáš již trait .. mno tak nainstaluju PHP 5.4 :)

Editoval frosty22 (30. 1. 2013 18:57)

Filip Procházka
Moderator | 4668
+
0
-

:D

Konfiguruje se takto:

doctrine:
	user: root
	password: heslo
	dbname: projekt
	metadata:
		MyApp: annotations(%libsDir%/MyApp)
# 		^ namespace        ^ složka

PS: vyhoď si z toho projektu můj email ;)

frosty22
Člen | 373
+
0
-

Sakra, za ten email se fakt omlouvám :( Jsem si stáhl znovu ten composer celý a opět jsem zapomněl to smazat. Ale teď už je to ok.

Jinak tedy již jsem aktualizoval konečně i na PHP 5.4, a jdu se trošku vzdělat a zjistit, k čemu vůbec ty traits jsou dobré, zatím jsem je nepoužíval, a při letmém pohledu mě zrovna moc neokouzlili – tedy z pohledu objektového se mi to jeví dost divoce, ale uvidím :)

Akorát jen čirou náhodou nevíš, nevíš, proč mi autoloader od composeru nebere v potaz onen trait, resp. mi to hodí „\Kdyby\AutowireProperties“ trait not found a musím requirovat ručně, leč tedy nette robotloader tohle zpracovat umí, co jsem nyní zkoušel. Ostatně celkově ten loader z composeru vypadá dost netransparentně a zmatečně.

Filip Procházka
Moderator | 4668
+
0
-

A máš aktuální composer? $ composer self-update, jsem si 100% jistý, že traity zvládá ;)

Composer má úžasnou architekturu, strávil jsem jeho studiem dost času :) Ten bordýlek co generuje ve vendor je maximálně optimalizovaný kód ;)

frosty22
Člen | 373
+
0
-

Super :) Tím to bylo – aktualizoval jsem verzi composeru a voalá již to fičí. Jinak tedy věřím, že composer jistě je kvalitní nástroj, a co se týče toho bordýlku, tak ten je právě trošku zavádějící ale jak říkáš, jistě kvalitně optimalizovaný kód :)