petak, 10. ožujka 2017.

Knjiga u jednom jedinom blog postu

Naslov knjige: PHP web aplikacija od nule do profesionalca
Autor: Ivica kartelo
Nakladnik: Škola E-92, Split
Format: jedan Facebook post
Cijena: pro bono
Prava: koristite bez ikakvih ograničenja
Komentari, pitanja: dobro došli
Za koga: za sve

Uvod
Web aplikacija s bazom podataka instalirana lokalno na naše računalo postaje zamjena za Access RDBMS.

Instalacija web aplikacije 'blog'
1. skinite XAMPP i instalirajte na svoje računalo
2. Skinite http://e92.hr/blog.zip, ražmite i mapu blog kopirajte da ima ovu putanju C:\xampp\htdocs\blog\

Instalacija baze podataka 'blog'
1. Uklonite Skype ako radi na vašem računalu
2. Otvorite C:\xampp\xampp-controle.exe i startajte Apache i MySQL
3. U web pregledniku tipkajte adresu localhost
4. Odaberite phpMyAdmin
5. Odaberite New na vrhu lijevo i kad se desno otvori naslov Databases, odaberite tab SQL u izborniku
6. U polje Run SQL query/queries on server "127.0.0.1": kopirajte sve iz dokumenta C:\xampp\htdocs\blog\accessories\database\database.sql i odaberite 'Go' skroz dolje desno.

Kraj instalacije web aplikacije

Pokrenite i koristite web aplikaciju ovako
1. U web pregledniku tipkajte adresu localhost/blog i dobit ćete prvu stranicu na ekranu; još nemate ništa iz baze jer je prazna
2. U web preglednik tipkajte localhost/blog/admin.php
3. Tipkajte za username 'a', za password 'a'
4. Preko forme dodajte nekoliko "name" i "content"
5. Testirajte Edit, Update, Cancel, Delete
6. Odaberite Home na vrhu i eto vas na početnoj stranici.
7. Lijevo su naslovi postova linkovi, desno se otvara post.

Kraj korištenja web aplikacije

Kako sam kodirao ovu aplikaciju
1. MVC
2. OOP
3. Smarty biblioteka za razdvajanje PHP od HTML

MVC - arhitektura ove aplikacije
Web aplikacija ima tri sloja:
- 'Model' je onaj dio aplikacije preko kojeg u aplikaciju ulaze podaci.
- 'View' je dio koji se bavi sadržajem i dizajnom web stranice koju ćemo vidjeti na ekranu.
- 'Controle' je mozak operacije. Taj dio delegira poslove.

Podjelio sam fizički ta tri djela u mape:
- model
- view
i
- Controle je u korjen mapi = index.php koji je radi razdvajanja PHP skripta od HTML skripta dobio puno segmenata u pozadini, u mapi accessories.

Prvi pogled u kod web aplikacije 'blog'
Do web aplikacije dolazite preko dva formata adrese:
1. blog/index.php
2. /blog/index.php?MenuId=id posta

Jedna i druga adresa najprije otvaraju index.php, koji instancira inačicu Smarty objekta. Smarty objekt svojom funkcijom Display() poziva dokument control.tpl:

$this_app->display('control.tpl');

Dokument control.tpl poziva dokument:

{include file="menus_list.tpl"}

koji donosi na ekran linkove naslova postova,

varijabla dokument

{include file=$obj->mContentsComeHere}

koji ovisi o one dvije adrese. Ako je adresa blog/index.php bit će pozvan dokument:

home.tpl

koji poziva

{include file="menu_last.tpl"}

pa ćemo na stranici imati zadnji objavljeni post,

ili je adresa:

/blog/index.php?MenuId=1

pa će biti pozvan dokument

menu.tpl

koji će na ekranu prikazati post kojeg smo odabrali.

Svi .tpl dokumenti su HTML dokumenti i njima se bavi dizajner, a nalaze se u mapi:

blog/accessories/templates/

Svaki .tpl dokument, koji povlači podatke iz baze podataka, ima svog para, .php dokument, koji se nalazi u mapi:

blog/accessories/smarty_plugins/

I tu su klase na osnovu kojih se instanciraju objekti. To su objekti iz tog dijela View. Svi ti objekti pozivaju objekt model.php koji se nalazi u mapi:

blog/model/model.php

Objekt model.php komunicira s bazom podataka i poziva 'stored procedure', SQL upite koji vraćaju aplikaciji tražene podatke, u našem slučaju su to podaci iz baze blog, tablice menu.

Primjer jedne klase, neka to bude controle.php

<?php
class Control
{
  public $mContentsComeHere = 'home.tpl';
  // Initialize presentation object

  public function init()
  {
    // Load menu details if click a menu
    if (isset ($_GET['MenuId']))
    {
      $this->mContentsComeHere = 'menu.tpl';
    }
  }
}
?>

koja odlučuje kad će biti pozvan dokument home.tpl a kad dokument menu.tpl.

Podaci se tako vraćaju nazad, najprije iz baze u Model dio aplikacije, pa iz Modela u View dio, gdje Smarty  napravi veliki posao spajanja .tpl dokumenata s .php dokumentima u djelove buduće web stranice koje sadrži PHP, HTML i podatke iz baze, i biva pohranjena u mapu.

blog/view/templates_c/

Stranice u mapi templates_c su mješavina PHP i HTML-a i da ne koristimo Smarty, ili neku drugu biblioteku i načine, morali bismo osobno ručno kodirati.

I sad je samo preostalo da procesor na poslužitelju, procesuira te .tpl.php stranice i rezultate, samo HTML i sadržaj, složi u jednu web stranicu, jedan HTML dokument koji će se pojaviti na našem ekranu.

Kraj knjige