E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google
* Cele mai bine clasate si cele mai votate tutoriale sunt selectate dintre tutorialele adaugate in ultimele 30 de zile.

Tutoriale PHP

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  PHP  /  Zend Framework (5)

Implementarea unui modul de stiri in Zend Framework. Partea I - Structura aplicatiei

21.02.2010
Implementarea unui modul de stiri in Zend Framework. Partea I - Structura aplicatiei

In acest tutorial va voi prezenta cateva lucruri legate de arhitectura MVC si implementarea unui modul de stiri in Zend Framework. El reprezinta prima parte dintr-o serie de tutoriale pe aceasta tema, care vor descrie implementarea unui modul cu toate functionalitatile de baza precum adaugarea, modificarea, stergerea si vizualizarea inregistrarilor dintr-un tabel, dar si lucruri mai complicate cum ar fi incarcarea de fisiere pe server, validari si mesaje de eroare.

Total vizualizari: 4457 4457 afisari   |   Comentarii  6   |   Rating   |   (9 voturi)   |   Timp necesar: 40 min 40 min   |   Nivel de cunostiinte necesar: Avansat  Avansat

Autor: alexandra Expert
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1 2 »
comenteaza printeaza Bookmark and Share

In acest tutorial va voi prezenta cateva lucruri legate de arhitectura MVC si implementarea unui modul de stiri in Zend Framework. Mi-am propus sa realizez o serie de tutoriale pe aceasta tema, care sa descrie implementarea unui modul cu toate functionalitatile de baza precum adaugarea, modificarea, stergerea si vizualizarea inregistrarilor dintr-un tabel, dar si lucruri mai complicate cum ar fi incarcarea de fisiere pe server, validari si mesaje de eroare.

Ce este Zend Framework?

Dupa cum ii spune si numele, Zend Framework este o platforma dezvoltata de Zend, compania ce a creat limbajul PHP. El consta intr-o colectie destul de voluminoasa de clase ajutatoare, cum ar fi cele pentru manipularea fisierelor, a template-urilor, formularelor, etc. Daca nu il aveti deja instalat, puteti citi aici mai multe. Nu va entuziasmati insa: desi framework-ul e ok ca structura si pachete, documentatia m-a dezamagit de multe ori. Exemplele sunt putine si, de cele mai multe ori, superficiale, astfel incat nu de putine ori a trebuit sa fac mai multe incercari pana cand am nimerit "combinatia" corecta. In concluzie, trecerea de la PHP-ul clasic la Zend Framework poate fi dificila chiar si pentru un programator experimentat.

Acest tutorial presupune ca:

  • aveti un server pe care ruleaza Apache, PHP si o baza de date MySQL;
  • ati instalat Zend Framework;
  • stapaniti bine limbajul PHP si in special programarea orientata pe obiecte.

Arhitectura MVC

Probabil ca nu este pentru prima data cand auziti termenul de arhitectura Model-View-Controller sau, pe scurt, MVC. Ca si alte platforme, cum ar fi Ruby-on-Rails, Zend Framework isi propune separarea completa intre baza de date (adica modele), template-uri (sau view-uri) si controllere (verbele aplicatiei). Nu vom pierde mult timp discutand despre arhitectura MVC, dar e bine sa retineti urmatoarele:

  • Un model va reprezenta o tabela MySQL si va contine functii cu ajutorul carora vom edita acea tabela.
  • Un view este de fapt un template html (sau o bucata dintr-un template) ce are drept scop afisarea informatiilor procesate de catre controllere.
  • Un controller este o colectie de actiuni organizate in functie de scopul lor. Ca exemplu, modulul de stiri pe care il vom implementa va contine un singur controller pentru manipularea tabelei de stiri, ce va grupa actiunile de: adaugare si modificare stire, afisarea tuturor stirilor, etc.
 SFAT   In general, daca un controller contine mai mult de 7 actiuni, ar trebui sa luati in considerare impartirea acestora in mai multe controllere.

Structura aplicatiei si baza de date

Deoarece vom folosi Zend Framework, structura modulului nostru trebuie sa reflecte arhitectura MVC. Pentru inceput, vom crea doua directoare:

  • application - va contine trei subdirectoare - models, views si controllers;
  • public - va contine toate resursele ce sunt disponibile utilizatorului (imagini, stiluri css, fisiere javascript,etc.), fisierul bootstrap si un fisier .htaccess.
 OBS.   Fisierul bootstrap este de fapt un fisier index.php care are rolul de a incarca framework-ul si de a initia un controller default. Toate interogarile catre alte fisiere se realizeaza prin intermediul acestui index.php.

In plus, in directorul application vom crea un fisier configuration.inc.php in care vom defini informatii generale cum ar fi numele bazei de date MySQL, datele de conectare la aceasta, numele domeniului pe care lucram, etc. Pentru inceput, vom crea urmatoarele constante:

