20 کتابخانه عالی برای تابستان 1395 - قسمت اول
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 4 دقیقه

20 کتابخانه عالی برای تابستان 1395 - قسمت اول

اولین بار php در سال 1995 ارائه شده و تا به الان مخاطبان خیلی خیلی زیادی داره و همچنین کسانی که با اون کار میکنن هم خیلی زیاد هستند به همین خاطر هر روزه کتابخانه های زیادی برای این زبان دوست داشتنی آماده میشه این حرف رو خیلی راحت میتونید از روی وبسایت Github ببینید و شما دوستان میتونید از این کتابخونه ها در پروژه هاتون خیلی راحت استفاده کنید . 

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

Monolog

با استفاده از کتابخانه Monolog میتونید یک سیستم پیشرفته Log برای خودتون ایجاد کنید و از انواع وب سرویس ها ، دیتابیس ها ، فایل ها به سادگی لاگ بگیرید . 50 ابزار و فریمورک مختلف بدلیل ساختار هماهنگ این کتابخانه میتوانند به سادگی از آن در اپلیکیشن های خودشون استفاده کنند . 

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

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

// add records to the log
$log->warning('Foo');
$log->error('Bar');

PHPExcel

این کلاس به سادگی به توسعه دهنده ها اجازه میده تا sheet های Excel رو در برنامه خودشون ویرایش کنند . این کتابخانه قادر به خواندن مستندات sheet در فرمت های مختلف از نظیر 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

این کتابخانه جالب برای آزمایش با یادگیری ماشین است ، 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]);
// returns 'b' as the [3, 2] point is closer to the points in group b

Opauth

این کتابخانه به شما اجازه میده تا سیستم های احراز هویت بر اساس شبکه های اجتماعی یا سیستم های دیگر بسازید . شبکه های اجتماعی و سیستم های با نام های بزرگ : گوگل ، فیس بوک ، توئیتر ، گیت هاب ، اینستاگرام ، لینکدین .Opauth فریمورک های زیادی از php رو پشتیبانی میکنه و شما خیلی ساده میتونید از اون در فریمورکهای مختلف استفاده کنید . 

'Strategy' => array(  
    // Define strategies here.

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

 Whoops

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

$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();
// That's it!

FastCache

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

use phpFastCache\CacheManager;

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

// Try to get from Cache first with an Identity Keyword
$products = CacheManager::get("products");

// If not available get from DB and save in Cache.
if(is_null($products)) {
    $products = "DB SELECT QUERY";
    // Cache your $products for 600 seconds.
    CacheManager::set($cache_keyword, $products,600);
}

Guzzle

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

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

// Send an asynchronous request.
$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
$promise = $client->sendAsync($request)->then(function ($response) {
    echo 'I completed! ' . $response->getBody();
});
$promise->wait();

Munee

Munee  دارای تعداد زیادی از ترفندها در استین خود است برای مثال ترکیب چند فایل CSS یا چند فایل جاوا اسکریپت یا تغییر اندازه تصاویر همچنین کوچک سازی فایل ها یا فشرده سازی بر اساس Gzip و کارهای زیاد دیگه که در مستندات آن میتوانید بخوانید ، تمام فرآیندهای که ذکر کردیم هر دو سمت سرور و سمت کلاینت برای عملکرد مطلوب ذخیره سازی میتواند انجام شود . 

require 'vendor/autoload.php';
echo \Munee\Dispatcher::run(new \Munee\Request());
<!-- Combining two CSS files into one. -->
<link rel="stylesheet" href="/css/bootstrap.min.css, /css/demo.css">

<!-- Resizing image -->
<img src="/path/to/image.jpg?resize=width[100]height[100]exact[true]">

<!-- Files that need preprocessing are compiled automatically -->
<link rel="stylesheet" href="/css/demo.scss">

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

Twig

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

// Template HTML

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


// Rendering

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

Goutte یک خزنده وب است که با استفاده از ان میتوانید هر صفحه ای HTML یا XML را دریافت کنید و در ان جستجو کنید و المان های مورد نظر خود رو پیدا کنید . این کتابخانه با ارسال یک درخواست و دریافت اطلاعات از ان به شما اجازه میده در ان بخزین و هر نوع اطلاعاتی رو که میخواید دریافت کنید . 

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

// Go to the symfony.com website
$crawler = $client->request('GET', 'http://www.symfony.com/blog/');

// Click on the links
$link = $crawler->selectLink('Security Advisories')->link();
$crawler = $client->click($link);

// Extract data
$crawler->filter('h2 > a')->each(function ($node) {
    print $node->text()."\n";
});

10 کتابخانه دیگر در پست دوم ارائه میشود . امیدوارم این کتابخانه ها مورد استفاده شما قرار بگیرند . 

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
5 از 1 رای

/@hesammousavi
حسام موسوی
طراح و برنامه نویس

بیشتر از ۱۵ سال هست که در حال برنامه‌نویسی و انجام پروژه های مختلف هستم و ۱۰ سالی هست که آموزش برنامه‌نویسی به علاقمندان حوزه برنامه نویسی میدیم در همه این مدت الان عاشق کدزنی و چالش‌های پروژه‌های مختلفم. به تدریس علاقه خاصی دارم و دوست دارم دانشی که در این راه بدست آوردم را در اختیار دیگران هم قرار بدم. 

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید