offline
- Pridružio: 16 Feb 2011
- Poruke: 1630
- Gde živiš: Pancevo
|
- 17Ovo se svidja korisnicima: TwinHeadedEagle, Tamtitam, kostic.dk, A.L., ThePhilosopher, mcrule, Nikola04, vasa.93, N1k0l4, MilanKragujevic, E.L.I.T.E., Aco, ivance95, drummer, Springfield, klodovik, magna86
Registruj se da bi pohvalio/la poruku!
Upotreba PHP Framework-a
Uputstvo za pocetnike
U ovoj temi govoricemo o koriscenju raznih frameworkova u PHP, u pitanju je domaci tutorial, koji je namenjen iskljucivo pocetnicima Objektno orjentisanog programiranja u PHP-u.
Ovo uputsvo je namenjeno malo iskusnijim korisnicima php, da biste poceli raditi u bilo kojem frameworku potrebno je znanje koriscenja Objekata i klasa.
Da nebismo preskakali i pomogli pocetnicima pojasnicemo na kratko sta su to objekti i klase.
Objektno Orjentisani PHP
U ovom malom poglavlju namenjenom pocetnicima koji i dalje pisu svoje aplikacije na osnovi AD HOC pristupu, pisacu malo o objetkno orjentisanom programiranju u php-u. Necu pisati kodove i primere, malo teorije da bi razumeli sta je sta. Ostatak primera mozete pogledati na oficionalnom sajtu PHP-a.
Vecina poznatijih programskij jezika podrzava objektno orjentisani koncept programiranja, dok neki jezici iskljucivo zahtevaju koriscenje objektno orjentisani pristup razvoju softwera. Pri objektnom orjentisanom razvoju softwera teziste se stavlja na upotrebu klasifikacija, odnosa i svojstva objekata u sistemu da bi se olaksao razvoj programa i omogucila visekratna upotreba razvojnnog koda.
Sta su to Klase i Objekti?
U kontekstu objektnog orjentisanog softwera, objekat moze biti bilo koja "stvar" ili koncept - fizicki objekat poput stola ili kupaca, odnosno konceptualni objekat koji postoji samo u softweru, poput datoteke ili polja za unosenje teksta. Obicno nas zanimaju i objekti iz stvarnog sveta i konceptualni objekti, koje moramo prestaviti u softwerskom obliku.
Objektno orjentisane aplikacije se projektuju i grade kao skup samostalnih objekata sa atributima i operacijama koji medjusobnom iterakcijom ispunjavaju zahtev datog projekta.
Atributi : Su svojstva ili promenljive koje opisuju objekat ili sadrze neku vrednost.
Operacije : Su metode, radnje ili funkcije koje objekat moze da izvrsava da bi izmenio sebe ili nesto u svom spoljasnjem okruzenju.
Objekat : Je jedinstveni skup odredjenih podataka i operacija nad tim podacima. Objetki se mogu grupisati u klase, tako da svaka klasa prestavlja skup odredjenih objekata koji se medjusobno mogu razlikovati, ali koji ipak imaju izvestan broj razlicitih karekteristika.
Polimorfizam : Objektno orjentisan programski jezik mora da podrzava polimorfizam, sto znaci da se istoimena operacija moze potpuno razlicito ponasati u razlicitim klasama. .
Nasledjivanje: Nasledjivanje omogucava definisanje hijerarhiskih odnosa medju klasama pomocu potklasa. Potklasa nasledjuje atribute i operacije od svoje natklase. .
Konstruktori : Konstruktor se poziva prilikom pravljenja date klase i obicno obavlja korisne pocetne poslove, kao sto su dodeljivanje pocetnih vrednosti atributima ili izrada zavisnih objekata..
Destruktori : Deluje suprotno od konstruktora. Omogucava da izvrsite odredjene akcije pre unistavanja objekata, sto se automatski obavlja kada vise nema nijedne reference koja upucuje na taj objekat..
Interfejsi : Korisna stvar da bi zaobisli ogranicena jednostruka nasledjivanja. Sustina iterfejsa je u tome da deklarise odredjeni broj funkcija koje moraju biti realizovane u svim klasama koje realizuju taj interfejs..
Opsirnije o ovom poglavlju mozete pogledati na sajtu PHP-a.
http://www.php.net/manual/en/language.oop5.php
Upotreba Framewoka
Da biste olaksali sebi zivot i da bi vase aplikacije izgledale uredno, organizovano i profesionalno po najnovijim principima programiranja vecina iskusnijih programera se odlucuje za vec gotova resenja tipa kao sto su razlciti Framworkovi.
Framework je skup raznih klasa koje sadrze veliki broj raznih funkcija koje moku obavljati svakojake operacije kao sto su I/O operacije crtanja, rad sa stringovima, rad sa bazama, XML dokumentima, sesijama itd...
Sve ove funkcije omogucavaju da posao programera bude laksi.
Postoje razni frameworkovi namenjeni iskljucivo za rad u PHP programskom jeziku. Neki od popularnijih frameworkova su.
Akelos
CakePHP
CodeIgniter
Symfony
Yii
Zend
U ovom tutorialu ja cu kao primer koristit CodeIgniter framework, iz razloga zato sto je on naj jedonstaviniji za upotrebu i brzo se kapira, vecinom je namenjen pocetnicima kao i iskusnijim programerima ...
Da biste krenuli da radite u Codeigniteru potreban vam je server ili lokalni server.
Preuzmite poslednju verziju Codeignitera sa oficionalnog sajta.
http://codeigniter.com
Instalacija
Posle preuzimanja potrebano je raspakovati datoteku na server.
Pronadjite config fajl (application/config/config.php) izmenite url do vase aplikacije
Ako zelite da radite sa bazom otvorite(application/config/database.php) i izmenite podatke za konekciju sa bazom.
Struktura
Ci FW je jako jednostavan za upotrebu a podrsava i jos laksu strukturu.
Direktorijum System sadrzi sve klase koje vam omogucavaju da biste radili u ovom Frameworku, drugacije nazvano srce frameworka. Ime ovog direktorijuma mozete promeniti tako sto cete izmeniti promenljivu u index.php
$system_path = 'system';
Direktorijum Application sadrzi sve operacije koje korisnik definise, kontrolere, modele, sablone za pregled, biblioteke koje korisnik sam definise.
Ime ovog direktorijuma mozete promeniti tako sto cete izmeniti promenljivu u index.php
$application_folder = 'application';
Direktorijum Controllers sadrzi sve kontrolere koji definisu vasu applikaciju i akcije.
Direktorijum Models sadrzi sve akcije koje su povezane sa bazom podataka
Direktorijum Views sadrzi sablone koji se prikazuju krajnjem korisniku za pregled.
Codeigniter je full MVC, tako da ko jos nije upucen kako sve to funkcionise neka prouci malo vise o tome na sledecoj adresi.
Kontroleri
Kontroleri su srce vase aplikacije takodje oni odlucuju sa koliko HTTP zahtevima se upravlja.
Takodje to su jedonstavne klase koje se zovu na nacin koji moze biti povezan sa URI.
Primer.
Napravili ste kontoler klasu sa imenom BLOG.
Url bi izgledao ovako:
example.com/index.php/blog/
U ovom primeru, CodeIgniter ce pokusati da nadje kontroler po imenu blog.php i ucitati ga.
Jako bitno je naglasiti da svka klasa mora da sadrzi isto ime klase i isto ime fajla.
Ime klase mora pocinjati velikim slovom npr. (Blog).
blog.php
class Blog extends CI_Controller {
}
Kao to izgleda u praksi.
Sada cemo napraviti jedan jednostavan kontroler koji ispisuje tekst "Zdravo Svete".
Napravite novi fajl imenujte ga kako zelite "zdravoSvete.php".
<?php
class ZdravoSvete extends CI_Controller {
public function index()
{
echo 'Zdravo Svete!';
}
}
?>
Sacuvajte fajl u application/controllers/ folderu.
Nakon pokretanja ovog kontrolera dobicete ispis na monitoru Zdravo Svete!
example.com/index.php/zdravoSvete/
Funkcije
U predhodnom primeru koristili smo funckiju index(), funkcija index() ce uvek piti pozvana ako je drugi segment URL-a prazan. Pogledajmo kako to izgleda u drugim funkcijama:
<?php
class Blog extends CI_Controller {
public function index()
{
echo 'Zdravo Svete!';
}
public function komentar()
{
echo 'Ovo je moj komentar!';
}
}
?>
Sada pokrenite ovaj fajl u vasem browseru i dobicete ispis "ovo je moj komentar".
example.com/index.php/blog/komentar/
Preuzimanje URL segmenata
Kratko objasnjenje za one koji neznaju kako URI segmenti funkcionisu.
Primer:
example.com/index.php/blog/post/123/
Segment-0 : index.php
Segment-1 : blog
Segment-2 : post
Segment-3 : 123
Sada ako zelite da neku vrednost iz datog segmenta ucitate u vasu funkciju to mozete uraditi sledecim primerom.. Ovo je jako bitno jer cete dolaziti u situacijama kada cete morat nesto dinamicki da izbrisete ili izmenite, da biste to odradili morate uzeti ID ili ime odredjenog segmenta koje prosledjujete funkciji za brisanje.
<?php
class Blog extends CI_Controller {
public function delete($id)
{
echo $id;
}
}
?>
View
View prikazuje krajnji prikaz necega npr. Header, Footer, Content, Login form itd.
View se nemoze direktno pozivati, uvek mora biti ucitan u kontoleru.
Primer iz predhodnog kontrolera blog.
<html>
<head>
<title>My Blog</title>
</head>
<body>
<h1>Welcome to my Blog!</h1>
</body>
</html>
Sacuvajte u application/views/ blog.php
Da biste ucitali neki sablon za prikaz kao sto sam vec napomenuo mora biti ucitan direktno iz kontrolera.
<?php
class Blog extends CI_Controller {
function index()
{
$this->load->view('blog');
}
}
?>
Nakon pokretanja ovog kontrolera dobice slican rezultat predhodnom primeru:
example.com/index.php/blog/
Codeigniter vam omogucava da ucitate vise sablona od jednom.
Na primer imate kontroller page i razdvojene sablone tipa kao sto su Header, footer, content, sidebar, menu.
Ovo mozete uraditi isto kao i u predhodnom primeru.
<?php
class Page extends CI_Controller {
function index()
{
$data['page_title'] = 'Your title';
$this->load->view('header');
$this->load->view('menu');
$this->load->view('content', $data);
$this->load->view('footer');
}
}
Sada cu napisati jedan primer da bi pocetnici bolje razumeli, kako se sve ovo koristi direktno u praksi...
Napravite novi kontroler sa imenom Sajt
<?php
class Sajt extends CI_Controller {
function index()
{
$data['title'] = "Naslov";
$data['header'] = "Header";
$data['menu'] = array("Pocetna","O name","Blog","Kontakt");
$this->load->view('sajt', $data);
}
}
?>
Napravite novi sablon sa imenom sajt.php
<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
<h1><?php echo $header;?></h1>
<ul>
<?php foreach ($menu as $item):?>
<li><?php echo $item;?></li>
<?php endforeach;?>
</ul>
</body>
</html>
NASTAVICE SE
|