contributte/webapp-skeleton – ukazkovy projekt pro rychly start noveho nette projektu
- Felix
- Nette Core | 1196
contributte/webapp-skeleton
Ukazkovy projekt pro inspiraci nebo rychly start noveho projektu. Postaveny na nette, contributte, nettrine, doctrine, ninjify a symfony balickach. Testovan pomoci nette/testeru, analyzovan pomoci phpstanu a kontrolovan pomoci codesnifferu.
Features
- posledni verze PHP 7.4 & 8.0
nette/*
balickycontributte/*
balicky- Doctrine ORM
nettrine/*
- Symfony komponenty
contributte/*
- codestyle
ninjify/*
pomocicodesniffer
- staticka analyza
phpstan
- testy (unit/integration) pomoci
nette/tester
- zakladni dokumentace (instalace, balicky, …)
- …vice na Githubu ⏭
Feedback
Projekt uz nejakou dobu funguje a poslouzil jako zaklad pro radu projektu. Pokud narazite na chybu nebo vas napadne nejaky zlepsovak, napiste.
Roadmap
- pridat vice ukazek
- pridat vice testu
Demo
- Felix
- Nette Core | 1196
Je to o konvencich kazdeho z nas. Snazim se najit nejake optimalni cleneni slozek nekolik let. Do UI jsem tady hodil nejake spolecne prvky pro komponenty a formulare, obecne veci ktere se tykaji UI prvku.
Modules beru jako jednotlive moduly, nejjednoduseji front vs admin.
Budu rad, kdyz mi @dakur ukazes svoje cleneni. At se muzu inspirovat.
- dakur
- Člen | 493
Mně přijde, že app se (krom nastavení infrastruktury) celé motá okolo UI, protože presenter/view taky není nic jinýho než jen objektová reprezentace jednoho prvku UI (stránky). Ale jen mě zajímalo, jak to vnímáš, můj pohled je taky ovlivněný tím, jak to děláme, neříkám, že něco je správně/špatně.
U nás se to taky postupně posouvá, ale dospěli jsme k tomu, že chceme mít strukturu co nejvíc flat a související věci u sebe. Aktuálně to vypadá zhruba takto. Hodně si potrpíme na striktnost, čitelnost a předvídatelnost, to se v tom taky odráží. 🙂
- app/
- Infrastructure/
- DI/
- Latte/
- Localization/
- Logging/
- Template/
- …
- UI/
- AccountsModule/
- DashboardsModule/
- Components/
- NotificationList/
- scripts/
- index.ts
- findNearest.ts
- translations/
- container.neon
- NotificationList.latte
- NotificationList.php
- NotificationList.scss
- NotificationListFactory.php
- NotificationListTemplate.php
- scripts/
- NotificationList/
- HistoryModule/
- HistoryOverview/
- Components/
- VersionOverview/
- …
- VersionOverview/
- DataContainers/
- translations/
- container.neon
- HistoryOverviewPresenter.latte
- HistoryOverviewPresenter.php
- HistoryOverviewPresenter.scss
- HistoryOverviewPresenter.ts
- HistoryOverviewRouter.php
- HistoryOverviewTemplate.php
- Components/
- HistoryVersionDetails/
- …
- container.neon
- HistoryModuleRouter.php
- HistoryOverview/
- container.neon
- BasePresenter.php
- index.ts
- index.scss
- bootstrap.php
- Infrastructure/
- cli/
- model/
Mimochodem, velmi se nám osvědčilo mít frontendové soubory po boku šablony 👍, ale předpokládá to nastavený tooling v projektu.
Editoval dakur (22. 12. 2020 9:49)
- Felix
- Nette Core | 1196
Poslusne hlasim, ze se planette/nutella-project prejmenoval na contributte/webapp-skeleton. Dekuji a jedeme dal.
- d@rkWolf
- Člen | 167
@Felix zdravím, měl bych dotaz:
PHPStorm mi hlási chybu v souboru TemplateFactory.php na řádku „$template->_user = $this->user;“, část před = podtrhuje, ovšem jako vysvětlení to píše jen „@property-read", nic víc. Zároveň mi nikde v šablonách nenapovídá metody nad tou přejmenovanou proměnnou "_user“, zato to napovídá ke standardnímu „user“ jak je to originálně v Nette. I když je ta proměnná v tom TemplateFactory unset($template->user). Chápal jsem to tak, že ty TemplateFactory a TemplateProperty slouží i k tomu, aby to správně napovídalo nad tou přejmenovanou proměnnou? Na ty soubory jsem nešahal, jsou tak, jak jsem si to naklonoval z webapp-skeleton repozitáře.
Mám to naklonované a upravený Composer na Php 7.4, protože 8 momentálně použít nemůžu, to by na to ale snad vliv mít nemělo.
Mimochodem, ty věci jako codestyle fungují jen pod tučňákem? Zkouší to spustit Bash a moc se mu to pod Win s WampServerem nedaří. Phpstan se mi spustit podařilo, ale vyžadovalo to v Make přepsat volání těch příkazů na opačná lomítka, než tam byla. Stejně tak bylo řekněme „zábavné“ zkoumat, jak přepsat ty migrační scripty z Postgre na MariaDB/MySQL(Postgre je uvedené jen u Docker setupu). Obecně mi přijde ten setup určený jen na dost specificky nachystané prostředí a jak někdo nepoužívá Docker, upřímnou soustrast. Já sem se za, co já vím, 10 let s Postgre databází ještě nepotkal, když už, to se mi spíš nabízelo MSSql…