<?php
define("DB_HOST","serverul de MySQL - localhost sau adresa IP");
define("DB_USERNAME","numele utilizatorului MySQL");
define("DB_PASSWORD","parola MySQL");
define("DB_DATABASE","numele bazei de date");
 
define("APPLICATION_PATH","calea pe server catre directorul in care lucram - ex. /home/elearnro/...");
define("DIR_LOCALPATH","numele domeniului - ex. http://www.e-learn.ro/stiri/");
?>

 OBS.   Valoarea APPLICATION_PATH o poti afla daca afisezi constanta globala $_SERVER['DOCUMENT_ROOT'].

Iata cum ar trebui sa arate structura aplicatiei tale pana la acest punct:

Implementarea unui modul de stiri in Zend Framework. Partea I - Structura aplicatiei

Structura aplicatiei

In plus, in baza de date va trebui sa creezi un tabel STIRI cu urmatoarele campuri:

Implementarea unui modul de stiri in Zend Framework. Partea I - Structura aplicatiei

Tabelul STIRI

Retine ca Id reprezinta cheia primara a tabelei si are setat atributul auto_increment.

Bootstrap si .htaccess

In fisierul .htaccess va trebui sa incluzi urmatorul cod:

SetEnv PHP_VER 5
 
RewriteEngine On
RewriteCond % -s [OR]
RewriteCond % -l [OR]
RewriteCond % -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Aceasta inseamna de fapt ca orice cerere va fi transmisa catre index.php. Nu te ingrijora daca nu intelegi exact fiecare linie de cod, nu va fi nevoie sa editezi acest fisier in viitorul prea apropiat.

In schimb, fisierul boostrap va fi modificat in functie de fiecare aplicatie pe care vrei sa o implementezi. Mai intai, el va incarca fisierul de configurare in care am definit constantele cu numele bazei de date si utilizatorul MySQL:

<?php // incarca fisierul de configurare
require_once('../application/configuration.inc.php');
?>

apoi va incarca clasa Zend_Loader si alte clase din Zend Framework, pe care le vom folosi pe parcurs la implementarea modulului de stiri:

<?php // incarca clasa Zend_Loader
require_once('Zend/Loader.php');
 
// incarca clasele zend framework cu ajutorul Zend_Loader
Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Db_Table_Abstract');
Zend_Loader::loadClass('Zend_Controller_Action');
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Filter_Input');
Zend_Loader::loadClass('Zend_File_Transfer');
Zend_Loader::loadClass('Zend_View');
?>
Pagina:
1 2 »
comenteaza printeaza Bookmark and Share

Cuvinte cheie:   php,   mysql,   zend framework,   aplicatie,   stiri,   bootstrap,   model,   view,   controller,   mvc

Alte tutoriale PHP:
Noteaza acest tutorial
Rating tutorial
 
(9 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (6) spune-ti parerea
adry.ro adry.ro , Luni, 05 Septembrie 2011, ora 07:23
#6

Imi place, in special, cum ai explicat Arhitectura MVC. Se intelege perfect.

Raporteaza acest comentariu ca injurios!
cborodescu cborodescu , Marti, 23 Februarie 2010, ora 11:11
#5

Da, foarte bine explicat. ZF rullz!

Raporteaza acest comentariu ca injurios!
alext_1020 alext_1020 , Luni, 22 Februarie 2010, ora 17:39
#4

me like :D me happy :)

Raporteaza acest comentariu ca injurios!
alexandra alexandra , Luni, 22 Februarie 2010, ora 15:28
#3

Multumesc pt comentarii :)


@beuzozel

Continuarea o voi posta saptamana viitoare, implementarea este gata, dar am de lucru destul de mult la text. Sper sa iasa la fel de bine ca prima parte :).

Raporteaza acest comentariu ca injurios!
pustiu pustiu , Luni, 22 Februarie 2010, ora 14:56
#2

@alexandra: Bravo! mai iesim putin din sfera graficii ;)) si trecem pe programare :D

Raporteaza acest comentariu ca injurios!
beuzozel , Luni, 22 Februarie 2010, ora 10:01
#1

Pana acum foarte bun. Astept cu nerabdare urmatoarele tutoriale din aceasta serie. Sper sa te misti destul de repede. Spor la lucru :D

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de adry.ro
adry.ro Rang utilizator adry.ro - Incepator
603
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Incepator
450
Tutoriale scrise de angel140581
angel140581 Rang utilizator angel140581 - Incepator
330
Tutoriale scrise de mozzartut
mozzartut Rang utilizator mozzartut - Expert
257
Tutoriale scrise de alexx
alexx Rang utilizator alexx - Incepator
150
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
 
 
Ruby on Rails COREL DRAW PHP Action Script StyleSheet SWF Word Verilog Bridge Illustrator CSS MySQL XML RoR PSD Photoshop Lightroom JSON Fotografie SEO Vista AJAX Excel Javascript Fireworks Dreamweaver Sony Vegas Outlook Gimp Python Flash Powerpoint XHTML HTML Swift 3D Java
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2010 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software
Submit Your Site SmartNetBook.ro