Kdyby\Translation nedaří se mi integrovat do nette

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

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

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

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

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

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

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

https://doc.nette.org/…ces/composer

iru
Člen | 110
+
0
-

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

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

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

co je mozne, nainstaluj composerem (coz uz je dneska skoro vsechno) a pak nebudes muset v libs nic mit :)

iru
Člen | 110
+
+2
-

Děkuji moc, už to nebudu dělat jinak :-)