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

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: 11498 11498 afisari   |   Comentarii  7   |   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

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

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 (7) spune-ti parerea
adytzul89 , Miercuri, 02 Octombrie 2013, ora 13:05
#7

Ce versiune de ZF s-a folosit pentru acest tutorial. Am descarcat pe site-ul oficial, dar nu pare in legatura cu tutorial.. foldere si fiserele sunt diferite..

Raporteaza acest comentariu ca injurios!
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 claibornelara
claibornelara Rang utilizator claibornelara - Incepator
5190
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
5145
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4995
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4975
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
4735
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Javascript Sony Vegas Ruby on Rails COREL DRAW Dreamweaver CSS Illustrator Swift 3D Fotografie SWF PSD Python HTML MySQL SEO Flash JSON Bridge Vista AJAX RoR Lightroom Gimp Java XML StyleSheet XHTML PHP Fireworks Action Script Word Photoshop Excel Outlook Powerpoint Verilog
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-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software