Návrh stránek

Návrh stránek
« kdy: 05. 11. 2013, 11:49:02 »
Ahoj, chtěla jsem se zeptat zdejších GURU, zda by mi někdo neporadil s následujícím problémem. Začínám v OOP v PHP a nevím, jak rozvrhnout kód. Celé stránky jsou v OOP, všechno funguje super, ale nevím kam ukládat obsah jednotlivých stránek. Mám pro každou stránku vytvořit vlastní class? Mám vytvořit společnou class a html + php kód ukldat do mysql? Nebo se to dělá jinak? Poradí někdo? Děkuji, Veronika Lipská.


Jozef

Re:Návrh stránek
« Odpověď #1 kdy: 05. 11. 2013, 14:34:29 »
Zobral by som si priklad z neakeho CMS napr. drupal, alebo wordpress.
Vacsinou sa to robi tak, ze v jednej tabulke su ulozene stranky.
Jednoducha struktura tabulky by mohla vyzerat napr. takto:
ID integer, #identifikátor
NAME varchar(150), #Názov stránky
CONTENT text, #Samotný obsah stránky
PARENT ID int# ak mame hierarchicku strukturu.
Potom sa do sablony "nasype" na prislusne miesta konkretny obsah napr. menu, alebo samotny obsah stranky.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Návrh stránek
« Odpověď #2 kdy: 05. 11. 2013, 14:59:37 »
html + php kód ukldat do mysql

Obecně platí: Všechno, jenom to ne!

Pro tvorbu webové aplikace, tedy pro případ, že píšete webovou aplikaci s nějakou netriviální funkcionalitou na pozadí, tedy např. e-shop, rezervaci letenek atp:

Doporučuji použít nějaký framework, česky "aplikační rámec", tedy komplexní sadu předpřipravených věcí, která právě takové věci řeší, abyste je nemusela řešit sama. Vidím, že máte v této oblasti málo zkušeností - bez urážky, ale kdybyste se snažila vše řešit sama, trvalo by to dlouho a skončilo by to nefunkčním a neudržovatelným peklem. Napsat netriviální webovou aplikaci s dobrou vnitřní architekturou není sranda ani pro zkušeného programátora. S výběrem frameworku zde nepomůžu, protože "webovky v PHP" už několik let nedělám. Ale codeinteger nebo Zend (alespoň před lety) byla dobrá volba. V tomto případě by Vaši volbu frameworku měla ovlivnit především dostupnost kvalitní literatury, která by se kromě samotného frameworku měla věnovat také "teoretickým věcem"


1) Tvorba webu obecně
Zatím žádná technologie plně a funkčně neabstrahovala HTTP protokol, HTML a Javascript. Stejně tak existují zásady, jak psát stránky tak, aby si je přečetli slepí, aby barvy nebily do očí, aby lidi nebyli zmatení (mám na mysli vyhledávání v pravo nahoře, odkazy a pouze odkazy podtržené apod.)

2) Návrhový vzor MVC
Není dokonalý, ale je to jako s demokracií - všichni uznáváme, že to je to nejlepší, co zatím máme.

3) Jazyk PHP, objekty v PHP
PHP je jeden z nejhorších jazyků, které se v současné době masivně používají. Horší už je snad pouze Brainfuck (http://en.wikipedia.org/wiki/Brainfuck). Nicméně občas je kód v Brainfucku a v PHP od sebe k nerozeznání.

4) Samotný popis frameworku
Jak zobrazit stránku, jak udělat použitelný kód, jak vzít data od uživatele a jak mu je zobrazit, kterým datům od uživatele se může věřit, jak zabezpečit ty, kterým se nemá věřit ...

5) Alespoň základy relačních databází
Například alespoň 4 "Normální formy pro databáze" (je jich celkem 9 (v ne-akademických kruzích se často uvádí 7), v praxi se používají obvykle první 4). První z nich říká, že záznamy v buňkách tabulky mají být atomické, tedy m.j. to, že se tam nerve programový kód, když k tomu není ku*va dobrý důvod (výjimkou je např. níže zmíněný uživatelský obsah jako novinové články, kde se ale PHP kód nevyskytuje). ;-)


Pro případ, že chcete jen ukládat uživatelský obsah, tedy např. fórum, redakční systém (pro internetový časopis, např. Root.cz), fotky, jednoduchou sociální síť apod:

Vemte již hotové řešení. Dobré fórum je např. PHPBB, redakní systém např. Drupal. K Drupalu existuje tuna literatury a záklandí instalaci a správu obojího zvládne téměř každý.

V žádném případě ale nedoporučuji šetřit na literatuře. Navíc mnoho kvalitních knih se dá sehnat na internetu v elektronické formě i zdarma, stačí použít google. Jen doporučuji se vyhnout českým knihám - přestože mnohé jsou velmi kvalitní, zrovna zde se pohybujeme v oblasti, kde informace velmi ryhcle zastarávají a nikomu se tedy nevyplatí knihy překládat do češtiny nebo je psát v češtině.


eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Návrh stránek
« Odpověď #3 kdy: 05. 11. 2013, 15:04:09 »
Jinak píšete, že začínáte s PHP a OOP. Přestože objektově orientované programování není samo o sobě špatná věc (opět - existují lepší i horší možnosti; jenom tato je nejrozšířenější), oproti procedurálnímu programování (např. PHP do verze 5 nepodporovalo objekty - programovalo se procedurálně) přináší celkem dost komplexity navíc. Není to jenom o tom "vytvořit class pro stránku". Pro začátečníka je možná na zvážení, zda-li se do toho rovnou pustit či nikoliv.

txt

Re:Návrh stránek
« Odpověď #4 kdy: 05. 11. 2013, 17:07:07 »
Pokud chcete tvořit celkem dobé aplikace:
Ze zkušenosti mohu doporučit Code igniter - je to celkem jednoduchý, dobře zdokumentovaný a funkční. V Drupalu se nevyznám, ale asi to taky bude celkem dobrá volba.

Pokud chcete vědět jak to funguje:
Hotových řešení je moc. Pokud chcete v budoucnu pracovat jako analytik, tak to ani nemusí být ztráta času. V tom případě: 1)pochopit OOP 2) pochopit OOP v PHP 3)Návrhové vzory a UML 4)kouknout jak vypadá nějaký hotový řešení a na základě získaných zkušeností navrhnout vlastní.

Webům se už moc nevěnuju - díky tomu můžu mít lepší nadhled než lidi pro který to je denní chleba ;)