معرفی ۲۰ کتابخانه عالی برای PHP

معرفی ۲۰ کتابخانه عالی برای PHP

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

ما در این مقاله به شما ۲۰ کتابخانه کاربردی و جالب را معرفی خواهیم کرد که میتوانید از آنها در پروژه های خود استفاده نمایید.

۱- Monolog

شما با استفاده از این کتابخانه میتوانید یک سیستم ورود  برای ارسال داده های مورد نیاز برای اتصال به یک فایل ،سوکت ،دیتابیس ، ایندکس  یا خدمات دیگر وب طراحی نمایید.این کتابخانه بیش از ۵۰ برنامه کنترلی(handler)دارد که میتوانید بسته به نیاز خود در انواع فریم ورک ها استفاده نمایید.

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// ایجاد کانال ارتباط
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

// اضافه کردن رکورد ها به log
$log->warning('Foo');
$log->error('Bar');

۲- PHPExcel

مجموعه ای از کلاس های PHP که به توسعه دهندگان امکان این را میدهند که به سادگی یک ویرایشگر مجزا برای صفحات برنامه خود ایجاد کنند.این کتابخانه توانایی خواندن و نوشتن صفحات مجزا در فرمت های رایجی مثل اکسل(xls. وxlsx.) و یا فرمت ods. ویا حتی CSV را دارا میباشد.

include 'PHPExcel/IOFactory.php';

$inputFileName = './sampleData/example1.xls';

echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory';
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);

$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
var_dump($sheetData);

۳- PHP-ML

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

use Phpml\Classification\KNearestNeighbors;

$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];
$labels = ['a', 'a', 'a', 'b', 'b', 'b'];

$classifier = new KNearestNeighbors();
$classifier->train($samples, $labels);

$classifier->predict([3, 2]);

۴- Opauth

این کتابخانه برای اعتبارسنجی اکانت کاربران در شبکه های اجتماعی یا هر خدمات دیگری که به اعتبارسنجی نیاز داشته باشد به کار می رود.البته اکثر شبکه های بزرگ اجتماعی مانند:فیسبوک،توییتر،اینستاگرام،لینکدین،گوگل وگیت هاب توسط این کتابخانه پشتیبانی میشوند.این کتابخانه توسط بیشتر فریمورکهای PHPپشتیبانی میشود.

'Strategy' => array(  
    // تعریف استراتژی مورد نظر در این بخش

    'Facebook' => array(
        'app_id' => 'YOUR APP ID',
        'app_secret' => 'YOUR APP SECRET'
    ),
);

۵- Whoops

با استفاده از این کتابخانه،در صورت وجود خطا در بخش هایی از کد،توضیحات دقیقی در مورد خطا ارائه میشود.این کتابخانه با رنگی کردن محل خطا به ما در پیدا کردن محل دقیق خطا کمک بسیاری می کند.فریمورک Laravel بصورت پیش فرض این کتابخانه را دارا میباشد.

$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();

۶- FastCache

با استفاده از این کتابخانه،شما با کش کردن داده ها،مقدار اطلاعات ارسالی به دیتابیس را کاهش داده و سرعت برنامه خود را افزایش می دهید.شما با کش کردن داده،به میزان قابل ملاحضه ای در سرعت بارگذاری برنامه ،جلو خواهید افتاد،برای مثال شما در یک برنامه بیش ۱۰۰۰ کوئری دارید که با کش کردن داده ها میتوانید از ارسال و دریافت ۹۹۹ آنها به دیتابیس جلوگیری نمایید.جالب نیست!

use phpFastCache\CacheManager;

$config = array(
    "storage"   =>  "files",
    "path"      =>  "/your_cache_path/dir/",
);
CacheManager::setup($config);

// دریافت کلید  از کش برای اولین بار
$products = CacheManager::get("products");

// در صورت موجود نبودن،دریافت از دیتابیس و ذخیره در کش
if(is_null($products)) {
    $products = "DB SELECT QUERY";
    // کش کردن $products برای۶۰۰ ثانیه.
    CacheManager::set($cache_keyword, $products,600);
}

۷- Guzzle

این کتابخانه یکی بهترین کتابخانه های مورد نیاز HTTP سمت کلاینتها می باشد.این کتابخانه تقریبا تمام درخواستهای HTTP مورد نیاز شما را برآورده می کند.(درخواستهای پشت سرهم و منقطع،کوکیهای HTTP و جریانی از دریافت و بارگذاری ).کار با این کتابخانه بسیار ساده و دلچسب می باشد و سما با مراجعه به فایل توضیحات آن به تمامی عملکرد آن بصورت ریز به ریز آشنا خواهید شد.

$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'https://api.github.com/user', [
    'auth' => ['user', 'pass']
]);
echo $res->getStatusCode();
// "۲۰۰"
echo $res->getHeader('content-type');
// 'application/json; charset=utf8'
echo $res->getBody();
// {"type":"User"...'

// ارسال در خواست همزمان
$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
$promise = $client->sendAsync($request)->then(function ($response) {
    echo 'I completed! ' . $response->getBody();
});
$promise->wait();

۸- Munee

این کتابخانه دارای ترفندهای بسیار مفیدی در داخل خود می باشد:ترکیب تعدادی از درخواستهای CSS و جاوااسکریپت در یک فایل ، تغییر اندازه تصویر،تلفیق خودکاری از sass،بخشی از فایل های CoffeeScript،فشرده سازی عالی Gzip.تمام عملکردهای ذکر شده میتوانند در سمت سرور یا کاربر اجرا بشوند.

require 'vendor/autoload.php';
echo \Munee\Dispatcher::run(new \Munee\Request());

<!--  فایل ترکیب دو CSS در یک فایل -->
<link rel="stylesheet" href="/css/bootstrap.min.css, /css/demo.css">

<!-- تغییر اندازه تصویر -->
<img src="/path/to/image.jpg?resize=width[100]height[100]exact[true]">

<!-- انجام خودکار ترجمه(کامپایل)فایلهایی که نیاز است -->
<link rel="stylesheet" href="/css/demo.scss">

<!-- Minifying کد -->
<script src="/js/script.js?minify=true"></script>

۹- Twig

ایجاد یک ساختار  برای ساده سازی و کوتاه کردن نوشتن کد.این کتابخانه به شما تمام چیزی را که از یک کتابخانه به روز برای نوشتن کد نیاز دارید را در اختیار شما قرار می دهد:متغییرهای فرار(variable escaping)،حلقه ها(loops)،بلوکهای if/else و هر استانداردی که برای نوشتن کد به آن نیاز خواهید داشت.

// قالب HTML

<p>Welcome {{ name }}!</p>


// اجرا

require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array(
    'cache' => '/path/to/compilation_cache',
));

echo $twig->render('index.html', array('name' => 'George'));

۱۰- Goutte

از این کتابخانه شما میتوانید داده های HTMLو یا XML را که مورد نیاز است را استخراج نمایید.این کتابخانه با استفاده از ارسال درخواست URL و دریافت آبجکت مورد نظر ،کار می کند،که این ویژگی به برنامه نویسان این امکان را می دهد که از راه دور با صفحات تعامل برقرار نمایند.

use Goutte\Client;
$client = new Client();

// symfony.com رفتن به وبسایت 
$crawler = $client->request('GET', 'http://www.symfony.com/blog/');

// کلیک روی لینک ها
$link = $crawler->selectLink('Security Advisories')->link();
$crawler = $client->click($link);

// استخراج داده های مورد نیاز
$crawler->filter('h2 > a')->each(function ($node) {
    print $node->text()."\n";
});

۱۱- Climate

این کتابخانه برای آندسته از افرادی که PHP را با استفاده از خط دستوری(command line) اجرا می کنند مفید است.این کتابخانه مجموعه ای از متد ها را برای ایجاد ارتباط با ترمینال ها(هم ورودی و هم خروجی)  و همچنین تعدادی تابع برای قالب بندی و رنگبندی  مورد استفاده قرار می دهد.

$climate = new League\CLImate\CLImate;

// خروجی
$climate->out('This prints to the terminal.');

// ورودی
$input = $climate->input('How you doin?');
$response = $input->prompt();

// قالب بندی
$padding = $climate->padding(10);

$padding->label('Eggs')->result('$1.99');
$padding->label('Oatmeal')->result('$4.99');
// Eggs...... $1.99
// Oatmeal... $4.99

۱۲- Alice

کار این کتابخانه تولید داده های جعلی برای تست کردن است.شما برای استفاده از این کتابخانه ابتدا باید ساختار و داده های مورد نیاز اشیا خود را تعریف نمایید.سپس با استفاده از یک تابع ساده این کتابخانه را فراخوانی می کنیم تا با این الگو مقادیری واقعی بصورت تصادفی تولید نماییم.

// Template in person.yml file
Person:
    person{1..10}:
        firstName: '<firstName()>'
        lastName: '<lastName()>'
        birthDate: '<date()>'
        email: '<email()>'


// بارگذاری داده های ساختگی در داخل  آبجکت
$person = \Nelmio\Alice\Fixtures::load('/person.yml', $objectManager);

۱۳- Ratchet

این کتابخانه برای اضافه کردن رابطهای  WebSockets در برنامه ها با استفاده از PHP می باشد.WebSockets ها برای ایجاد ارتباط همزمان دوطرفه بین سرور و سمت کاربر به کار می آیند.برای کار کردن این کتابخانه در PHP،یک پردازش مجزا بر روی PHP انجام می دهد که همواره در حال اجرا بوده و درخواست هایی را ارسال کرده و پیام هایی را دریافت می کند.

class MyChat implements MessageComponentInterface {
    protected $clients;

    public function __construct() {
        $this->clients = new \SplObjectStorage;
    }

    public function onOpen(ConnectionInterface $conn) {
        $this->clients->attach($conn);
    }

    public function onMessage(ConnectionInterface $from, $msg) {
        foreach ($this->clients as $client) {
            if ($from != $client) {
                $client->send($msg);
            }
        }
    }
}

//اجرای برنامه سرور از طریق  پروتکل وب سوکت بر روی درگاه۸۰۸۰
$app = new Ratchet\App('localhost', 8080);
$app->route('/chat', new MyChat);
$app->run();

۱۴- PHPMailer

بدون این کتابخانه هیچ کدی کامل نیست.درواقع کار این کتابخانه که بر روی اکثر سیستم ها بکار می آید ایجاد بستری امن برای ارسال ایمیل در PHP می باشد.این کتابخانه از سیستم SMTP برای ارسال استفاده می کند.

require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('steve@example.com');    

$mail->addAttachment('/var/tmp/file.tar.gz');        
$mail->isHTML(true);                                  

$mail->Subject = 'آبجکت ها در اینجا قرار میگیرند';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';

if(!$mail->send()) {
    echo 'پیام ارسال نشد!';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'پیام ارسال شد';
}

۱۵- Hoa

این کتابخانه در واقع یک کتابخانه PHP نیست(در لیست آنها قرار ندارد) و بیشتر شامل ابزار کاربردی و مفید برای توسعه دهندگان وب میباشد.برای آشنا شدن با این کتابخانه حتما به لینک اصلی کتابخانه سری هم بزنید.

// Hoa Mail
$message            = new Hoa\Mail\Message();
$message['From']    = 'Gordon Freeman <gordon@freeman.hf>';
$message['To']      = 'Alyx Vance <alyx@vance.hf>';
$message['Subject'] = 'Hoa عالیه ';
$message->addContent(
    new Hoa\Mail\Content\Text('Check this out: http://hoa-project.net/!')
);
$message->send();

// Hoa Session
$user = new Hoa\Session\Session('user');

if ($user->isEmpty()) {
    echo 'first time', "\n";
    $user['foo'] = time();
} else {
    echo 'other times', "\n";
    var_dump($user['foo']);
}

۱۶- CssToInlineStyles

همه توسعه دهندگان از نوشتن استایل ها در داخل کدهای HTML خسته شده اند،این کتابخانه کار را بسیار راحت کرده است.شما فقط کافیه استایل های خود را در داخل یک فایل با پسوند css. ذخیره نموده و این کتابخانه از آن در هر جایی که شما بخواهید استفاده خواهد کرد.

use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles;

// ایجاد نمونه
$cssToInlineStyles = new CssToInlineStyles();

$html = file_get_contents(__DIR__ . '/examples/sumo/index.htm');
$css = file_get_contents(__DIR__ . '/examples/sumo/style.css');

// خروجی
echo $cssToInlineStyles->convert(
    $html,
    $css
);

۱۷- Stringy

کتابخانه ای برای اعمال تغییرات بر روی انواع داده های رشته ای.این کتابخانه متدهای مختلفی و متفاوتی روی انواع داده های رشته ای اعمال میکند که میتوان  به :(reverse(), htmlEncode(), toAscii.)اشاره کرد.ما با استفاده از تکه کد زیر کارکرد بخشی از کتابخانه را برایتان معرفی کی کنیم.

s('Camel-Case')->camelize(); // 'camelCase'

s('   Ο     συγγραφέας  ')->collapseWhitespace(); // 'Ο συγγραφέας'

s('foo & bar')->containsAll(['foo', 'bar']); // true

s('str contains foo')->containsAny(['foo', 'bar']); // true

s('fòôbàř')->endsWith('bàř', true); // true

s('fòôbàř')->getEncoding(); // 'UTF-8'

s('&amp;')->htmlDecode(); // '&'

۱۸- Robo

Robo یک اجرا کننده آسان  فقط برای PHP است.شما با استفاده از آن میتوانید یک اتوماسیون برای افزایش و بهبود عملکرد کار خود راه اندازی نمایید و مدت زمان لازم برای اجرای یک پروژه رابه کمترین زمان ممکن برسانید.Robo توانایی اجرای تست ها،ترجمه کدهای دریافتی از پردازنده ها،اعمال تغییرات روی کنترلرهای بروزرسانی و…را دارد.

public function pharPublish()
{
    $this->pharBuild()->run();
    $this->_rename('robo.phar', 'robo-release.phar');
    return $this->collectionBuilder()
        ->taskGitStack()
            ->checkout('gh-pages')
        ->taskGitStack()
            ->add('robo.phar')
            ->commit('robo.phar published')
            ->push('origin', 'gh-pages')
            ->checkout('master')
            ->run();
}

۱۹- PHP Humanizer

این کتابخانه با استفاده از متدهایی،متغییرها را دریافت کرده و آنها را به فرمتهایی که برای ما براحتی قابل خواندن هستند،تبدیل می کند.برای مثال این کتابخانه میتواند اعداد یونانی را به عددهای رایج تبدیل نماید.این کتابخانه بیش از ۱۵ زبان را پشتیبانی می کند.

use Coduo\PHPHumanizer\NumberHumanizer;

echo StringHumanizer::humanize('field_name'); // "Field Name"

echo NumberHumanizer::ordinalize(1); // "1st"
echo NumberHumanizer::ordinalize(23); // "23rd"

echo NumberHumanizer::toRoman(5); // "V"
echo NumberHumanizer::fromRoman("MMMCMXCIX"); // 3999

echo NumberHumanizer::binarySuffix(1024); // "1 kB"
echo NumberHumanizer::binarySuffix(1073741824 * 2); // "2 GB"

۲۰- ColorExtractor

آخرین کتابخانه مورد نظر ما یک کتابخانه کوچک برای استخراج رنگ ها از یک تصویر می باشد.این کتابخانه تمام پیکسلهای تصویر دریافتی را بررسی کرده و تمام رنگ های موجود در آن را برمی گرداند.

require 'vendor/autoload.php';

use League\ColorExtractor\Color;
use League\ColorExtractor\Palette;

$palette = Palette::fromFilename('./some/image.png');

$topFive = $palette->getMostUsedColors(5);
$colorCount = count($palette);
$blackCount = $palette->getColorCount(Color::fromHexToInt('#000000'));

 

 


0
0


هرگونه انتشار مطالب اختصاصي و محصولات اين سايت بجز با درج لينک مستقيم شرعا حرام بوده و پيگرد قانوني دارد.
طبق ماده 12 فصل سوم قانون جرائم رايانه هرگونه کپي برداري ممنوع بوده و پيگرد قانوني دارد. براي اطلاعات بيشتر کليک کنيد.

درباره‌ی مدیر سایت

در اردیبهشت سالی از سال های خدا بدنیا آمدم.درس خواندم و مهندس شدم.ازآنجایی که علاقه شدیدی به برنامه نویسی و ترجمه وآموزش داشتم در راستای اهدافم این وبسایت رو راه اندازی کردم تا دین خود را به جامعه برنامه نویسی ادا کرده باشم.

۲ دیدگاه ها

  1. خیلی عالی بودن

    ممنون بابت راهنمایی

  2. یعنی فوق العاده و مفید بود
    خیلی خیلی ممنون

دیدگاه خود را برای بیل بنویسید انصراف از پاسخ

آدرس پست الکترونیک شما منتشر نخواهد شد.خانه های ضروری نشانه گذاری شده اند. *

*


5 + = هشت

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>