Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 4. diel - Dokončenie kalkulačky v Symfony

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
MArtin
Člen
Avatar
MArtin:23.5.2017 11:14

Debug tip: komu to hadze chybovu hlasku ohladne chybajuceho DefaultControllera, tak je potrebne zmazat cache - bud rucne - obsah adresara ./var/cache/ alebo slusne pouzitim konzoloveho prikazu bin/console cache:clear (prip. php bin/console cache:clear)

Editované 23.5.2017 11:14
 
Odpovedať
23.5.2017 11:14
Avatar
MArtin
Člen
Avatar
MArtin:23.5.2017 12:29

Debug tip 2: pre tych co si kod prepisovali rucne podla clanku treba pridat do suboru CalculatorMana­ger.php na zaciatok:

use AppBundle\Entity\Operation;

...za namespace ...

 
Odpovedať
23.5.2017 12:29
Avatar
MArtin
Člen
Avatar
MArtin:23.5.2017 12:58

Debug tip 3: zmenit v subore .htaccess v adresari web:

- RewriteRule ^ %{ENV:BASE}/app.php [L]
+ RewriteRule ^ %{ENV:BASE}/app_dev.php [L]

...
- RedirectMatch 302 ^/$ /app.php/
+ RedirectMatch 302 ^/$ /app_dev.php/
Editované 23.5.2017 12:59
 
Odpovedať
23.5.2017 12:58
Avatar
solta
Člen
Avatar
solta:25.5.2017 1:58

nechápu význam služeb, může mi někdo vysvětlit jaký je rozdíl mezi

$calculatorManager = $this->get('calculator_manager');

a

$calculatorManager = new CalculatorManager();
 
Odpovedať
25.5.2017 1:58
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovedá na solta
Jindřich Máca:25.5.2017 13:47

Ten hlavní rozdíl je asi v tom, že pomocí toho get() vždy získáš pomocí DI jednu a tu samou instanci, když to pomocí new si pokaždé vytváříš novou.

Další rozdíl je, že pokud by měl konstruktor té získávané třídy další parametry, tak s použitím toho get() je neřešíš a rovnou dostáváš instanci se vším všudy, když to při použití new musíš mít k dispozici všechny potřebné parametry pro vytvoření té instance a to může být často docela složité.

Takže závěrem nejde ani tak o použití na tom jednom místě, ale o způsob získávání napříč celou aplikací. ;)

 
Odpovedať
25.5.2017 13:47
Avatar
solta
Člen
Avatar
Odpovedá na Jindřich Máca
solta:25.5.2017 14:10

Díky za osvětlení. Bylo by fajn podobne veci rovnou vysvětlit v članku jistě nebudu sám kdo to potreboval vysvětlit:)

 
Odpovedať
25.5.2017 14:10
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovedá na solta
Jindřich Máca:25.5.2017 15:53

V článku je to zmíněné jako princip DI (Dependenci Injection), což je obecný návrhový vzor, s jehož znalostí se tak trošku počítá. :-) To znamená, že pokud někdo zná DI, je mu jasné i to, co jsem napsal ve svém předchozím komentáři. ;-)

 
Odpovedať
25.5.2017 15:53
Avatar
saavikam
Člen
Avatar
saavikam:7.6.2017 9:57

Ahoj,
můžu se prosím zeptat na kod v src/AppBundle/En­tity/Operation­.php, např:

/**
* @var int První číslo operace.
* @Assert\NotBlan­k(message = "Tohle pole je povinné.")
* @Assert\Type(
* type="int",
* message="Hodnota {{ value }} není validní číslo."
* )
*/
protected $x = 0;

je to komentáři. Znamená to, že Symfony si tyto informace přečte z komentáře?

Děkuji
Andrea

 
Odpovedať
7.6.2017 9:57
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovedá na saavikam
Jindřich Máca:7.6.2017 13:29

Ano, Symfony standardně dělá reflexi nad komentáři a využívá tzv. funkční anotace pro všemožné účely. :-)

 
Odpovedať
7.6.2017 13:29
Avatar
Daniel Gramblička:2.8.2018 14:50

Ahoj, pre tych ktori maju problem s typeErrorom - do Calculator.php treba pridat :

use App\Entity\Operation;
 
Odpovedať
2.8.2018 14:50
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!