nextras / orm-demo-nette

ORM demo in Nette framework
MIT License
14 stars 6 forks source link

základní funkčnost #1

Closed Keeehi closed 9 years ago

Keeehi commented 9 years ago

Dokud nebude dokumentace k orm, šlo by toto upravit tak, aby se to dalo po stáhnutí hned použít?

config.local.example.neon -> config.local.neon

No a pak už dostávám hlášku

Nette\DI\ServiceCreationException

Service 'orm.mappers.comments': Service of type Nette\Database\Context needed by Nextras\Orm\Mapper\Nette\NetteMapper::__construct() not found. Did you register it in configuration file?
hrach commented 9 years ago

Je to kvuli nekompatibilite nette/databse, ktera se nedavno zmenila. Staci upravit config. Srr, jeste jsem to nezvladl udelat, zvlaste proto,z e orm bude mit novej backend nextras/dbal.

Keeehi commented 9 years ago

ok, a byl by nějaký rychlonávod, jak orm rozchodit abych si ho mohl vyzkoušet? Snažím se to zprovoznit z db-benchmark z kterého jsem si to vykopíroval.

{
    "require": {
        "php": "~5.4",
        "nette/nette": "@dev",
        "nextras/orm": "@dev"
    },
    "minimum-stability": "dev"
}
nette:
    database:
        dsn: 'mysql:host=127.0.0.1;dbname=orm'
        options:
            lazy: yes
extensions:
    orm: Nextras\Orm\Bridge\NetteDI\OrmExtension
orm:
    model: OrmDemo\Orm

Při této konfiguraci dostávám

Nette\DI\ServiceCreationException

Service of type OrmDemo\Orm used in @var annotation at Property [ <default> public $orm ] not found. Did you register it in configuration file?

Normálně bych čekal, že OrmDemo\Orm mi jako službu zaregistruje ta extension. Ať se to ale snažím upravovat jak chci, pořád se mi to nedaří.

hrach commented 9 years ago

Tak jsem to vyzkousel a myslim, ze jsou to bugy v nette 2.3: https://github.com/nette/di/issues/53

Muzes si zkusit locknout nette databse na 2.3 dev commit, ktery funguje s nette 2.2, viz. readme u nextras/orm.

Keeehi commented 9 years ago

Nedaří se mi to ať se snažím sebevíc. Pokud chci nainstalovat nette/nette ve stabilní verzi, tak to nejde protože vyžaduje taky stabilní nette/database. Pokud nette/nette nainstaluji v dev verzi, nette/database taky v aktuální dev verzi, pak končím na předchozí exception. A při použití starších commitů dev větve nette/database dostávám zase tuto výjimku

ReflectionException

Class Nette\Bridges\DatabaseDI\DatabaseExtension does not have a constructor, so you cannot pass any constructor arguments

Takže co přesně si mám do composer.json napsat aby mi to určitě fungovalo? A mám použít config z tohoto repa nebo je potřeba ho nějak upravit?

Keeehi commented 9 years ago

Konečně se mi to povedlo rozchodit.

composer.json

{
    "require": {
        "php": "~5.4",
        "nette/nette": "@dev",
        "nextras/orm": "@dev"
    },
    "minimum-stability": "dev"
}

Konfigurace není třeba měnit

Pro předání závislostí je nutné místo anotací použít inject metody http://pla.nette.org/cs/inject-autowire

hrach commented 9 years ago

jo, protoze david uz neco opravil, ja jsem ted opravil zbytek, takze melo by jen uz i injectovani pomoci anotace. prosim dej vedet :-) diky.

Keeehi commented 9 years ago

Injektování pomocí anotace už teď funguje. Celé fungovalo, musel jsem upravit composer.json aby instaloval verze, ve kterých to funguje. Taky ještě byla chybka v konfiguraci extension. No a ještě to divné pojmenování config local. V jiných repozitářích by to asi mělo význam ale tady ho nevidím. Tak jsem to upravil tak, aby toho bylo nutné upravovat co nejméně potom, co si to člověk poprvé stáhne >> #2

janholas commented 9 years ago

Stáhl jsem si nejnovější repozitář a mám stejný problém jako v úvodním postu, co je ještě potřeba udělat?

hrach commented 9 years ago

pusnul jsem aktualni opravenou verzi, ktera uz nepouziva nette database, ale nextras/dbal. kdyby byl problem se zprovoznenim (coz muze byt kvulit timezonam), tak