[ Príspevkov: 8 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.11.08
Prihlásený: 23.06.16
Príspevky: 123
Témy: 29 | 29
NapísalOffline : 28.12.2011 21:04 | MVC architektura

zdravim,

zacal som sa trochu zaujimat o tento sposob tvorenia webov, pokukal par tutorialov a frameworkov a nie vsetko som dostatocne pochopil. respektive som schopny uz vytvorit v podstate hocijaku web aplikaciu prostrednictvom jednoho jednoduchsieho MVC frameworku, len neviem, ci by bola spravne strukturovana podla MVC logiky.

najprv som skusal Zend Framework, ten bol ale dost zlozity a pre mna asi zbytocny, kedze nechapem poriadne ani zakladom. nasiel som si teda taky uplne elementarny framework http://www.phpro.org/tutorials/Model-Vi ... r-MVC.html , co je nieco ako zjednodusena verzia Zendu a do neho si chcem spravit jednoduche CMS. zo zaciatku staci, ked bude prepojeny z MySQL DB a schopny odtial vytiahnut nejake zakladne settingy, dalej samozrejme zobrazovat jednotlive stranky, ktore budu tiez v DB a zakomponovat do toho nejakym sposobom moznost zmenit jazyk, ktory sa ulozi userovi do cookies. nasledne si preklad predstavujem tak, ze kazdy string pred vystupom prebehne nejakou funkciou, ktora ho vyhlada v patricnom csv subore a ak najde, prelozi.

stiahol som si teda ten framework a zacal som so zobrazovanim straniek. do indexovej akcie indexoveho kontroleru som napisal kod na vytiahnutie titulku a HTML kodu z databaze pre indexovu stranku, posunul tieto hodnoty templejte a ta to vykreslila. dalej je v tom kontroleri funkcia _call(), ktora zaisti zobrazovanie dalsich straniek.

dalej chcem spravit nejake menu a uz tu som si neisty. kam ten kod pre zobrazovanie menu vlozit? mam spravit novy kontroler pre menu a potom to nejakym sposobom prepojit alebo to zakomponovat do indexoveho kontrolera? to iste pre preklad, vobec neviem kam tu funkciu mam plesknut :/

mohol by mi to niekto vysvetlit? pripadne poskytnut nejaky vhodny priklad jednoducheho webu, ktory vyuziva MVC?

dakujem


Offline

Užívateľ
Užívateľ
MVC architektura

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 28.12.2011 22:01 | MVC architektura

CodeIgniter si skusal?

http://codeigniter.com/user_guide/

// pridané po 48 sekundách od posledného príspevku

mas tam aj videotutorialy, popripadne na zajtra.sk je celkom poho videocast


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.11.08
Prihlásený: 23.06.16
Príspevky: 123
Témy: 29 | 29
Napísal autor témyOffline : 28.12.2011 23:40 | MVC architektura

tak problematika je tam predsa rovnaka. nejde mi o framework, ale proste o celkove pochopenie toho MVC.

ten kontroler, co ma na starosti zobrazovanie stranok, si myslim, ze mi funguje spravne - vypyta si udaje (titulok, HTML kod) z db pre konkretnu stranku a posle ich do viewu. zvysok templejty stranky ako header a footer je definovany v php subory na serveri. cize jedine, co je tam zatial dynamicke, je ten titulok a HTML kod danej stranky.

menu by som mohol spravit podobne, ze jednoducho v tom istom kontrolery si selectnem z databazy vsetky titulky a poslem ich v arrayi do view, kde ich nejakym cylkom zobrazim. neviem ale to, ako a kam zakomponovat do toho webu nejake ine funkcie, ako spominany preklad alebo hocico ine, co vlastne ani nepotrebuje databazu, aby to bolo stale v tom MVC kontexte.


Offline

Užívateľ
Užívateľ
MVC architektura

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 29.12.2011 11:28 | MVC architektura

no tazko ti poviem, kedze tvoj Framework nepoznam a netusim ako tam funguje hierarchia.

no vseobecne by to malo byt asi tak, ze kontroler a jeho metody ti vlastne kontroluju, ktora cast webu sa zobrazi. model ti komunikuje s databazou, spracuva nejake data. takez v kontrolery volas potrebne metody z modelov a dalej nejak spracujes data. a nakoniec do viewu tie data posielas, aby si ich zobrazil v prehliadaci.

takze ak chces vytvorit menu, nevytvaras dalsi kontroler, ale ho vygenerujes v nejakej casti modelu.

v CI existuju aj helpre popripadne libraries. takze ja to tam robim trochu inak, ale je to zbytocne vysvetlvoat, ekd itak nebudes mat sajnu o com hovorim.
MVC architektura

Pozri si te videotutiraly, ktore som ti spominal. ten videocast na zajtra.sk ma viac dielov a je po slovensky, takze by si z toho mal dost pochopit.

Dalej co je "original" tutorial od tvorcov CI, ukazuju tam ako za 20 minut naprogramovat blog pomocou toho FW. a je tam aj nejaky uvod do CI. z toho by si mal princip pochopit.


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.11.08
Prihlásený: 23.06.16
Príspevky: 123
Témy: 29 | 29
Napísal autor témyOffline : 02.01.2012 18:53 | MVC architektura

no pozeral som si tak letmo tu user guide a nejake priklady a je to v podstate +- dost podobne tomu zendu. v zende som to ale pochopil tak, ze model je naviazany iba na jednu tabulku v databaze. tu ale pozeram, ze vlastne mozem pracovat s ktoroukolvek tabulkou.

cize keby som napriklad chcel spravit indexovu stranku, ktora by vypisovala 10 najnovsich noviniek a 10 najnovsich tem vo fore, tak do indexoveho modelu by som spravil jednu metodu, ktora by vracala 10 noviniek z novinkovej tabulky a druhu z fora. v kontroleri by som to array vlastne iba posunul do viewu, kde by sa to nejakym cyklom vypisalo. tak?


Offline

Užívateľ
Užívateľ
MVC architektura

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 03.01.2012 18:25 | MVC architektura

no myslim ze si to pochopil spravne


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.11.08
Prihlásený: 23.06.16
Príspevky: 123
Témy: 29 | 29
Napísal autor témyOffline : 09.01.2012 15:49 | MVC architektura

tak diky moc, celkom ma to chytilo ;)

