Traits – doporučujete používat? Rozumí si to s DI?

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

Ahoj,

používáte Traits? Je velká šance v dnešní době narazit na (český) hosting, na kterém Traity nejedou? A jak je na tom Nette\DI pokud jde o Traity? Například pokud mám zapnutý @inject pro komponenty a komponentě dám trait, který obsahuje @inject, bude mi to fungovat?

trait ContentEditable {

    /** @var Components\WebContent\IWebContentFactory @inject */
    public $webContentFactory;

    protected function createComponentWebContent() {
        $control = $this;
        return new UI\Multiplier(function($tag) use ($control) {
            return $control->webContentFactory->create()
                ->setTag($tag);
        }
    }
}
class NejakaKomponentaKteraMaZaplyInject {
    use ContentEditable;
}

Nikdy jsem Traity nepoužíval, protože jsem se bál právě těch hostingů (kvůli tomu také používám $control=$this a use ($control), nepoužívám zkrácený zápis polí atd atd), ale zase bych kvůli tomu nerad zakrněl a pokud už dnes Traity jdou používat prakticky na jakémkoliv hostingu, pak bych je rád využil. Co myslíte, je to (už konečně) dobrý nápad? Dík.

Editoval Zax (3. 6. 2014 15:45)

David Matějka
Moderator | 6445
+
+6
-

Tak pokud ma hosting php 5.4 a vyssi, tak traity fungovat budou.

Stejne tak by mel fungovat inject v traite bez problemu. (melo by to fungovat identicky jako kdyby ten kod byl v presenteru/controlu)

A pokud ti fungojou traity, je zbytecny ten zapis $control = $this; ... use ($control). Podpora pro pouziti $this v closurach je v php taky od 5.4.

Editoval matej21 (3. 6. 2014 15:46)

Zax
Člen | 370
+
0
-

Ok dík za jasnou odpověď, budu se tedy hlavně dívat na to, zda hosting má PHP 5.4. Jen je škoda, že spousta hostingů verzi PHP nikde veřejně neuvádí. Už by mě jenom zajímalo, zda je velká šance narazit na hosting s <5.4 nebo jde o naprostou minoritu, se kterou se nemusím zabývat?

EDIT: Wow odešlu příspěvek a najednou všude vidím tlačítka thumbs-up a thumbs-down, takže toho hned využiju ;-)

Editoval Zax (3. 6. 2014 15:57)

wicked
Člen | 290
+
0
-

Vetsima „lepsich“ hostingu uz frci na 5.4

Pavel Macháň
Člen | 282
+
0
-

Zax napsal(a):

Ok dík za jasnou odpověď, budu se tedy hlavně dívat na to, zda hosting má PHP 5.4. Jen je škoda, že spousta hostingů verzi PHP nikde veřejně neuvádí. Už by mě jenom zajímalo, zda je velká šance narazit na hosting s <5.4 nebo jde o naprostou minoritu, se kterou se nemusím zabývat?

EDIT: Wow odešlu příspěvek a najednou všude vidím tlačítka thumbs-up a thumbs-down, takže toho hned využiju ;-)

PHP 5.3 je stále hojně využívané, ale už se to lepší a většina lepších hostingů má alespoň 5.4

Zax
Člen | 370
+
-1
-

Super, díky moc za odpovědi.

Zatím se tedy Traitům a dalším 5.4 fičurám pro jistotu budu dál vyhýbat.

wicked
Člen | 290
+
+3
-

Ba naopak, osobně bych je využíval, nevložil bych na hosting kde je jenom 5.3

wicked
Člen | 290
+
0
-

Ba naopak, osobně bych je využíval, nevlezl bych na hosting kde je jenom 5.3

Oli
Člen | 1215
+
0
-

Zax: Pokud máš pod kontrolou výběr hostingu, nebo pokud si můžeš říct, jaký technologie chceš, tak bych dělal už jen v PHP 5.4

Můžeš si i pořídit VPS (např OVH má hodně levný) a dát si tam co sám uznáš za vhodné a nebudeš ničím omezovanej…

Zax
Člen | 370
+
0
-

Jasně, taky bych rád kdybych si mohl určovat, na který hosting to půjde, ale chci být připraven na situace, kdy si klient usmyslí, že chce nějaký konkrétní hosting a žádný jiný (a na nějaké „no jo, ale co když tam náhodou není péhápé pět čtyři“ neslyší).

Oli
Člen | 1215
+
0
-

Tohle jsme vyřešili jednoduše. Když vypracováváš nabídku, tak si do podmínek dáš apache, MySQL, PHP 5.4…

Stejně si tam musíš dát php, mysql/postgres, apache, … Jinak by jsi nebyl na tomhle foru. Tak proste jen misto 5.3 → 5.4 ;-)

Klient at si vybere hosting jakej chce, ale ja mam zaruceno, ze me tam muj kod pojede.

Pavel Macháň
Člen | 282
+
0
-

Zax napsal(a):

