Přeji pěkný nový rok 2015!

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8228
+
+41
-

Přeji všem fandům Nette super nový rok 2015! A ptám se: kam posuneme Nette v tomto roce?

Jan Tvrdík
Nette guru | 2595
+
+8
-

Rozdělíme nette/application a zničíme nette/reflection. Taky by mohly vzniknout nějaké anglické screencasty, když to hromada lidí pořád slibuje.

newPOPE
Člen | 648
+
+5
-

Kedze je FW rozdeleny do samostatnych celkom tak by nebolo zle (uz dlhsie to mam v hlave) tlacit samotne celky do sveta.

Ako priklad: Modul Latte pre Zend2, Symfony, Laravel. Pripadne mat „podporu“ priamo v Latte repo.

Sem tam to sledujem ale nic co by ma nejak vytrhlo zo stolicky som nezaregistroval. Dat dokopy clanok a pustit to na sitepoint.com (fluentPDO (sk projekt) sa tam dostal tak nejak sam http://www.sitepoint.com/…d-fluentpdo/).

Momentalne nic konkretne nemam skor mi ide len o tom zozbierat napady a idei.

Milo
Nette Core | 1283
+
+4
-

Já jsem si nakázal nezačínat nic nového, dokud neuzavřu co jsem kde načal :-)

Co potom přesně nevím. Nette FW je teď ve stavu, který mým potřebám vyhovuje. Zkusil bych implementovat source maps pro Latte, to mě občas trápí. A mám nápad na rozšíření validátorů.

Také delší dobu koketuji s myšlenkou generátoru sandbox aplikace as-you-wish.

No ono je těch nápadů vlastně mraky :-)

Zax
Člen | 370
+
0
-

Mě napadá pár takových drobností, které by mohly dost zpříjemnit používání Nette:

  1. Rád bych viděl zavedený IFormFactory: po vzoru komponent, formuláře by IMO bylo lepší standardně vyrábět přes továrnu, kterou si injektneme, než používat všude new Form. Nezřídka je nutné třeba upravit renderer globálně pro celou aplikaci, nebo třeba líné a zapomnětlivé kůže jako já si do továrny mohou přidat addProtection(). No a díky automaticky generovaným továrnám není potřeba výchozí implementaci jakkoliv řešit :-)
  2. Bylo by celkem cool mít v základu možnost používat aliasy v routování: mám dost fetiš na komponenty, jenže persistentní parametry v komponentách nejsou zrovna router-friendly, zvlášť když se do toho někde uprostřed přimíchá Multiplier, viz https://forum.nette.org/…2-characters#…
  3. Nette\Caching\**IStorage** (EDIT: to je bug že se to nezobrazuje tučně?) bych přejmenoval na ICacheStorage: pokud to nedělám celou dobu blbě, tak právě IStorage je to, co injektujeme, jenže v kombinaci s use v hlavičce je IStorage dost nečitelný (jakej storage? Pro cache? Nebo úložiště pro obrázky? …). A taky jsem se už několikrát přistihl, že jsem začal psát „ICacheSto…“ a pak mi to docvaklo :-) Jasně, je to fakt blbost a chápu, když se to nezmění kvůli zpětné kompatibilitě, ale tak je to taky nápad.
  4. No a na závěr jedno „probably not gonna happen“: pohledy v komponentách s automatickým dohledáváním šablon, možnost zapnout automatickou invalidaci snippetů v komponentách (vyhnout se nutnosti všude psát „if is ajax blabla else redirect“) a metoda forward() (nebo možná ajaxRedirect() ?), která přesměruje bez nového requestu a nezruší invalidaci snippetů (což bohužel $presenter->forward() dělá). Nebo úplně ideálně rovnou metoda go() (lepší název mě nenapadl), která koukne, jestli jde o ajax a podle toho buď normálně přesměruje a nebo provede ajaxRedirect(). Sám už něco podobného mám vyrobené a skoro si bez toho komponenty nedokážu představit, ale „oficiální“ řešení by bylo bezesporu lepší i oblíbenější, než můj bastl na koleni.