inak skusam si prerobit moj povodny web do tohoto frameworku a celkom mi tam nevyhovuje ta trieda Language, lebo preklady dokaze cerpat iba so suborov na serveri. kedze ale ja mam kopu prekladov dlhsich textov ulozenych v databazi, ako to riesit? zatial som to spravil tak, ze som si vytvoril novu kniznicu (do application/libraries), ktora cerpa tie preklady z DB na zaklade ID. v podstate mi vsetko funguje ako ma, len by som chcel vediet tvoj nazor, ci je to riesene spravne a ako by si to riesil ty. myslim si, ze samotny kod tej triedy mam spraveny dobre, len si nie som isty, ci je to spravne zakomponovane do toho webu - ci to nema byt riesene ako helper, alebo to zakomponovat do modelu a ci vobec je spravne, ze kniznica komunikuje s databazou. lebo pride mi, ze takto trochu straca zmysel model, kedze z modelu vyberiem iba id, to posuniem tej mojej funkcii na preklad a az ta vyberie z databaze konkretny text.

Kód:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Translate
{
var $user_language;
var $default_language;
var $CI;


    public function __construct(){
        $this->CI =& get_instance();
        $this->CI->load->helper('cookie');
        $this->user_language = get_cookie("lang");
        $this->default_language = $this->CI->config->item("default_language");
       
        if(!$this->user_language){
            $this->user_language = $this->default_language;
            set_cookie("lang", $this->default_language, time()+3600000);
        }
    }
   
    public function translate($item, $id){
        $query = $this->CI->db->query("SELECT translate FROM preklady WHERE item='$item' AND text_id='$id' AND language='$this->user_language'");
        if($query->num_rows() > 0){
            $translate = $query->result();
            return $translate[0]->translate;
        }
        else{
            return $this->get_default_translate($item, $id);
        }
    }
   
    private function get_default_translate($item, $id){
        $query = $this->CI->db->query("SELECT $item FROM stranky WHERE id='$id'");
        if($query->num_rows() > 0){
            $default_translate = $query->result();
            return $default_translate[0]->$item;
        }
        else{
            return "Sorry, no translate for this text - ".$item."_".$id;
        }
    }
   
   

}


Offline

Čestný člen
Čestný člen
MVC architektura

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5447
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 09.01.2012 16:23 | MVC architektura

Môžeš si urobiť vlastnú knižnicu, alebo rozšíriť tú, ktorá je súčasťou frameworku. Také menšie nakopnutie môžeš nájsť tu: http://codeigniter.com/wiki/Language_Class_Extended_DB


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
 [ Príspevkov: 8 ] 


MVC architektura



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Architektura skrinky-vetranie

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Modifikácie, návody a projekty

39

3319

20.08.2006 22:38

Shark NX

V tomto fóre nie sú ďalšie neprečítané témy.

32bit / 64bit architektura

v Intel - Integrated Electronics

3

898

12.05.2009 14:36

Srnka0

V tomto fóre nie sú ďalšie neprečítané témy.

Redakčný systém ( MVC )

v PHP, ASP

4

234

17.02.2015 16:48

majky358

V tomto fóre nie sú ďalšie neprečítané témy.

MVC framework (php)

v Ostatné

6

822

18.02.2009 18:52

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

MVC: časť model

v PHP, ASP

2

414

26.01.2011 16:55

Flety

V tomto fóre nie sú ďalšie neprečítané témy.

Jednoducha MVC aplikacia PHP

v Ponuka práce

0

165

12.12.2014 17:42

peter902

V tomto fóre nie sú ďalšie neprečítané témy.

Architektura Fermi - Nvidia GF100 se představuje

v Novinky

8

630

18.01.2010 20:53

Malveon

V tomto fóre nie sú ďalšie neprečítané témy.

C# .NET MVC Frontend programator

v Ponuka práce

2

266

10.01.2013 19:43

TJ

V tomto fóre nie sú ďalšie neprečítané témy.

Java - Navrhovy model MEDIATOR, MVC

v Assembler, C, C++, Pascal, Java

0

120

14.04.2016 23:35

janik12333

V tomto fóre nie sú ďalšie neprečítané témy.

Architektúra mobilných telefónov s dvoma rozličnými CPU

v Novinky

1

250

30.10.2011 21:40

nBXXL

V tomto fóre nie sú ďalšie neprečítané témy.

nVidia Kepler:architektura a devět GeForce 600M v noteboocíh

v Novinky

6

1298

01.04.2012 15:40

Xaltotun



© 2005 - 2017 PCforum, edited by JanoF