Jasně, taky bych rád kdybych si mohl určovat, na který hosting to půjde, ale chci být připraven na situace, kdy si klient usmyslí, že chce nějaký konkrétní hosting a žádný jiný (a na nějaké „no jo, ale co když tam náhodou není péhápé pět čtyři“ neslyší).

Jako zhotovitel se můžeš vznést do smlouvy podmínku, že hosting musí mít určité parametry jinak přez to nejede vlak… Většinou nemá zadavatel požadavky na PHP atd.. a mělo by to jít z tvé strany ať si ulehčíš život :)

Zax
Člen | 370
+
0
-

@Oli: jako něco na tvém příspěvku je, né že ne. Jenže moje cílová skupina budou spíš lidi, kteří se v tom vůbec nevyznají a chtějí jednoduchý webovky (třeba pro začínající živnostníky, malé firmy apod.). Třeba se jim náhodou zalíbí levnější (ale horší) hosting, který si můžou dovolit nebo tak něco a já jim to pak musím rozmlouvat a přesvědčovat je… a jak říkám, spousta hostingů ani neuvádí veřejně verzi PHP, což přidává další práci že se jich musím ptát a zjišťovat.. Přijde mi, že je to něco, čemu se dá vyhnout jednoduše tím, že budu psát kód pro 5.3 – jako správný programátor-sociopat si radši přidělám víc práce s kódem samotným, než s komunikací s klientem :-D

wicked
Člen | 290
+
0
-

Já to řeším tak, ze do podmínek dávám php5.4 a když je to klient, který tomu nerozumí, zařídím mu hosting sám, vysvětlím proč a je to.

Teď to tedy řeším VPS kam házím své klienty a smitec :-)

Pavel Macháň
Člen | 282
+
+3
-

Zax napsal(a):

@Oli: jako něco na tvém příspěvku je, né že ne. Jenže moje cílová skupina budou spíš lidi, kteří se v tom vůbec nevyznají a chtějí jednoduchý webovky (třeba pro začínající živnostníky, malé firmy apod.). Třeba se jim náhodou zalíbí levnější (ale horší) hosting, který si můžou dovolit nebo tak něco a já jim to pak musím rozmlouvat a přesvědčovat je… a jak říkám, spousta hostingů ani neuvádí veřejně verzi PHP, což přidává další práci že se jich musím ptát a zjišťovat.. Přijde mi, že je to něco, čemu se dá vyhnout jednoduše tím, že budu psát kód pro 5.3 – jako správný programátor-sociopat si radši přidělám víc práce s kódem samotným, než s komunikací s klientem :-D

Úplně nejjednoduší je si někde koupit VPSku, nakonfigurovat ji jak potřebuješ a právě podobné nenáročné zákazníky umístit na tvojí VPS. Tato VPSka se ti tím zaplatí a máš úplnou kontrolu a volnost. :).. Zezačátku než to nakonfiguruješ atd ti to sežere nějaký ten čas, ale výsledek stojí za to :)

Editoval EIFEL (3. 6. 2014 17:08)

Zax
Člen | 370
+
0
-

Není VPS trochu overkill pro běžné potřeby (rozběhat web)? :-)

No možná ne.. uvidím, budu si to muset ještě důkladně promyslet.

Dík za odpovědi!

wicked
Člen | 290
+
0
-

Mas klid, kontrolu a jistotu ;-)

Šaman
Člen | 2666
+
0
-

Používám je takhle a zatím jsem na žádný problém nenarazil. Samozřejmě je potřeba trochu dbát na výběr hostingu, ale žádný hosting, který to myslí aspoň trochu vážně, dnes 5.3 jako defaultní nenabízí. Ty horší jedou na 5.4/5.5 a ty lepší ti dají na výběr.
P.S. U těch úplně nejhorších se ti může stát, že ani nerozeběhneš Nette. Tak k té aplikaci přidej requirements checker a uprav podmínku verze php na >= 5.4. Uživatel si pak bude moci vyzkoušet sám, jestli je hosting kompatibilní.

Editoval Šaman (3. 6. 2014 18:16)

Filip Procházka
Moderator | 4668
+
0
-

Rozhodně se nenech klientem takto hloupě omezovat, i 5.4 hostingy se dají sehnat za směšný peníze.

Zax
Člen | 370
+
0
-

@Šaman: Ten requirements checker je dobrý nápad. Sice BFU (moje hlavní cílová skupina) nemusí ani tušit, jak to zprovoznit/vyzkoušet (a těm budu nejspíš natvrdo doporučovat nějaký konkrétní hosting třeba i kvůli affiliate atd), ale pokud klient ví a chce si předem otestovat, jestli mu můj kód pojede na jeho zvoleném hostingu, tu možnost mu dám. To je asi dobrý kompromis.

Co mám rozdělané, to dodělám pro 5.3 kvůli konzistenci a pak další věci začnu načisto s 5.4. Ono to má celkem dost fičur a cukrátek (hlavně ty traity a short array syntax), že se na to už celkem dlouho těším. No, díky!