۲۰ کتابخانه پرکاربرد PHP
در این مطلب سعی داریم ۲۰ کتابخانهی جالب و کاربردی را برایتان معرفی کنیم که جزو محبوبترین کتابخانههای سال ۲۰۱۶ هستند. این کتابخانههای متن باز کمک خوبی برای پیادهسازی پروژههای PHP خواهد بود. در ادامه با مجیدآنلاین همراه باشید.
دارالترجمه رسمی
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
افزونه های سئو وردپرس
بهترین افزونه های سئو وردپرس به صورت کاملا فارسی
بهترین افزونه های سئو وردپرس به صورت کاملا فارسی
افزونه فرم ساز آسان
فرم ساز آسان اولین فرم ساز کاملا فارسی وردپرس
فرم ساز آسان اولین فرم ساز کاملا فارسی وردپرس
خرید ورق گالوانیزه رنگی
خرید انواع ورق گالوانیزه رنگی با بهترین قیمت
خودتان را اینجا معرفی کنید
خرید انواع ورق گالوانیزه رنگی با بهترین قیمت
Monolog
با استفاده از کتابخانهی Monolog میتوانید یک سیستم پیشرفتهی ورود به پنل طراحی کنید که از وب سرویس ها ، دیتابیس ها و فایل ها لاگ میگیرد. این کتابخانه کاربرد های فراوانی دارد و با سه فریمورک Laravel، Symfony2 و Slim نیز سازگار است.
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
این کتابخانه مجموعهای از کلاسهای PHP ای است که به توسعهدهندگان اجازه میدهد قابلیت ویرایش صفحه گسترده (spreadsheet) را در برنامههای خود پیادهسازی کنند. PHPExcel از فرمتهای پرکابردی مثل.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 یک کتابخانهی جالب برای پیادهسازی تکنیک یادگیری ماشین است. 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 پشتیبانی میکنند.
'Strategy' => array(
// Define strategies here.
'Facebook' => array(
'app_id' => 'YOUR APP ID',
'app_secret' => 'YOUR APP SECRET'
),
);
Whoops
Whoops جزییات دقیق خطاها و اشکالات را به شما نشان خواهد داد. این کتابخانه یک صفحه خطا را نشان میدهد که در آن تمامی اشکالات با رنگ و سایزبندی مختلف مشخص است. فریمورک لاراول از این Whoops پشتیبانی میکند.
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();
// That's it!
FastCache
سیستم کش این کتابخانه سرعت بارگذاری سایت را به میزان قابل توجهی افزایش میدهد. FastCache به جای فرستادن هر کوئری به پایگاه داده، مورادی را ارسال میکند که خاص و منحصر بفرد است. به این معنا که اگر یک جست و جوی مشابه را 1000 بار انجام داده باشید، تنها یک بار از پایگاه داده استفاده میشود. بقیهی 999 بار از کشِ سیستم بارگذاری میشود.
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، آپلود و دانلودهای زیاد و حجیم برمیآید. کار کردن با این کتابخانه بسیار آسان است.
$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 MuneeDispatcher::run(new MuneeRequest());
<!-- 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
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";
});
Climate
این کتابخانه برای افرادی مناسب است که دستورات PHP را از خط فرمان اجرا میکنند. Climate مجموعه روش هایی را برای برقراری ارتباط با ترمینال ارائه میدهد.
$climate = new League\CLImate\CLImateaker;
// Output
$climate->out('This prints to the terminal.');
// Input
$input = $climate->input('How you doin?');
$response = $input->prompt();
// Formatting
$padding = $climate->padding(10);
$padding->label('Eggs')->result('$1.99');
$padding->label('Oatmeal')->result('$4.99');
// Eggs...... $1.99
// Oatmeal... $4.99
Alice
این کتابخانه بر پایه Faker ساخته شده است که اشیای جعلی برای تست تهیه میکند. روش کار به این صورت است که ابتدا باید ساختار اشیای مورد نظر خود را بسازید. سپس با فراخوانی تابع آلیس، این شی جعلی به یک شی واقعی با مقادیر تصادفی تبدیل میشود.
// Template in person.yml file
Person:
person{1..10}:
firstName: ''
lastName: ''
birthDate: ''
email: ''
// Load dummy data into an object
$person = \Nelmio\Alice\Fixtures::load('/person.yml', $objectManager);
Ratchet
این کتابخانه از PHP برای پشتیبانی از WebSocket ها استفاده میکند. WebSocket یک کانال ارتباطی میان سرور و کلاینت به صورت لحظهای برقرار میکند. برای این منظور Ratchet پردازشهای جداگانهای را ایجاد میکند که همیشه در حال اجراست و پیامها را به صورت ناهمگام ردوبدل میکند.
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);
}
}
}
}
// Run the server application through the WebSocket protocol on port 8080
$app = new Ratchet\App('localhost', 8080);
$app->route('/chat', new MyChat);
$app->run();
PHPMailer
این کتابخانه در سیستمهایی مثل وردپرس و دروپال پیادهسازی شده و یکی از امنترین راهکارهای ارسال ایمیل در PHP است. PHPMailer توسط SMTP پشتیبانی میشود و میتوانید ایمیلهای مبتنی بر HTML را با استفاده از آن ارسال کنید.
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 = 'Here is the subject';
$mail->Body = 'This is the HTML message body in bold!';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
Hoa
Hoa یک کتابخانهی واحد نیست. این سیستم مجموعهای از 50 کتابخانهی کاربردی را ارائه میدهد که برای توسعهی وب مفیدند. Hoa کاملا ماژولار است. به این معنی که میتوانید از هر کتابخانهای که مدنظرتان است، بدون هیچ در هم ریختگی استفاده کنید.
// Hoa Mail
$message = new Hoa\Mail\Message();
$message['From'] = 'Gordon Freeman ';
$message['To'] = 'Alyx Vance ';
$message['Subject'] = 'Hoa is awesome!';
$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 باید بصورت inline نوشته شود. CssToInlineStyles این کار را به راحتی برایمان انجام خواهد داد. کافیست تا کد های خود را در یک فایل .css بنویسید تا این کتابخانه با استفاده از انتخابگرها، کدها را به تگهای مناسب خود اختصاص دهد.
use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles;
// create instance
$cssToInlineStyles = new CssToInlineStyles();
$html = file_get_contents(__DIR__ . '/examples/sumo/index.htm');
$css = file_get_contents(__DIR__ . '/examples/sumo/style.css');
// output
echo $cssToInlineStyles->convert(
$html,
$css
);
Stringy
برای هرگونه تغییری در رشتهها باید از این کتابخانه استفاده کنید. 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('&')->htmlDecode(); // '&'
Robo
این کتابخانه یک اجرا کنندهی وظیفه(task) میباشد که فقط مختص PHP است. با استفاده از Robo میتوانید یک اتوماسیون برای خود راه بیندازید تا گردش کارتان بهبود یابد. کتابخانهی Robo میتواند تست انجام دهد و به بروزرسانیهای کنترل نسخه رسیدگی کند.
// Doing a Git Commit with 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
این کتابخانه از متد های مختلفی استفاده کرده و متغیرها را به شکلی خوانا و قابل فهم برای افراد تبدیل میکند. برای مثال میتواند اعداد یونانی را ترجمه کند، رشتههای طولانی را کوتاه کند و یا بایتها را به شکل kB/MB/GB محاسبه کند. این کتابخانه بیشتر از ۱۵ زبان (حتی از نوع گفتاری) را پشتیبانی میکند.
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
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'));
منبع:
tutorialzine
نظرات و سوالات کاربران
هم اکنون شما اولین دیدگاه را ارسال کنید.