Co se chystá nového v nejbližších dnech
- David Grudl
- Nette Core | 8227
Delší dobu se nic nového ve frameworku neobjevilo, takže zmíním, co vše se chystá a plánuje. A to v nejbližších dnech.
Začnu nejprve webem. Chystám zásadní update, který zavede editor tagů a snadné přidávání nových stránek (tutoriálů, screencastů) a doplňků. Posun od wiki k redakčnímu systému. Předpoklad spuštění začátkem týdne.
Dibi:
- připravuju docela zajímavé rozšíření tříd DibiResult a DibiRow zejména pro tzv. NoSQL využívání databáze.
- dále přidám mechanismus pro snadnější dolování dat z propojených tabulek. Termín nevím.
- mechanismus, kterému pracovně říkám „předbíhání budoucnosti“ a zatím o něm prozradím jen to, že to bude bomba :-)
A nakonec Nette.
- řeším problém
Environment::setMode()
, setName(), konfigurace a spol. V přepínání režimů by mělo být konečně jasno (asi tento týden) - řešení všech známých úskalí Route + usnadnění použití (začátkem příštího týdne)
- nový profiler, uživatelsky rozšiřovatelný (můžete vymýšlet grafické a obsahové návrhy)
- Guest identity, aneb identita nepřihlášeného uživatele. getIdentity() nebude nikdy vracet NULL. (termín tento týden)
- „předbíhání budoucnosti“ v šablonách, zatím si to nechávám jako tajemství
- …ale poskytne to zajímavé řešení pro dokonalý vykreslovač formulářů
- s formuláři pak souvisí i posun v InstantClientScript, dotažení live validace a celkové separace JS od HTML
- chci navrhnout postup ve věci bloků a snippetů, otevřu k tomu diskusi
To je tedy můj plán na nejbližší týdny. Nepište mi prosím, co všechno by se ještě mohlo udělat, další věci přijdou potom.
- Ondřej Mirtes
- Člen | 1536
Bylo by fajn, kdyby se ozval David Steigerwald a začal řešit ten AJAX, jak slíbil – kontaktovali jsme ho s manikem, neúspěšně :)
A taky je na GitHubu spousta vyplněných issues a ve Feature Requests spousta žádostí :)
- Honza Marek
- Člen | 1664
David Grudl napsal(a):
- nový profiler, uživatelsky rozšiřovatelný (můžete vymýšlet grafické a obsahové návrhy)
Viděl jsi nápad „nette panel“? https://forum.nette.org/…mo-na-strace?…
- David Grudl
- Nette Core | 8227
Honza Marek napsal(a):
Viděl jsi nápad „nette panel“? https://forum.nette.org/…mo-na-strace?…
Přesně tohle mám na mysli. Máš to hotové, nebo jde zatím o nápad?
- Patrik Votoček
- Člen | 2221
bylo by super kdyby se konečně podařilo oddělit validátory od formulářů (odstranila by se duplicita – validace v modelu)
- Honza Marek
- Člen | 1664
David Grudl napsal(a):
Přesně tohle mám na mysli. Máš to hotové, nebo jde zatím o nápad?
Jo aha. Bohužel je to jen nápad.
- Cifro
- Člen | 245
pekelnik napsal(a):
- bootstrapování modulů (třídy Module)
- jmenné prostory těchto tříd
- routování modulů
Moja reč. Lebo nedavno som to riešil a snažil sa využiť vstavanú
modulárnosť a celú app som dal pod jeden namespace, napr. MyApp\
a vtedy to už nevedelo načitavať presentery… Riešenim bolo upraviť
PresenterLoader
po vzore Nelly. Na jabberi poradili že by ten
namespace by mal mať tiež tvar MyAppModule\
ale to sa mi
nepačilo :/
- pekelnik
- Člen | 462
pekelnik napsal(a):
Také by bylo zajímavé nějaké univerzální rozhraní pro registraci pluginů.
Mohlo by to obsahovat dokonce nějaké základní jednoduché řešení závislostí.
Zktrátka plugin by definoval, že vyžaduje Nette Framework verze 1.0 a při registraci do applikace by to zařvalo pokud by Nette bylo 0.9.
To samé by mohlo být pro závislosti mezi pluginy.
Možná je to na nový vlákno… uvidim, kdyžtak vytvořim…
- pmg
- Člen | 372
Ahoj Davide,
dovol mi morálně podpořit především uvedené změny v knihovně Dibi: avizovaný plán ve mě vyvolal zřetelnou představu lepších zítřků.
Rozšíření NoSQL databází je bohužel spíše hudbou budoucnosti. Běžně používaná databázová schémata ale nabízejí velký prostor pro zjednodušení relačních dotazů a já jeho realizaci považuju za klíčovou pro usnadnění vývoje aplikací.
Troufám si dále tvrdit, že tuším, co máš na mysli pod pojmem
„předbíhání budoucnosti“; pro zábavu přidám md5 sum svého odhadu,
uvidíme, zda jsme uvažovali podobně:
b87baf176977d3c8e75da1c962944a5a
. Ať už tak nebo tak, dovedu si
představit, že to bude bomba.
Hodně štěstí, Davide!
- Honza Kuchař
- Člen | 1662
pekelnik napsal(a):
chci navrhnout postup ve věci bloků a snippetů, otevřu k tomu diskusi
Po prozkoumání nových snippetů jsem zjistil, že:
- nefungují v komponentách
- nefungují ve vnořených layoutech
čili: na zmíněnou diskusi se těším :)
To ale víme asi všichni. :)
- David Grudl
- Nette Core | 8227
Narazil jsem na názvoslovný problém týkající se nového
profileru. Slovo „profiler“ je asi nepatřičné. Změnit na Debug Bar?
Zapínat přes Debug::enableBar()
mebo zapínat automaticky při
Debug::enable()
? (a třeba vypínat jen kliknutím na
křížek?).
Implementace vlastních panelů může být řešena buď skrze callbacky nebo skrze objekty implementující určité rozhraní. Asi by byla vhodnější druhá cesta – je vhodný název IDebuggable (tj. využití existujícího interface?)
- Roman Ožana
- Člen | 52
Určitě bych aktivaci oddělil, je to praktičtější. Takže Debug::enableBar() a taky se mi více líbí myšlenka implementace rozhraní, než callbacky.
- Mikulas Dite
- Člen | 756
Přesně tak, bude to stále zaplé (a časem se i laděnka může schovávat do toho), takže jsem pro celkový Debug::enable().
- norbe
- Backer | 405
Vypadá to suprově. Už se nemůžu dočkat :-)
Myslím že v této podobě by se to dalo využít i na jiné informace, než jen ladící (na rychlo mne napadla třeba nápověda k aktuální stránce v administraci), to by ale potom moc neodpovídalo tomu názvu Debug bar (co třeba Information bar? :)) a už vůbec ne interfacu IDebuggable (a tady něco jako IInfoPanel).
- Honza Marek
- Člen | 1664
David Grudl napsal(a):
nebo zapínat automaticky při
Debug::enable()
? (a třeba vypínat jen kliknutím na křížek?).
Proč ne, aspoň nikdo nebude nahrávat na web aplikaci se zapnutým debug módem (ani radvis). A taky panel pro nikoho nezůstane utajen.
Implementace vlastních panelů může být řešena buď skrze callbacky nebo skrze objekty implementující určité rozhraní. Asi by byla vhodnější druhá cesta – je vhodný název IDebuggable (tj. využití existujícího interface?)
Určitě interface. Bude asi potřeba víc metod než jedna. Cca:
interface IDebugPanel
{
public function getName();
public function getIcon();
public function render();
}
IDebuggable jsem koukal má jednu metodu getPanels. To si nedovedu představit jak to využít. Kromě možnosti, že by vracela pole IDebugPanelů..
- pekelnik
- Člen | 462
David Grudl napsal(a):
… Zapínat přes
Debug::enableBar()
mebo zapínat automaticky přiDebug::enable()
? (a třeba vypínat jen kliknutím na křížek?).
V jednoduchosti je síla, takže jednoznačně:
<?php
Debug::enable();
?>
…a zavření by mohlo být „minimalizací“ jenom do nějaké malé ikonky, která by se „přicucla“ k hraně obrazovky aby to šlo zase otevřít :)
kromě toho by bylo prima aby laděnka šla ovládat klávesnicí – především Open/Close třeba na F10 ?
- vrana
- Člen | 131
Předbíhání budoucnosti (aspoň jak jsem to pochopil z rozhovoru s Davidem) jsem využil v knihovně NotORM. Je to popsané pod nadpisem Limiting selected columns.
- paranoiq
- Člen | 392
@vrana: pokud jsem to správně pochopil, tak resultset si při prvním použití zapamatuje, že nebyl použit optimálně (některé sloupce se načítaly zbytečně) a napříště už o tyto sloupce databázi nepožádá… ok?
jenže je tady problém. stejný dotaz (SELECT * FROM…) mohu použít na více místech a požadovat od něj jiná data. je nějak ošetřeno tohle?
napadá mě třeba vztáhnout informaci v keši ke stopě z debug_backtrace()
update: a co když jsou některé sloupce čteny podmíněně?
Editoval paranoiq (5. 5. 2010 16:25)
- vrana
- Člen | 131
@paranoiq: Identifikátorem v cache je tabulka a seznam sloupců
použitých ve WHERE. To je většinou zcela dostačující – pro detail se
použije něco jako table;id
, pro seznam
table;id_parent,disabled
nebo samotné table
. Pokud se
stejný dotaz (v tomto smyslu) použije na více místech, tak se bere
sjednocení použitých sloupců, totéž platí pro podmíněné čtení
sloupců.
Když by to náhodou někde nestačilo, tak se to pořád dá nastavit
ručně pomocí select
.
O debug_backtrace
jsem původně taky přemýšlel, ale jednak
by to zbytečně zdržovalo a jednak to není moc robustní – stačí malá
změna v kódu a výstup debug_backtrace
se změní, takže by se
v cache držely už dávno nepoužívané záznamy.
- David Grudl
- Nette Core | 8227
Měl jsem představu takovou, že ID cache bude vytvářet přímo šablona a to jako hash cesty k souboru + čítač uvnitř šablony.
- Filip Procházka
- Moderator | 4668
Zdravím, ocenil bych nějaký jednoduchý způsob jak z tlačítka udělat odkaz…
zatím to dělám takhle
(string) Html::el('div')->style('cursor:pointer;')
->onClick('window.location.href="'.$link.'";')
ale to se mi vubec nelibi, ten e.preventDefault()
by tam mohl
mít nějakou pěknou podmínku :)