Pereiti prie turinio

apieviska

Patvirtinti nariai
  • Pranešimai

    2.608
  • Užsiregistravo

  • Lankėsi

  • Laimėta dienų

    3
  • Atsiliepimai

    100%

Reputacijos išklotinė

  1. Patinka
    apieviska sureagavo į Arnas PHP MVC, kaip tai veikia?   
    Sveiki, manau daug kam bus aktualu sužinoti kas tas MVC ir kaip jis veikia, kadangi dar dauguma programuoja naudojant PLAIN PHP , tai siūlau perbėgti ant MVC principo ir palengvinti darbą visiems programuotojams, kurie dirbs su Jūsų kodu :)
     
    darbą apžvelgsiu su CodeIgniter framework, tai paprasčiausias framework kiek žinau ir gana lengva jį išmokti, dėkoju Karoliui, kad mane išmokė :D
     
    Pirmiausia, tai kas yra tas MVC?
     
    Taip vadinasi principas, kuriuo paremta CodeIgniter sistema, kaip ir dauguma kitų
    profesionalių framework’ų. Esmė yra tokia, kad visas projekto veikimas išskiriamas į tris
    skiltis:
    Models – failai, kuriuose sudėta visa web-projekto logika ir darbas su duomenimis;
    Views – failai, kurie atsakingi už galutinio HTML teksto atvaizdavimą į naršyklę;
    Controllers – failai, kurie kreipiasi į Model, paima duomenis ir perduoda į View, kad
    atvaizduotų tekstą.
     
    Kaip veikia MVC sistema?
     
    ● Models – failai, kuriuose sudėta visa web-projekto logika ir darbas su
    duomenimis;
    ● Views – failai, kurie atsakingi už galutinio HTML teksto atvaizdavimą į naršyklę;
    ● Controllers – failai, kurie kreipiasi į Model, paima duomenis ir perduoda į View,
    kad atvaizduotų tekstą.
     
     
    Kaip išlaikyti struktūrą ir kodėl reikia ją išlaikyti?
     
    Views:
    1. Nedarykite jokių veiksmų su duomenų baze
    2. Nenaudokite sudėtingų konstrukcijų – tik IF sąlygos sakinius ir ciklus
     
    Controllers:
    1. Neturi būti HTML kodo
    2. Neturi būti jokių tiesioginių veiksmų su duomenų baze.
     
    Models:
    1. Neturi būti HTML kodo
     
    Bet čia yra ir gerų savybių:
     
    Views:
    1. Galima skaidyti HTML kodą į kelis skirtingus Views
    2. Galima naudoti IF sąlygos sakinius ir ciklus
     
    Controllers:
    1. Tai yra tarpinė grandis tarp DB duomenų ir jų išvedimo į View
    2. Čia reikia pritaikyti logiką visiems duomenims ir atlikti veiksmus su jais
    3. Iš čia iškviečiami Models metodai duomenų ištraukimui/išsaugojimui
    4. Čia apdorojamos klaidos ir klaidų pranešimai
     
    Models:
    1. Apdoroja gautus duomenis iš DB, bet sudėtingesnius veiksmus geriau palikti
    Controlleriui
    2. “Pagauna” klaidas ir persiunčia jas į Controller
    3. Duomenų įvedimo patikrinimas vyksta būtent čia
     
     
    Mažytis pavyzdys, tai paprastas skaičiavimas, kuris parodys rezultatą:
     
    pirmiausia tai susikuriam Models (šio framework viduje jį rasit: application/models/) failą ir pavadinam jį skaiciavimai_model.php
     

    class Skaiciavimai_model extends CI_Model { function __construct() { parent::__construct(); } function Veiksmas($a, $b) { $data['veiksmas'] = $a + $b; $data['masyvas'] = array( "true" => "Atsakymas daugiau nei 10", "false" => "Atsakymas mažiau nei 10"); if($data['veiksmas'] >= 10) $result['atsakymas'] = $data['masyvas']['true']; else $result['atsakymas'] = $data['masyvas']['false']; return $result; } }
     
    Kadangi jau turime modelį, kuris atlieka loginę užduotį, laikas susikurti controller'į, kuris tai apdoros ir perduos informaciją į views atvaizdavimui. Susikuriam skaiciavimai.php kataloge controllers (application/controllers):
     

    class Skaiciavimai extends CI_Controller { public function index() { $this->load->model('Skaiciavimai_model'); $array['rezultatas'] = $this->Skaiciavimai_model->Veiksmas(5, 4); $this->load->view('main_view', $array); } }
     
    Na ir paskutinė dalis tai views, čia turim išsivesti mūsų fją. Pas mane pagrindinis views failas yra main_view.php, kaip matėt į jį ir perdaviau controllerio užklausą.
     

    <html> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <head><title>Skaičiuojam</title></head> <body> <?=$rezultatas['atsakymas'];?> </body></html>
     
    šiuo atveju mums atspausdins: Atsakymas mažiau nei 10.
     
    Tai tik mažytė dalis viso framework, bet esmę galima suprast, jeigu kas nežinot kaip susikurti views kataloge failą, kad einant jūsų adresu jį nuskaitytų kaip pagrindinį išvedimo failą, tai eikite į config/routes.php , susiraskit tokią eilutę ir ją pakeiskite:
     

    $route['default_controller'] = "welcome"; // tai dažniausiai būna default nustatyta $route['default_controller'] = "skaiciavimai"; // į tai reikia pasikeisti ir nepamirškit, kad jūsų controlleris turi vadintis "skaiciavimai.php"
     
    čia kaip ir viskas, esmę galima suprasti iš šių pavyzdžių. Rėmiausi medžiagą, kurią sudarė Povilas Širvinskas, pavyzdžiai mano, tad jei pamatėt klaidą, pasakykit :) galit ir papildyti jei kas ne taip, arba klauskit, pabandysiu parašyti kažką :D dar vėliau tikriausiai pridėsiu pvz kaip dirbti su duomenų baze. Atsisiųsti šį framework galite čia: http://ellislab.com/codeigniter
     
    Prisegsiu knygą, pirktą iš šio forumo nario "programmer007" jei neklystu, nes ne aš pirkau ją, bet ten abstu informacijos, kaip susikurti svetainę naudojant CI framework, tikiuosi nesupyks labai :D
     
    codeigniter-knyga.zip
     
    Ačiū už komentarus
     
    P.s: kas nežino, yra toks tinklapis 3dev.lt tai ten buvo kažkada visa reikiama info apie MVC, bet kažkodėl užsidarė, o youtube įrašai dingo. Žinau, kad įrašų savininkas buvo šio forumo narys, tad jei yra galimybė ir TU dabar skaitai šį postą, atsiųsk man tuos video, aš juos vėl sukelsiu į youtube ir tai tikrai bus geros pamokos pradedantiesiems ir ne tik
  2. Patinka
    apieviska gavo reakciją nuo DJManas PHP pagalba   
    jQuery.post(url, {data}, function(response){}); paprasciau.
  3. Patinka
    apieviska gavo reakciją nuo L33T mysql uzklausa SKUBIAI!   
    jug sakiau jau - grupok rezultatus
  4. Patinka
    apieviska gavo reakciją nuo Triple6 html klausimas   
    jQuery(window).scroll(function(){ if(jQuery(this).scrollTop() > 100) jQuery('a.scroll-to-top').fadeIn('slow'); else jQuery('a.scroll-to-top').fadeOut('slow'); }); jQuery('a.scroll-to-top').click(function(event){ event.preventDefault(); jQuery('html, body').animate({ scrollTop: 0 }, 600); });
  5. Patinka
    apieviska sureagavo į g3dut1s MySQL pagalbos   
    Galbūt greitesnis variantas:
     

    INSERT INTO `pm`(`msg`, `to`, `from`) SELECT "Žinutė visiems", `user_id`, 277 FROM `users`
  6. Patinka
    apieviska gavo reakciją nuo Splatt Ar imanoma tureti GERA versla ir buti nepriklausomu nuo kitu?   
    O nuo kuo google ar facebook priklauso?
  7. Patinka
    apieviska gavo reakciją nuo Klicko Patarkit dėl OOP PHP   
    Jus cia zmones is tuscio i kiaura... Kaip sake vienoje JS prezentacijoje: Viena is dabartiniu programuotoju problemu yra tai, kad jie pradeda optimizuoti koda dar jo net neprarasius. Refaktoringa reikia taikyti tik parasius koda, o ne pries. O kas liecia greituma, tai OOP yra tik gyvenimo stilius. Nera tokio dalyko, kurio negalima butu padaryti tik proceduriskai, ar tik su OOP. Ir be to b OOP dar visokiu yra, pvz AOP. Tad kaip jau minejau - is tuscio i kiaura.
  8. Patinka
    apieviska gavo reakciją nuo topguy Programuotojų poreikis   
    Jo jo, pilnai palaikau. Paciam kartais po savaitgalio buna, kad tenka nuo nulio kokio frameworko manualus skaityti ar dar ka.
  9. Patinka
    apieviska gavo reakciją nuo bi0dileet Patarkit dėl OOP PHP   
    Nesimokins jis nieko)))
  10. Patinka
    apieviska sureagavo į Torafter Reikia diplominiu darbu pvz.   
    ar ne kazko tokio ieskai http://aleph.library.lt/F?func=find-b-0&local_base=ETD01 ?
  11. Patinka
    apieviska gavo reakciją nuo Robertas92 Puslapio idėja   
    Programuotojau, na jau tu tai tikrai turi suprasti siu kodu reiksmes.
  12. Patinka
    apieviska gavo reakciją nuo TheOutcome Puslapio idėja   
    jau senai yra padarytas http://bit.ly/900913
  13. Patinka
    apieviska gavo reakciją nuo TheOutcome Puslapio idėja   
    jau senai yra padarytas http://bit.ly/900913
  14. Patinka
    apieviska gavo reakciją nuo edis2 Vilniuje vyks didžiausias Baltijos šalyse IT saugumo forumas   
    pasakos kaip visada, kad viska reikia filtruoti ir visada atnaujinti softu versija.
  15. Patinka
    apieviska gavo reakciją nuo edis2 Vilniuje vyks didžiausias Baltijos šalyse IT saugumo forumas   
    pasakos kaip visada, kad viska reikia filtruoti ir visada atnaujinti softu versija.
  16. Patinka
    apieviska gavo reakciją nuo edis2 Vilniuje vyks didžiausias Baltijos šalyse IT saugumo forumas   
    pasakos kaip visada, kad viska reikia filtruoti ir visada atnaujinti softu versija.
  17. Patinka
    apieviska gavo reakciją nuo edis2 Vilniuje vyks didžiausias Baltijos šalyse IT saugumo forumas   
    pasakos kaip visada, kad viska reikia filtruoti ir visada atnaujinti softu versija.
  18. Patinka
    apieviska gavo reakciją nuo Termer14 Geros vietos Klaipėdoje   
    riportas
  19. Patinka
    apieviska gavo reakciją nuo kiladila Dėl sesijų PHP   
    Blogiau jau buti tikrai negali, patikek. O su js tai cia pora eiluciu. Sumeti 3 buttonus ir 3 divus. Ir tooglini klases ant ju. Toi padarisiu.
  20. Patinka
    apieviska gavo reakciją nuo diablom wordpress problema   
    kodel tesiog echo negalima?
  21. Patinka
    apieviska gavo reakciją nuo jankarl Dėl PHP explode funkcijos   
    dviratininkai...
     

    print_r(range(0, 100));
  22. Patinka
    apieviska gavo reakciją nuo tomaska Dėl PHP explode funkcijos   
    Randa visi, 99% tai http://stackoverflow.com. Del skaiciaus, tai tau reikia ne is_int, o is_numeric, nes php kalboje 99% int yra stringai ir tik 1 procentas daro return (int).... O del tavo googlinimo - tu pirmai apsispresk ar tau reikia masyvo ar stringo.
     
    Aplamai, as nieko pries mokimasi, bet 99% cia esanciu klausia kaip padaryta ta ir ta, o sekancioje temoje teikia programavimo paslaugas su 5 metu patirtimi.
  23. Patinka
    apieviska gavo reakciją nuo Arnas PHP masyvai   
    Jei dar nepagavote - var_dump skirtas aplamai kintamojo reiksmes isvedimui ir tiek, nepriklausomai nuo jo tipo. O print_r skirtas tesiog masyvo isvedimui. Taciau jeigu masyvas tures koki bool ar null kaip auksciau - nieko jus nepamatisete ir prikursite dar 100 temu. Tai yra aplamai skirtingos funkcijos su skirtinga paskirtimi, tesiog sio momentu ju tikslas sutapo.
     
    zinau,kad esu teisus - man uz tai piniga moka.
     
    ir jo, kas del isvedimo - viskas veikia ko puikiausiai
     

    $array = array(TRUE, FALSE, NULL, 1, '1'); ob_start(); var_dump($array); $var_dump_result = ob_get_clean(); file_put_contents('var_dump.txt', $var_dump_result);
  24. Patinka
    apieviska gavo reakciją nuo drez3d PHP masyvai   
    naudok var_dump visur ir visada.
  25. Patinka
    apieviska gavo reakciją nuo tomaska Dėl PHP explode funkcijos   
    Randa visi, 99% tai http://stackoverflow.com. Del skaiciaus, tai tau reikia ne is_int, o is_numeric, nes php kalboje 99% int yra stringai ir tik 1 procentas daro return (int).... O del tavo googlinimo - tu pirmai apsispresk ar tau reikia masyvo ar stringo.
     
    Aplamai, as nieko pries mokimasi, bet 99% cia esanciu klausia kaip padaryta ta ir ta, o sekancioje temoje teikia programavimo paslaugas su 5 metu patirtimi.
×
×
  • Pasirinkite naujai kuriamo turinio tipą...