Avatar
Michal Němec:18. července 11:02

Ahoj,

chtěl bych vytvořit jednoduchou webovou aplikaci a chci se poradit jestli mám začít studiem php nebo můžu přistoupit rovnou na nette framework.

Díky

 
Odpovědět 18. července 11:02
Avatar
Honza Bittner
Šupák
Avatar
Odpovídá na Michal Němec
Honza Bittner:18. července 11:09

Nette je framework postavený nad jazykem PHP, takže jak už jde logicky soudit, musíš umět alespoň základy PHP. Pak se samozřejmě můžeš zaměřit přímo na Nette. :-)

Nahoru Odpovědět  +2 18. července 11:09
Milovník Dartu. Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/...
Avatar
Milan Turyna
Redaktor
Avatar
Milan Turyna:18. července 11:12

Ahoj,

než začneš s Nette či s jakýmkoliv jiným frameworkem se nauč aspoň základní PHP konstrukce a při nejlepším i něco pokročilého, jinak co se týče frameworku, doporučuji vyzkoušet více frameworků aby sis vyzkoušel to co ti nejvíce bude vyhovovat vím že Nette láká třeba svojí českou dokumentací, ale kdybys chtěl později pracovat jako php developer i někde jinde než v ČR tak většina firem Nette nezná, ale tohle je jen můj osobní názor.

 
Nahoru Odpovědět 18. července 11:12
Avatar
Odpovídá na Honza Bittner
Michal Němec:18. července 11:13

Aplikace bude sloužit k evidování kontrol v oboru kominictví. Každý rok je dáno, že se musí provádět kontroly komínu. Tyto kontroly bych chtěl ukládat do webové aplikace. Moje vize. Přihlásím se do rozhraní a v rozhraní budu mít "Zadat novou kontrolu" kde do polí vypíšu potřebné údaje a po odeslání se kontrola uloží do databáze. Dále bych si představoval kolonku nebo způsob Reportu tzn.:

- Najdi mi a vypiš všechny zákazníky, kteřá nemají hotovou kontrolu k dnešnímu dni
- Kolik zákazníků nemá kontrolu dle obcí
- Kolik jsem vydělal v této obci

atp.

Bylo by dobré rozdělit to na jednotlivé oprávnění - tzn. "admin" bude moct zadávat, mazat a editovat kontroly včetně všech filtru, ale "user" bude moct kontroly jen zadávat a nebude mít možnost zobrazit si pohled například na ceny atp.

Firma mě to nabídla za 35.000,- bez DPH, což není moc, ale vzhledem k času a chuti se něco nového naučit, bych se do to rád ponořil. Je vůbec reálné něco takového sám udělat, aby to bylo bezpečné?

Moc děkuju za zpětnou vazbu.

 
Nahoru Odpovědět 18. července 11:13
Avatar
Michal Němec:18. července 11:17

Takto mě napadlo, že by mohla být sestavena DB z tabulek

CREATE TABLE `d_zakaznik` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `aktivni` int(1) NOT NULL DEFAULT '1',
  `datum_vytvoreni` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `jmeno` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
  `prijmeni` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
  `mesto` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
  `ulice` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
  `cp` int(10) NOT NULL,
  `psc` int(10) NOT NULL,
  `telefon` int(10) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  `ic` int(10) DEFAULT NULL,
  `dic` int(10) DEFAULT NULL,
  `poznamky` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;

CREATE TABLE `d_zamestnanec` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `aktivni` int(1) NOT NULL DEFAULT 1,
  `datum_nastupu` date NOT NULL,
  `ridicsky_p` varchar(50) COLLATE utf8mb4_czech_ci DEFAULT NULL,
  `vzdelani` varchar(50) COLLATE utf8mb4_czech_ci DEFAULT NULL,
  `jmeno` varchar(50) COLLATE utf8mb4_czech_ci NOT NULL,
  `prijmeni` varchar(50) COLLATE utf8mb4_czech_ci NOT NULL,
  `mesto` varchar(50) COLLATE utf8mb4_czech_ci NOT NULL,
  `ulice` varchar(50) COLLATE utf8mb4_czech_ci NOT NULL,
  `cp` int(10) NOT NULL,
  `psc` int(10) NOT NULL,
  `telefon` int(10) DEFAULT NULL,
  `email` varchar(50) COLLATE utf8mb4_czech_ci DEFAULT NULL,
  `ic` int(10) DEFAULT NULL,
  `dic` int(10) DEFAULT NULL,
  `poznamky` varchar(50) COLLATE utf8mb4_czech_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;

