ljubav flexa i php-a

23
Adobe Flex i Zend Framework

Upload: sampetruda

Post on 10-May-2015

1.214 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Ljubav Flexa i PHP-a

Adobe Flex i Zend Framework

Page 2: Ljubav Flexa i PHP-a

• zašto povezati Flex i PHP?• kako povezati Flex i PHP?• Action Message Format (AMF)• Zend Framework• Zend_Amf• Hello, World• mapiranje objekata• debuggiranje• alternative Zend_Amf-u

Page 3: Ljubav Flexa i PHP-a

• klasični razvoj bogatih aplikacija weba• HTML kao prezentacijski sloj• PHP na serveru zadužen za poslovnu logiku

• komunikacija aplikacijskih slojeva• poziv modula/stranice/skripte• AJAX

GET/POST

Ajax

XML

XHTML

Page 4: Ljubav Flexa i PHP-a

• prednosti• poznata razvojna platforma, razni alati

• nedostaci• cross-browser problemi• teško razdvajanje aplikacijskih slojeva

Page 5: Ljubav Flexa i PHP-a

• čemu teže klasične bogate web aplikacije?• Web 2.0+ izgled, interakcija• visok stupanj ergonomije• optimizacija komunikacije prema serveru

• rezultat• korištenje velikog broja tehnologija

• HTML, CSS, JavaScript + AJAX, jQuery, Prototype, + Flash + PHP

Page 6: Ljubav Flexa i PHP-a

• jedan od ciljeva:

Što jednostavnije održavanje !!!

• ima li tu kontradikcije?

........

Page 7: Ljubav Flexa i PHP-a

• Zend PHP• najpopularniji serverski programski jezik

• Adobe Flex• trenutno najkvalitetnija tehnologija za razvoj sučelja bogatih web aplikacija

Page 8: Ljubav Flexa i PHP-a

• klasični HTTP servisi• dohvat poruka, XML objekata

• SOAP• često se prenosi previše formalnih podataka

• AMF• http://en.wikipedia.org/wiki/Action_Message_Format

Page 9: Ljubav Flexa i PHP-a

• Action Message Format • object remoting protocol

• prva verzija – uz Flash Player 6 • aktualna generacija: 3.0

• poznati dodatci za PHP i AMF• AMFPHP• WebOrb for PHP• Zend_Amf• SabreAMF

Page 10: Ljubav Flexa i PHP-a

Dohvat 2000 redaka

http://www.jameswardcom/census/

Page 11: Ljubav Flexa i PHP-a

Dohvat 5000 redaka

http://www.jameswardcom/census/

Page 12: Ljubav Flexa i PHP-a

• Flex – klijent• sadrži objekt s informacijama• spaja se na AMF servis• šalje objekt putem AMF protokola

• PHP – server• prima informaciju putem AMF protokola• obrađuje podatke• šalje odgovor u AMF obliku

• Flex – klijent• prihvaća odgovor

Page 13: Ljubav Flexa i PHP-a

• potpuno razdvojeni aplikacijski slojevi• optimizirana komunikacija među slojevima• manji broj korištenih tehnologija

Page 14: Ljubav Flexa i PHP-a

• skup klasa za kvalitetniji razvoj web aplikacija• prva verzija nastala 2006. godine• aktualna verzija 1.7, 1.8 beta

• neke od mogućnosti Zend Frameworka• MVC arhitektura• Zend_Db, Zend_Session, Zend_Filter• Zend_Date, Zend_Currency, Zend_Config• Zend_Json, Zend_Gdata, Zend_Pdf• Zend_Services, Zend_Uri,...• Zend_Amf

Page 15: Ljubav Flexa i PHP-a

• skup klasa za rad s AMF protokolom • koraci u razvoju Zend_Amf servisa

• web servis klasa• metode servisa• objekti za slanje• modul za spajanje na servis

Page 16: Ljubav Flexa i PHP-a

• koraci za pristup web servisu• MXML RemoteObject, VO klase

<mx:RemoteObject id="zendRemote" destination="zend" source="ZendAMFService" showBusyCursor="true" fault="faultListener(event)"> <mx:method name="login" result="loginResultHandler(event)"/> <mx:method name="getMessages" result="getMessagesResultHandler(event)"/> <mx:method name="register" result="registerResultHandler(event)"/> <mx:method name="getTeams" result="getTeamsResultHandler(event)"/></mx:RemoteObject>

<?phppublic class ZendAMFService{

public function login($manager){......}public function getMessages(){......}public function register(VOManager $manager, VOTeam $team){....}public function getTeams() {......}.....

}?>

Page 17: Ljubav Flexa i PHP-a

package org.zgflex.vo{ [RemoteClass(alias="VOPlayer")] [Bindable]

public class VOPlayer{

public var id: int;public var name: String;public var smallPic: String;public var bigPic: String;public var description: String;public var transferValue: int;public var position : VOPosition;public var team: VOTeam;

}}

class VOPlayer {

public $id;public $name;public $smallPic;public $bigPic;public $description;public $transferValue;public $position;public $team;

}

$server = new Zend_Amf_Server();$server->setClass("ZendAMFService");$server->setClassMap("VOPlayer",

"VOPlayer");$server->setClassMap("VOPosition",

"VOPosition");$server->setClassMap("VOTeam",

"VOTeam");$server->setClassMap("VOLeague",

"VOLeague");echo($server->handle());

Page 18: Ljubav Flexa i PHP-a

• Flex debugger + Zend Studio Toolbar• unutar istog Eclipse alata

• jednostavno povezivanje• Flex Builder + Zend Studio for Eclipse

• ne baš jednostavna implementacija• Zend Debugger

• Flex debugger + Xdebug plugin

Page 19: Ljubav Flexa i PHP-a

• service browser• PHP-Actionscript mapping alati• poboljšano debuggiranje Zend Toolbara

• više informacija na:• http://framework.zend.com/manual/en/zend.amf.html

Page 20: Ljubav Flexa i PHP-a

• dio Zend Frameworka• dobra korisnička podrška i stalno održavanje• planovi za sljedeće verzije

• service browser• bolja mogućnost mapiranja PHP i Actionscript objekata• bolja podrška za Zend Toolbar

• nedostaci• nepostojanje service browsera• otežano debuggiranje na strani servera

Page 21: Ljubav Flexa i PHP-a

• AMFPHP• jedan od prvih alata• sadrži service browser• nesigurna budućnost razvoja

• WebOrb for PHP• odlični alati za analizu servisa• nejasna poslovna politika razvojnog tima

Page 22: Ljubav Flexa i PHP-a

• ZgFlex Football Manager• Flex-Zend_Amf komunikacija• VO klase• Custom eventi i njihovo propagiranje• Custom komponente• ItemRendereri• svašta pomalo...• PHP servis• MySQL baza

Page 23: Ljubav Flexa i PHP-a

• Action Message Format (AMF)• http://en.wikipedia.org/wiki/Action_Message_Format

• Zend Framework• http://framework.zend.com

• Zend_Amf• http://framework.zend.com/manual/en/zend.amf.html

• Zend Debugger• http://www.zend.com/products/studio/downloads• http://static.zend.com/topics/Debugger-Install.pdf