Kdyby\Translation nedaří se mi integrovat do nette
- iru
- Člen | 110
Při integraci jsem se zasekla na chybě: Cannot read an undeclared property
Nette\Latte\Engine::$onCompile.
Snažila jsem se hledat, ale nedaří se mi. Děkuji za každou pomoc.
Z laděnky:
}
396:
397:
398: /**
399: * @return Nette\Latte\Engine
400: */
401: public function createServiceNette__latte()
402: {
403: $service = new Nette\Latte\Engine;
404: Kdyby\BootstrapFormRenderer\Latte\FormMacros::install($service->compiler);
405: $service->onCompile[] = function($engine) { Kdyby\Translation\Latte\TranslateMacros::install($engine->getCompiler()); };
406: $service->addFilter('translate', array(
407: $this->getService('translation.helpers'),
408: 'translate',
409: ));
- David Matějka
- Moderator | 6445
Jakou mas verzi nette? a jak instalujes kdyby/translation? vypada to, ze pro nette 2.1 instalujes nekompatibilni verzi bez composeru, ze?
- iru
- Člen | 110
Verze nette je 2.1.1 a kdyby/translation jsem stahla v .zip a nainstalovala jak píšeš bez composeru. Stahla jsem tady: https://github.com/…/Translation
- David Matějka
- Moderator | 6445
master vetev zavisi na 2.3. A stejne, bez composeru pak budes muset nainstalovat nejaky symfony balicky atd. Pokud se chces zbavit tehle problemu, zacni pouzivat composer.
(a pro 2.1 je tam samostatna vetev: https://github.com/…ee/nette-2.1)
- iru
- Člen | 110
Děkuji moc, asi budu muset se naučit používat composer… stáhla jsem, ale skončila jsem pro změnu u symfony:
Ambiguous class ProjectUrlMatcher resolution; defined in /www/imori.cz/libs/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php and in /www/imori.cz/libs/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php.
- Filip Procházka
- Moderator | 4668
@iru RobotLoader (schválně) neozvládá když máš někde nadefinované stejně pojmenované třídy, což Symfony/Translation v testech má. Nepotřebuješ celé symfony, na packagistu je vidět, že Kdyby/Translation vyžaduje pouze symfony translation a config (které potřebuje symfony filesystem)… prostě použij composer :) A nenačítej vendor RobotLoaderem.
- iru
- Člen | 110
Hm… composer jsem zdárně nainstalovala, stáhla jsem pomocí něho sandbox, ale nette se mi už nenatáhlo podle:
$ composer update
Composer stáhne Nette a vloží ho do složky vendor/nette/nette.
prostě použij composer :) A nenačítej vendor RobotLoaderem.
když se tím nějak prokoušu a podaří se mi použít composer, tak musím nějak ten RobotLoader deaktivovat? A jak mám composer použít na již hotovou aplikaci, která už nějak funguje no a hlavně která nebyla nainstalovaná s composerem?
Vím dostáváme se už mimo téma, ale nějak bych se k tou kdyby/translation potřebovala dostat…
- David Matějka
- Moderator | 6445
Staci requirnout autoloader composeru (pokud tak jeste nemas). Co se robotloaderu tyce, tak je potreba ho nastavit, aby nacital pouze adresar app (nebo aby alespon nenacital vendor)
- iru
- Člen | 110
děkuji moc.
ale co se týká robotloaderu, tak to mám takto:
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->addDirectory(__DIR__ . '/../vendor/others')
->addDirectory(__DIR__ . '/../libs/Kdyby')
->addDirectory(__DIR__ . '/../libs/Tracy')
->addDirectory(__DIR__ . '/../libs/DatePicker')
->addDirectory(__DIR__ . '/../libs/VisualPaginator')
->register();
mám z toho vymazat jenom toto: ->addDirectory(__DIR__) ? Ty ostatní používám, to co je v tom /libs
- David Matějka
- Moderator | 6445
co je mozne, nainstaluj composerem (coz uz je dneska skoro vsechno) a pak nebudes muset v libs nic mit :)