• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Ext.direct چیست؟
#1
Ext.Direct یکی از ایده های Extjs هست که امروز می خوام شما رو باهاش آشنا کنم
در نرم افزارهای RIA اغلب دارای دو قسمت سمت سرور و سمت کلاینت هستند. کلاینت همیشه باید به سرور بگه لطفا فلان کار رو کن. لطفا فلان کار رو کن. اما داخل کد نویسی شما هم همیشه باید یه درخواست به سرور بفرستین و این درخواست رو انجام بدین. اما با Ext.direct یه مقدار اوضاع فرق می کنه. بهتره بریم سراغش تا ببینمی چی هست
مواد لازم:
بسته Extjs نسخه ۳.۰.۳ از اینجا
بسته Ext.direct pack ‌از‌اینجا
و فایرباگ
بسته extdirectpack ‌رو باز کنید و داخل پوشه php برید‌ و محتواش رو روی سرور قرار بدید
حالا یک فایل html ‌ درست کنید محتوای زیر رو داخلش بریزید (این ماله قسمت کلاینت هست)
کد پی‌اچ‌پی:
<html>
<
head>
  <
meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <
link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css">
  <
script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
  <
script type="text/javascript" src="ext/ext-all-debug.js"></script>
  <
script type="text/javascript" src="api.php"></script>
  <
script type="text/javascript">
      
Ext.Direct.addProvider(Example.API);
  </
script>
</
head>
<
body>
</
body>
</
html

حالا‌ فایل api.php رو‌ باز کنید و محتوای زیر رو داخلش بریزید
کد پی‌اچ‌پی:
<?php
require_once("config.php");
 
session_start();
 
// Include ExtDirect PHP Helpers
require_once('ExtDirect/API.php');
require_once(
'ExtDirect/CacheProvider.php');
 
// disable caching for development, enable for production
//$cache = new ExtDirect_CacheProvider('cache/api_cache.txt');
$api = new ExtDirect_API();
 
$api->setRouterUrl('router.php'); // default
 
// disable caching for development, enable for production
//$api->setCacheProvider($cache);
 
$api->setNamespace('Example');
$api->setDescriptor('Example.API');
$api->setDefaults(array(
    
'autoInclude' => true,
    
'basePath' => 'classes'
));
 
$api->add(
    
// these are example classes from Ext.Direct PHP stack
    
array(
        
// real class name is Class_Echo, therefore prefix
        
'Echo' => array('prefix' => 'Class_'),
 
        
// real class name is Class_Exception, therefore prefix
        
'Exception' => array('prefix' => 'Class_'),
        
'Time',
        
'File'
    
)
);
$api->output();
 
$_SESSION['ext-direct-state'] = $api->getState();
 
// eof
?>

حالا فایل index.html رو با مرورگر باز کنید و با firebug توی‌ قسمت console برید
حالا این رو داخل کنسول فایر باگ بزنید
کد:
Example.Time.get();
یه‌ درخواست به‌ سرور داده میشه
کد:
{"action":"Time","method":"get","data":null,"type":"rpc","tid":2}
و این جواب گرفته میشه
کد:
{"type":"rpc","tid":2,"action":"Time","method":"get","result":"09-05-2009 19:46:38"}

حالا برید داخل پوشه classes و فایل Time.php رو‌ نگاه کنید و متد get رو‌ ببینید.
بله ما به راحتی با جاوااسکریپت یک متد از سرور را صدا زدیم و جواب را گرفتیم
Big Grin

البته باز جزئیات بیشتری داره که هروقت اومدید سراغ‌ Extjs میتونید بیشتر یاد بگیرید
  پاسخ
تشکر شده توسط : zoghal HiddeN parvane میلاد oia Maya amir.s
#2
می شه باهاش برنامه نویسی رخداد گرای با زبان PHP نوشت؟!!!
  پاسخ
تشکر شده توسط :
#3
منظورت چیه؟
  پاسخ
تشکر شده توسط :
#4
هیچی وقتی پستت رو با دقت بیشتری خوندم از سوالم منصرف شدم!!! Wink
بزار یه تستس یزنیم بعد نظر می دیم که خدای نکرده گاف ندیم Tongue
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان