وبلاگ

Datatables: لایبرری پی‌اچ‌پی برای هندل پردازش‌های سمت سرور دیتاتیبل‌ها


مجتبی پاکزاد مجتبی پاکزاد

لایبرری datatables برای هندل کردن پردازش‌های سمت سرور مربوط به دیتاتیبل‌ها کاربرد دارد. دیتاتیبل‌ها جداولی داینامیک هستند که محتوای آن‌ها به کمک اجکس رفرش می‌شود. استفاده از دیتاتیبل‌ها، روشی سریع و ساده برای پردازش محتوای جدول‌ها است.

نمونه دیتاتیبل

فیچرها

  1. استفاده از آن آسان است. تنها با چند کد، اطلاعات مورد نیاز به صورت json تولید می‌شود.
  2. با استفاده از کلوژر فانکشن می‌توانید ستون‌ها را ویرایش کنید.
  3. از mysql و sqlite پشتیبانی می‌کند.
  4. با فریمورک‌های زیر کار می‌کند:

روش نصب

نصب از طریق کامپوزر پشتیبانی می‌شود.
اگر هنوز شروع به استفاده از کامپوزر نکرده‌اید، به شدت توصیه می‌کنیم از آن استفاده کنید.

یک فایل با نام composer.json در روت پروژه خودتان قرار دهید و کد زیر را در آن بنویسید:

{
    "require": {
       "ozdemir/datatables": "1.*"
    }
}

حالا دستور composer install را اجرا کنید.

توجه

برای اجرای دستور بالا، ابتدا باید کامپوزر را نصب کرده باشید، سپس دستور بالا را در ترمینال مک/لینوکس یا کامندلاین ویندوز اجرا کنید.

یا اگر می‌خواهید سریع‌تر این کار را انجام دهید، نیازی به ساخت فایل بالا نیست، تنها دستور composer require ozdemir/datatables را اجرا کنید.

سپس autoloader را به پروژه خود اضافه کنید.

<?php

require_once 'vendor/autoload.php'

حالا پروژه شما آماده شروع استفاده از لایبرری Datatables است.

روش استفاده

یک مثال ساده اجکس:

<?php
require_once 'vendor/autoload.php';

use Ozdemir\Datatables\Datatables;
use Ozdemir\Datatables\DB\MySQL;

$config = [ 'host'     => 'localhost',
    'port'     => '3306',
    'username' => 'homestead',
    'password' => 'secret',
    'database' => 'sakila' ];

$dt = new Datatables( new MySQL($config) );

$dt->query("Select film_id, title, description from film");

echo $dt->generate();

متدها

لیست زیر، متدهای پابلیک در دسترس را نشان می‌دهد.

  • query ( $query : string ) (اجباری)
  • add ($newColumn:string, Closure:object ) (اختیاری)
  • edit ($column:string, Closure:object ) (اختیاری)
  • get ($value:string ) (اختیاری - برای اهداف توسعه)
  • hide ($column:mixed ) (اختیاری)
  • generate ( ) (اجباری)

مثال

<?php
$dt = new Datatables( new MySQL($config) );

$dt->query("Select id, name, email, address, plevel from users");

$dt->edit('id', function($data){
    // return an edit link.
    return "edit";
});

$dt->edit('email', function($data){
    // return mail@mail.com to m***@mail.com
    return preg_replace('/(?<=.).(?=.*@)/u','*', $data['email']);
});

$dt->edit('address', function($data){
    // check if user has authorized to see that
    $current_user_plevel = 4;
    if ($current_user_plevel > 2 && $current_user_plevel > $data['plevel']) {
        return $data['address'];
    }

    return 'you are not authorized to view this column';
});

$dt->add('action', function($data){
    // return an edit link in new column action
    return "edit";
});

echo $dt->generate();

الزامات

  • DataTables ورژن 1.10 به بالا
  • PHP ورژن 5.3.7 به بالا


مجتبی پاکزاد
مجتبی پاکزاد

حل مساله و چالش رو خیلی دوست دارم و رابطه خیلی خوبی با ریاضیات، برنامه‌نویسی و اقتصاد دارم. علاقه زیادی به هوش‌مصنوعی، یادگیری ماشین و موضوعات مرتبط دارم.

مطالب مرتبط

پیش‌بینی قیمت سهام با استفاده از لایبرری PHP-ML

با استفاده از لایبرری PHP-ML، سعی کردیم قیمت سهام را پیش‌بینی کنیم. در عمل یک توصیه به اقدام (خرید/فروش) دریافت می‌کنیم و بازده مورد انتظارمان را می‌بینیم. سپس CFDها را با لوریج بالا معامله می‌کنیم و پولدار می‌شویم.

دانلود خودکار فایل CSV در PHP

دانلود خودکار یک فایل CSV با استفاده از PHP، یک ساختار خاص از کد را ایجاد می‌کند که با فایل‌هایی که عموما ایجاد می‌کنیم تفاوت دارند.

اصول شی‌گرایی در PHP

برای یادگیری اصول شی‌گرایی باید برنامه‌نویسی رویه‌گرا به خوبی آموخته باشیم. شی‌گرایی نقطه مقابل برنامه نویسی رویه‌گرا است. در شی‌گرایی با مفاهیمی چون کلاس‌ها، اشیا و پراپرتی‌ها سروکار داریم. کلاس مانند یک نقشه است که قاعده کلی را شامل می‌شوند، شی نیز یک نمونه است که از روی نقشه یا راهنمای ما که کلاس است ساخته شده است.

افزایش سرعت لاراول با کمک سول (swoole)

Swoole فریم‌ورک برنامه‌نویسی همگام در سطح تولید برای PHP است. اجرای swoole بر روی لاراول، عملکرد اپلیکیشن لاراولی شما را تقویت می‌کند.

دیدگاه‌ها