PHP&Flex - новая альтернатива для создания RIAs

Содержание

Слайд 2

Что такое Flex?

Adobe Flex 2 – это решение, позволяющее разрабатывать Rich Internet

Что такое Flex? Adobe Flex 2 – это решение, позволяющее разрабатывать Rich
Applications на основе родственной Flash технологии.
Описание интерфейса, и не только, основано на диалекте XML – MXML.
Описание клиентской логики на ActionScript3 (AS3)
В результате MXML->AS3->swf фаил.

Слайд 3

Линейка продуктов Flex 2

Flex Builder 2 – IDE основанная на eclipse.
Flex framework

Линейка продуктов Flex 2 Flex Builder 2 – IDE основанная на eclipse.
and SDK
Flex Charting 2
Flex Data Services 2

Слайд 4

Структура Flex приложений

Структура Flex приложений

Слайд 5

Пример


Пример

Слайд 6

MXML <-> ActionScript


package{
import mx.controls.Button;
public class CustomButton extends Button{
public function

MXML ActionScript package{ import mx.controls.Button; public class CustomButton extends Button{ public function
CustomButton(){
supper();
}
}
}

Слайд 7

ActionScript 3

ООП! Основан на стандарте ECMAScript 4.
Строгая и динамическая типизация
Наследование, интерфейсы, модульность
Спецификаторы

ActionScript 3 ООП! Основан на стандарте ECMAScript 4. Строгая и динамическая типизация
доступа
Reflection API
ECMAScript for XML (E4X)
DOM3 модель событий
Динамические классы (runtime добавление методов и свойств)

Слайд 8

Другие аспекты разработки

ASDoc – документирование в коде
Mercury QuickTest – приемочные тесты
FlexUnit –

Другие аспекты разработки ASDoc – документирование в коде Mercury QuickTest – приемочные
модульные тесты
Flex Stress Testing – нагрузочные тесты
Cairngorm - архитектурный фреймворк
Flex-Ajax Bridge – AS <-> JS
Apollo - desktop приложения

Слайд 9

Из рубрики “Лучше один раз увидеть, чем сто раз услышать”!

Смотрим и про

Из рубрики “Лучше один раз увидеть, чем сто раз услышать”! Смотрим и
себя думаем, как бы мы все это сделали на JS?! %)

Слайд 10

HTML&JavaScript vs MXML&ActionScript

HTML&JavaScript vs MXML&ActionScript

Слайд 11

Обмен данными

Использовать фреймворки, которые сериализуют данные в формат AMF
SOAP запросы
Сокеты (в том

Обмен данными Использовать фреймворки, которые сериализуют данные в формат AMF SOAP запросы
числе и бинарные)
Просто использовать GET и POST запросы

Слайд 12

Реализована поддержка AMF

PHP
JAVA
.NET
ColdFusion
Ruby

Реализована поддержка AMF PHP JAVA .NET ColdFusion Ruby

Слайд 13

Фреймворки для связки PHP и Flex

AMFPHP
WEBORB
SabreAMF

Фреймворки для связки PHP и Flex AMFPHP WEBORB SabreAMF

Слайд 14

Общее

Поддержка AMF3
Сопоставление классов (class mapping) между Flex и PHP
Поддержка PHP5

Общее Поддержка AMF3 Сопоставление классов (class mapping) между Flex и PHP Поддержка PHP5

Слайд 15

Сравнение

Сравнение

Слайд 16

Flex

import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
//обрабатываем результат
private function resultHandler(event:ResultEvent):void{
dg.dataProvider = event.result;
}
//обрабатываем ошибки
private function faultHandler(event:FaultEvent):void{
Alert.show(event.fault.faultString,"Error");
}
]]>

Flex import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; //обрабатываем результат private function resultHandler(event:ResultEvent):void{
id="ro" result="resultHandler(event)" fault="faultHandler(event)" destination="users" source=“dummy.Users"/>

Слайд 17

services-config.xml






*




services-config.xml *

Слайд 18

PHP

class Users {
public function getUsers(){
$users = array();
$query = mysql_query("select * from users");
while

PHP class Users { public function getUsers(){ $users = array(); $query =
($row = mysql_fetch_object($query)){
$users[] = $row;
}
return $users;
}
}

Слайд 19

НИЧЕГО!

НИЧЕГО!

Слайд 20

Class mapping

package vo{
[RemoteClass(alias="dummy.vo.UserVO")]
public class UserVO{
public var userId:int;
public var userName:String;
}
}

Class mapping package vo{ [RemoteClass(alias="dummy.vo.UserVO")] public class UserVO{ public var userId:int; public var userName:String; } }

Слайд 21

class UserVO {
public $_explicitType ="dummy.vo.UserVO";
public $userId;
public $userName;
}

class UserVO { public $_explicitType ="dummy.vo.UserVO"; public $userId; public $userName; }

Слайд 22

import vo.UserVO;
private var user:UserVO;
private function createNewUser():void{
var newUser:UserVO = new UserVO();
newUser.userName = uName.text;
ro.createNewUser(newUser);
}

import vo.UserVO; private var user:UserVO; private function createNewUser():void{ var newUser:UserVO = new
x="618" y="40" width="279" height="155" layout="absolute“/>







Слайд 23

require_once(“vo/UserVO.php”);
public function getUsers(){
$users = array();
$query = mysql_query("SELECT user_id, user_name FROM users");
while ($row

require_once(“vo/UserVO.php”); public function getUsers(){ $users = array(); $query = mysql_query("SELECT user_id, user_name
= mysql_fetch_object($query)){
$user = new UserVO();
$user->userId = $row->user_id;
$user->username = $row->user_name;
$users[] = $user;
}
return $users;
}
public function createNewUser (UserVO $newUser){
mysql_query("INSERT INTO users SET user_name = '" . $newUser->userName . "'");
}
Имя файла: PHP&Flex---новая-альтернатива-для-создания-RIAs.pptx
Количество просмотров: 97
Количество скачиваний: 0