کتابخانه ی Jaxon یک کتابخانه ی php مبتنی بر جاوااسکریپت است که این قابلیت را به ما می دهد تا از خصوصیات AJAX در پروژه بهره ببریم.
این کتابخانه می تواند درخواست های جاوااسکریپت مبتنی بر AJAX را پردازش و توابع مربوط به آن را اجرا نماید.
توابع و کلاس های این کتابخانه ، دایرکتوری کلاس های دیگر را با پشتیبانی از فضا های نامی ثبت و پردازش می کند ، بنابراین لازم نیست که هر کلاس را در هر دایرکتوری همزمان ثبت نمایید.
از دیگر خصوصیات جالب کتابخانه Jaxon این است که کلاس ها و قسمت های مختلف برنامه به صورت خودکار براساس درخواست فرستاده شده مبتنی بر جاوا اسکریپت به کتابخانه Jaxon ارجاع داده می شود، بنابراین تنها کلاس ها و قسمت هایی از برنامه که درخواست آنها مرتبط با AJAX است ، به کلاس Jaxon ارجاع داده می شود.
بسیاری از برنامه های تحت وب دارای از کدهای جاوا اسکریپت استفاده می کنند که با بهره گیری از این کلاس می توانند به وسیله ی AJAX با کد سرور PHP مرتبط شوند. کدهای سمت سرور نیاز به ثبت کلاسها و توابع داردند که تماسها و پاسخ های AJAX را مدیریت خواهند کرد.
کتابخانه Jaxon یک روش کارآمدتر برای ثبت چندین کلاس در یک زمان می باشد. شما فقط یک دایرکتوری را مشخص می کنید و بسته را فراخوانی می کنید و کلاس ها را در صورت درخواست AJAX دریافت می کنید.
کتابخانه ی Jaxon برگرفته از کلاس های کتابخانه ی Xajax است که توابع و کلاس های آن بهینه شده است و قابلیت مدیریت درخواست های جاوا اسکریپت برنامه را دارا می باشد.
امکانات کتابخانه ی Jaxon :
- بهره گیری از فضای نامی به این صورت که لازم نیست که هر کلاس را در هر دایرکتوری همزمان ثبت نمایید.
((بدون استفاده از فضای نامی , تمامی اسامی مورد استفاده در برنامه سعی می کنند در یک فضای نام کلی , جایی برای خود در نظر بگیرند که موجب برخورد بین اسامی یکسان میشود.اما اگر اگر از فضاهای نام جداگانه ایی استفاده شود , هیچ اشکالی در برنامه به وجود نمی آید.فضای نام برای تفکیک مجموعه ایی از اسامی از مجموعه دیگر به کار می رود.))
- کتابخانه Jaxon می تواند تنظیمات پیکربندی آن را از یک فایل دریافت کند. فرمت های پشتیبانی شده در این کتابخانه عبارتند از JSON، YAML و فایل های PHP .
- کتابخانه Jaxon ویژگی صفحه بندی را از جعبه فراهم می کند.
- Jaxon مدولار است و شامل یک بسته اصلی و چند پلاگین و کلاس است.
- کلاسهای جاوااسکریپت تولید شده توسط Jaxon با توجه به فضای نامی آنها و یا شاخه هایی که در آن قرار دارند، نامگذاری می شوند.
- سازگاری با فریم ورک های مطرحی از جمله: cake php، لاراول ، yii ، codeigniter و... .
توجه: کتابخانه Jaxon در نسخه های php 5.4 با بالا قابل استفاده است.
در زیر مثالی بر اساس فایل hello.php گفته شده است:
require (__DIR__ . '/vendor/autoload.php');
use Jaxon\Jaxon;
use Jaxon\Response\Response;
$jaxon = jaxon();
// Js options
$jaxon->setOption('js.lib.uri', '/exp/js/lib');
$jaxon->setOption('js.app.minify', false);
/*
Function: helloWorld
Modify the innerHTML of div1.
*/
function helloWorld($isCaps)
{
if ($isCaps)
$text = 'HELLO WORLD!';
else
$text = 'Hello World!';
$xResponse = new Response();
$xResponse->assign('div1', 'innerHTML', $text);
// This is to test the javascript console error logging
$xResponse->script('var test = null; alert(test.haha)');
return $xResponse;
}
/*
Function: setColor
Modify the style.color of div1
*/
function setColor($sColor)
{
$xResponse = new Response();
$xResponse->assign('div1', 'style.color', $sColor);
return $xResponse;
}
// Register functions
$jaxon->register(Jaxon::USER_FUNCTION, 'helloWorld', array('mode' => "'synchronous'"));
$jaxon->register(Jaxon::USER_FUNCTION, 'setColor', array('mode' => "'synchronous'"));
// Process the request, if any.
$jaxon->processRequest();
require(__DIR__ . '/includes/header.php')
?>
"
"
<div class="container-fluid">
<div class="row">
<?php require(__DIR__ . '/includes/nav.php') ?>
<div class="col-sm-9 content">
<h3 class="page-header">Hello World Function</h3>
"
"
<div class="row" id="jaxon-html">
<div class="col-md-12" id="div1">
</div>
<div class="col-md-4 margin-vert-10">
<select class="form-control" id="colorselect" name="colorselect"
onchange="<?php echo rq()->call('setColor', rq()->select('colorselect')) ?>">
<option value="black" selected="selected">Black</option>
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
</select>
</div>
<div class="col-md-8 margin-vert-10">
<button type="button" class="btn btn-primary" onclick="<?php echo rq()->call('helloWorld', 1) ?>" >CLICK ME</button>
<button type="button" class="btn btn-primary" onclick="<?php echo rq()->call('helloWorld', 0) ?>" >Click Me</button>
</div>
"
"
</div>
</div> <!-- class="content" -->
</div> <!-- class="row" -->
</div>
<div id="jaxon-init">
<script type='text/javascript'>
/* <![CDATA[ */
window.onload = function() {
// call the helloWorld function to populate the div on load
<?php echo rq()->call('helloWorld', 0) ?>;
// call the setColor function on load
<?php echo rq()->call('setColor', rq()->select('colorselect')) ?>;
}
/* ]]> */
</script>
</div>
"
"
<?php require(__DIR__ . '/includes/footer.php') ?>
برای دریافت فایل های هسته ی این کتابخانه و فراخوانی آن در پروژه خود میتوانید از لینک زیر استفاده نمایید:
https://codeload.github.com/jaxon-php/jaxon-core/zip/master
همچنین این کتابخانه دارای پلاگین های گوناگون جهت کار با فایل های جاوا اسکریپت می باشد که می توانید از لینک زیر نسبت به دریافت آنها اقدام نمایید:
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید