contributte/webapp-skeleton – ukazkovy projekt pro rychly start noveho nette projektu

Felix
Nette Core | 1186
+
+12
-

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
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
dakur
Člen | 493
+
0
-

Zajímavé. 👍

Taková drobnost – osobně jsem prezentery hledal ve složce ui a když jsem je tam nenašel, její účel mi není úplně jasný. Naopak složka modules mi evokuje spíš něco jako components nebo libs, něco technického. Neměly by být spíše v ui?

Felix
Nette Core | 1186
+
0
-

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
+
+7
-

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
      • HistoryModule/
        • HistoryOverview/
          • Components/
            • VersionOverview/
          • DataContainers/
          • translations/
          • container.neon
          • HistoryOverviewPresenter.latte
          • HistoryOverviewPresenter.php
          • HistoryOverviewPresenter.scss
          • HistoryOverviewPresenter.ts
          • HistoryOverviewRouter.php
          • HistoryOverviewTemplate.php
        • HistoryVersionDetails/
        • container.neon
        • HistoryModuleRouter.php
      • container.neon
      • BasePresenter.php
      • index.ts
      • index.scss
    • bootstrap.php
  • 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 | 1186
+
+3
-

Poslusne hlasim, ze se planette/nutella-project prejmenoval na contributte/webapp-skeleton. Dekuji a jedeme dal.

d@rkWolf
Člen | 163
+
0
-

@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…