CREATE TABLE `f_kontrola` (
  `kontrola_cislo_zpravy` int(10) UNSIGNED NOT NULL,
  `zakaznik_id` int(10) NOT NULL,
  `zamestnanec_id` int(10) NOT NULL,
  `platnost_od` date NOT NULL,
  `platnost_do` date NOT NULL,
  `druh_paliva` varchar(50) COLLATE utf8mb4_czech_ci NOT NULL,
  `pocet_kominu` int(10) NOT NULL,
  `cena` int(10) NOT NULL,
  `zjistene_nedostatky` varchar(50) COLLATE utf8mb4_czech_ci,
  PRIMARY KEY (`kontrola_cislo_zpravy`),
  CONSTRAINT fk_kontrola_zakaznik FOREIGN KEY (zakaznik_id) REFERENCES d_zakaznik (id) ON DELETE CASCADE ON UPDATE RESTRICT,
  CONSTRAINT fk_kontrola_zamestnanec FOREIGN KEY (zamestnanec_id) REFERENCES d_zamestnanec (id) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
Editováno 18. července 11:19
 
Nahoru Odpovědět 18. července 11:17
Avatar
Honza Bittner
Šupák
Avatar
Odpovídá na Michal Němec
Honza Bittner:18. července 11:19

Ta aplikace je dost jednoduchá, takže je to reálné, samozřejmě v závislosti na tvých dosavadních znalostech atp. A bezpečnost za tebe většinou řeší právě framework, tady konkrétně to Nette. Pokud se nedopustíš nějakých vlastních failů, a budeš dodržovat dokumentaci, tak by to mělo být ok.

Nahoru Odpovědět 18. července 11:19
Milovník Dartu. Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/...
Avatar
Milan Turyna
Redaktor
Avatar
Milan Turyna:18. července 11:20

Samozřejmě to reálné je, ale vzhledem k tomu, že zatím neumíte PHP ani v základním měřítku tak bych doporučoval si dát čas na učení PHP a potom přejít na to Nette, a učit se zas to, protože samozřejmě jde to vytvořit i v PHP bez frameworků, ale můžete na něco zapomenout a máte nebezpečnou chybu, frameworky tohle například řeší.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 18. července 11:20
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:18. července 12:15

Michal Němec - php nebo framework, zalezi na tom... Jestli neznas aspon podobny jazyk a neumis spracovat s online dokumentaci php.net a googlem, tak pro tebe kody nette frameworku nebudou davat moc smysl. A jeste jestli nevis, jak to vsechno funguje dohromady, klient = html, css, js, server = php, mysql.

Vzhledem k tomu, ze umis mysql, nejspis, tak mozna ovladas jiny jazyk. Proc nepouzijes ten a chces nutne php?

Jinak, php je celkem v klidu. Jen je fajn si pro komunikaci s mysql udelat nejakou vlastni class, pripadne pro zacatek pouzit cizi. Tusim, ze tady v nejakem clanku jsem neco videl.
Pak je treba osetrovat formulare, data od uzivatele, kontroly a fura veci, ktere nette uz ma nejak poresene.
Takze jo, jsem pro, klidne zkus nette.

google = nette jednoduchy formular
google = nette mysql / pdo formular

 
Nahoru Odpovědět  +1 18. července 12:15
Avatar
Odpovídá na Peter Mlich
Michal Němec:18. července 12:33

Žádný backend jazyk kromě MySQL neznám a z těch frontend znám základně HTML a CSS, -> Bootstrap. Z pár pročtených článků tady jsem zjistil, že pokud bych chtěl udělat něco podobnému tomu viz. výše, tak se musím naučit nějaký programovací jazyk typu JAVA, .NET nebo PHP.

Vzhledem k tomu, že jsem začátečník, tak bych měl začít na PHP (nejjednodušší OOP jazyk) pokud tomu dobře rozumím, nebo v tom mám guláš a doporučili byste mi jiné technologie, jiný postup?

Díky

 
Nahoru Odpovědět 18. července 12:33
Avatar
Milan Turyna
Redaktor
Avatar
Milan Turyna:18. července 12:46

Na tuhle webovou aplikaci ti doporučuji PHP s nějakým frameworkem kvůli větší bezpečnosti.

Editováno 18. července 12:47
 
Nahoru Odpovědět  +2 18. července 12:46
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:18. července 12:51

On existuje i jakysi javascript pro servery, tusim na zaklade jsonu. Treba by ti to stacilo.

Ano, jestli chces delat neco s daty, ukladat, tak potrebujes neco, co to umi, treba php. Zapisovat do souboru nebo pohodlneji do mysql. Php je js v mnohem podobne. Jen se vsude k promennym dava $. Coz je takove neprijemne. Mozna by ti byl privetivejsi python. Ale k tomu neznam solidni dokumentvaci. Casto marne hledam v textu, jake tam maji funkce vstupy, vystyypu a treba 10-20 prikladu, ktere v php online dokumentaci jsou. Ale mozna neumim jen googlovat spravna mista.
Php funguje v podstate podobne jako js. Idealne, kdyz si do promene ulozis html a pres echo "text"; echo $str; to pak vypises. Dobre je pouzivat nejakou sablonu. Spousta lidi dela tu chybu, ze micha php s vypisem.

Tez je mozna dobre si udelat neco jako web-services.
query.php?nazev=o­soby&jmeno=La­dislav&out=csv
Zavola sql, overi prihlaseni uzivatele, pouzije dotaz pro 'lide', vytahne data z sql, preformatuje do csv (xml, js, text, html, ...).
Pak to muzes volat pres javascript, jquery, request a vypisovat pres js.
Takze, cela ta tva prace bude jen v tom vyresit prihlaseni uzivatele a zadat do adresy requestu spravne parametry.
No, a web-services prave nemusi bezet na nette, ale muze. A muze to byt i python. Ten kod nebude nijak slozity. Treba pro studijni system vypada dokumentace/seznam WS treba takto
https://stag-ws.slu.cz/ws/web?…

Editováno 18. července 12:52
 
Nahoru Odpovědět  +2 18. července 12:51
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:18. července 12:57

Jo, a viz Turyna. To, co popisujes, vypada jako velky prusvih z hlediska proti hackerske bezpecnosti a GDPR. Spoustu osobnich udaju, osoby, bydliste pro gps navadenou strelu, platba kdo je jak moc bohaty.
Takze je lepsi prave framework, ktery uz ma aspon zakladni zabezpeceni.

 
Nahoru Odpovědět  +2 18. července 12:57
Avatar
Milan Turyna
Redaktor
Avatar
Milan Turyna:18. července 12:58

Co se týče toho serverového JS tak základy jsou i zde na itnetwork.. https://www.itnetwork.cz/…cript/nodejs

 
Nahoru Odpovědět 18. července 12:58
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:19. července 9:05

Jak uz to byva, kdyz googlujes neco jineho, narazil jsem na clanek
https://hackr.io/…-php-in-2019

Top 10 Alternatives to PHP in 2019

1. Javascript
2. Java
3. Python
4. Ruby
5. C#
6. Go
7. Erlang
8. Elixir
9. C++
10. Rust

 
Nahoru Odpovědět  +1 19. července 9:05
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Peter Mlich
albertpatera:21. července 11:33

Doporučoval bych javascript, konkrétně NodeJS. Dají se v něm dělat real-time aplikace.

 
Nahoru Odpovědět 21. července 11:33
Avatar
Michal Němec:22. července 7:10

Moc dekuju za vsechny prispevky :)

 
Nahoru Odpovědět 22. července 7:10
Avatar
Milan Turyna
Redaktor
Avatar
Milan Turyna:22. července 7:28

Není zač, ať se daří :-)

 
Nahoru Odpovědět 22. července 7:28
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 17 zpráv z 17.