EDIT: Jo a samozřejmě všechno nejlepší do nového roku ;-)

Editoval Zax (3. 1. 2015 16:44)

Filip Procházka
Moderator | 4668
+
0
-

@Zax

  • 1 – pošleš pull? :)
  • 3 – myslím že to není potřeba
  • 4 – napiš to a udělej z toho rozšíření :) je to easy
Zax
Člen | 370
+
0
-

@FilipProcházka

ad 1.: Klidně pošlu, ale dřív jak zítra to nebude :-P a ještě předtím bych se chtěl ujistit, co by bylo nejlepší:

  1. Dát to do nette/application (@return Nette\Application\UI\Form) – osobně mi přijde asi nejlepší
  2. Dát to do nette/forms (@return Nette\Forms\Form) – osobně mi přijde zbytečné, běžnému uživateli Nette to je asi k ničemu
  3. Obojí – osobně by mi přišlo zbytečně matoucí

Souhlas že a) je nejlepší?

ad 4.: Už jsem zkoušel (https://github.com/…x/zaxcontrol), ale je to jen vytržené z mé (staré) knihovny, prakticky neupravené (jsou tam věci, které tam spíš nepatří), neudržované, nejsou k tomu testy (jsou v té staré knihovně) a navíc je dost těžké vyhovět všem a zároveň sobě (co mně přijde intuitivní by někdo jiný mohl považovat za velké WTF, což zrovna u téhle komponenty stopro platí). Ale když o to bude zájem, tak to rád přepracuji.

Editoval Zax (3. 1. 2015 17:18)

bazo
Člen | 620
+
+2
-

aky vyznam ma FormFactory? vzhladom na to, ze si to mozes implementovat sam za 5min
osobne takuto factory pouzivam ale nikdy z nej nevraciam UI\Form ale nejaku svoju BaseForm, setujem jej translator atd

ako mi s tymto pomoze ten interface?

Zax
Člen | 370
+
0
-

Je lepší, když kód závisí na interfacu než na konkrétní implementaci, protože ti to umožní implementaci podle potřeby změnit, aniž bys musel upravovat závislosti.

Př.: já si třeba napíšu nějakou továrničku na formuláře, ale pak přijde kolega a řekne „hele moje továrna je lepší“ a já to najednou chci vyměnit – no tak si ji prostě nastavím do configu aby se mi autowirovala a mám hotovo. Díky tomu, že oba implementujeme stejný interface z Nette, já nemusím vůbec sahat do kódu, abych si vyžádal správnou továrničku, protože nezávisím na své/kolegově/ničí implementaci, ale na obecném interfacu.

A klidně to může vracet BaseForm, to tomu nijak nebrání ;-)

Samo že si ten interface můžu napsat sám a pak vyžadovat, ale potom musím kolegy s tím interfacem seznámit a říct jim „hele, jestli někdy budeš dělat továrnu na formuláře, měla by implementovat můj interface“. Když je to rovnou v Nette, tak není vůbec co řešit :-)

bazo
Člen | 620
+
0
-

aj tak si tu implementaciu musis napisat, nie je to ako s tovarnickami pre komponenty. cakal by som, ze kolega tie zmeny spravi do existujucej tovarnicky, predpokladam nejaku spolupracu v time. a co sa da na tom tolko menit? nejsom proti, len mi to pride trochu zbytocne

David Grudl
Nette Core | 8228
+
0
-

Rozhodně je často vhodné v kódu nahradit new Form za formFactory->create(), totéž platí o celé řadě dalších objektů, včetně třeba new DateTime, ale nezdá se mi, že by tyto obecné rozhraní měly být součástí frameworku. To spíš bootstrapu.

Vojtěch Dobeš
Gold Partner | 1316
+
+5
-

Zax napsal(a):

3. Nette\Caching\**IStorage** (EDIT: to je bug že se to nezobrazuje tučně?) bych přejmenoval na ICacheStorage: pokud to nedělám celou dobu blbě, tak právě IStorage je to, co injektujeme, jenže v kombinaci s use v hlavičce je IStorage dost nečitelný (jakej storage? Pro cache? Nebo úložiště pro obrázky? …). A taky jsem se už několikrát přistihl, že jsem začal psát „ICacheSto…“ a pak mi to docvaklo :-) Jasně, je to fakt blbost a chápu, když se to nezmění kvůli zpětné kompatibilitě, ale tak je to taky nápad.

Na toto je snadný trik :). Stačí si dát kratší use:

use Nette\Caching;
public function __construct(Caching\IStorage $cacheStorage)
{
	...

Vypadá to moc pěkně :).

Zax
Člen | 370
+
+3
-

@bazo Právěže pokud ti stačí ta úplně nejjednodušší implementace (de facto new Form), tak to funguje naprosto stejně jak s továrničkami na komponenty – Nette ti tu základní implementaci vygeneruje.

Já to používám třeba i na továrny pro Doctriní entity – ano, většinou stačí new Entity, tudíž si vytvořím samotný interface a zbytek nechám na Nette, ale občas se stane, že chci entitu nějak doinicializovat (a tato potřeba se klidně může objevit až poté, co je půlka projektu napsaná), tak si napíšu vlastní implementaci, změním řádek v configu (resp. jen odmažu „I“ z názvu) a mám hotovo, nemusím lovit kde všude v kódu to musím přepsat.

Proto mě taky napadlo přidat IFormFactory do Nette – základní implementace v Nette být vůbec nemusí, nabušíš třeba 50 funkčních formulářů a až potom si uděláš implementaci a řešíš, jak těch 50 formulářů má vypadat.

Já takto prostě pracuji radši a vidím v tom jen potenciální výhody za naprosto minimální cenu, ale samozřejmě nechci to nikomu vnucovat, pokud se to někomu zdá zbytečné, mně to vlastně může být celkem fuk ;-)

@vojtech.dobes Tak samozřejmě, jenže IDEčka mají tendenci při automatickém doplňování do kódu vrážet nejkratší možný název a do klauzule use ten nejdelší.. a psát ručně něco, co si můžu nechat vygenerovat, mě nikdo jen tak nedonutí >:-D Ale je to fakt prkotina, neřešme to, prosím… s Nette jsem holt natolik spokojený, že mě pro zlepšení nic jiného než prkotiny nenapadá :-) Omlouvám za vytáhnutí tak hloupého tématu.

bazo
Člen | 620
+
+8
-

no ok, ale myslim, ze uz je to dost off topic.

v 2015 treba nette aktivne tlacit do zahranicia, nech prevalcuje laravel a ine obskurne frameworky

Croc
Člen | 270
+
0
-

Zdravím, chtěl bych se zeptat, jak to vypadá s budoucím vývojem a podporou Nette? Koukal jsem na github na graf commitů: https://github.com/…contributors?…
a je zde vidět že se v Nette cca 7měsiců prakticky nic nestalo.

David Matějka
Moderator | 6445
+
+3
-

@Croc nette se rozdelilo do vice nez 20 balicku, kde probiha vyvoj samostatne. Takze v nette/nette se opravdu nic nedeje. Agregovany seznam vsech commitu najdes tady

Jan Endel
Člen | 1016
+
0
-

Protože nette se rozdělilo na bžilion balíčků, protože pro lidi je jednoduší vypíchnout si jenom to co potřebují (tracy/latte/di …) nette/nette tyto všechny balíky pouze zastřešuje tak není třeba jej nějak aktivně vyvíjet. Podívej se na ostatní balíky. :)

looky
Člen | 99
+
+1
-

Co třeba konečně ta integrace nette.ajax.js přímo pod Nette?

MartinitCZ
Člen | 580
+
+3
-

@looky Jen ho nech tam kde je. @vojtech.dobes se o to stará dobře.

chemix
Nette Core | 1310
+
+3
-

Dokumentace, Knowledgebase, Zahranici (v jakemkoli poradi a v jakemkoli mnozstvi vetsim nez male mnozstvi)