در این پست قراره یک سری کتابخونه های PHP رو معرفی کنم که در چند ماه گذشته مورد توجه خیلی ها قرار گرفته و توسط خیلی ها در پروژه ها استفاده شده . این کتابخونه ها برای توسعه سریع پروژه های PHP میتونن مورد استفاده قرار بگیرن . از این رو از نظر من حتما میتونن برای شما مفید باشن . خوب بریم خیلی سریع شروع به معرفی این کتابخونه ها کنیم.
Requests for PHP
یک کتابخونه جالب برای ارسال درخواست HTTP . این کتابخونه یک سری متد ها رو در اختیار شما قرار میده تا بتونید header های اضافه کنید یا به یک سری data ها دسترسی پیدا کنید . این کتابخونه بسیار تمیز و برای استفاده از Api ها مناسبه به مثال زیر از این کتابخونه دقت کنید .
$headers = array('Accept' => 'application/json');
$options = array('auth' => array('user', 'pass'));
$request = Requests::get('https://api.github.com/gists', $headers, $options);
var_dump($request->status_code);
// int(200)
var_dump($request->headers['content-type']);
// string(31) "application/json; charset=utf-8"
var_dump($request->body);
// string(26891) "[...]"
Rinvex Country
Rinvex Country یک پکیچ PHP است که مجموعه ای از اطلاعات کشور های جهان را در اختیار شما قرار میدهد . با استفاده از تقریبا 50 متد میتوانید به اطلاعات مختلفی از کشور ها دسترسی پیدا کنید .
$egypt = country('eg');
$egypt->getCapital(); // Cairo
$egypt->getDemonym(); // Egyptian
$egypt->getTld(); // .eg
$egypt->getContinent(); // Africa
$egypt->getSubregion(); // Northern Africa
$egypt->getBorders(); // ["ISR","LBY","SDN"]
Botman
یک کتابخانه php برای مدیریت و ایجاد بوت های مختلف . این کتابخونه با اکثر اپلیکیشن های معروف دنیا مثل تلگرام ، slack و ... سازگاره . شما با این راهنما میتونید داخل لاراول بسادگی از این کتابخونه استفاده کنید اینجا .
// create an instance
$botman = BotManFactory::create($config);
// give the bot something to listen for.
$botman->hears('hello', function (BotMan $bot) {
$bot->reply('Hello yourself.');
});
// start listening
$botman->listen();
Charts
کتابخونه ای برای لاراول که با استفاد از اون میتونید chart های مختلف و زیبای بوجود بیارید . این کتابخونه با php و چند کتابخونه javascript کار میکنه و امکانات مخلفتی رو برای رسم نمودار در اختیارتون قرار میده .
$chart = Charts::create('line', 'highcharts')
->view('custom.line.chart.view')
->title('My nice chart')
->labels(['First', 'Second', 'Third'])
->values([5,10,20])
->dimensions(1000,500)
->responsive(false);
Swap
ابزاری برای بازیابی نرخ ارز ها از وبسایت های معروف و بزرگی مثل Fixer, Google, and Yahoo. این پکیج بسادگی برای استفاده در لاراول هم اماده شده است .
// Build Swap with Fixer.io
$swap = (new Builder())
->add('fixer')
->build();
// Get the latest EUR/USD rate
$rate = $swap->latest('EUR/USD');
// 1.129
$rate->getValue();
// Get the EUR/USD rate 15 days ago
$rate = $swap->historical('EUR/USD', (new \DateTime())->modify('-15 days'));
Math PHP
یک کتابخانه معادلات و الگوریتم های ریاضی برای استفاده در php . این کتابخونه کاملا ماژولار هست و میتوانید از هر بخشی از ان که خواستید در پروژه های خود استفاده کنید .
// Factors of an integer
$factors = Algebra::factors($n);
// Fibonacci sequence
$fib = Advanced::fibonacci($n);
// Combinations
$nCk = Combinatorics::combinations($n, $k);
// Likelihood ratios
$LL = Experiment::likelihoodRatio($a, $b, $c, $d);
PHPUnit
یک کتابخونه پیشرفته برای تست فریمورک های مختلف . این ابزار در فریمورک های همچون لاراول و دیگرفریمورک های بزرگ مورد استفاده قرار گرفته است .
class StackTest extends TestCase
{
public function testPushAndPop()
{
$stack = [];
$this->assertEquals(0, count($stack));
array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack)-1]);
$this->assertEquals(1, count($stack));
$this->assertEquals('foo', array_pop($stack));
$this->assertEquals(0, count($stack));
}
}
Atoum
یک ابزار دیگر اما نچندان معروف ولی با امکانات زیاد برای تست کدها ، کلاس ها و فریمورک های مختلف شما که ویژگی های جالبی هم دارد .
$this->given($testedInstance = new testedClass())
->and($testedClass[] = $firstValue = uniqid())
->then
->sizeof($testedInstance)->isEqualTo(1)
->string($testedClass[0])->isEqualTo($firstValue);
Simple Regex Language
کتابخونه ای برای اعمال ساده تر Regex Language بر پروژه های شما . این کتابخانه متدهای فراوانی را در اختیارتان قرار میدهد که با استفاده از آنها میتوایند بسادگی از Regex Language در پروژه خود استفاده کنید .
$query = SRL::startsWith()
->anyOf(function (Builder $query) {
$query->digit()
->letter()
->oneOf('._%+-');
})->onceOrMore()
->literally('@')
->anyOf(function (Builder $query) {
$query->digit()
->letter()
->oneOf('.-');
})->onceOrMore()
->literally('.')
->letter()->atLeast(2)
->mustEnd()->caseInsensitive();
Stash
Stash یک کتابخانه برای افزایش سرعت اجرای کد های شماست که در اصل کدهای شما را کش میکند .
$pool = $this->cachePool;
// Get a Stash object from the cache pool.
$item = $pool->getItem("/user/{$userId}/info");
// Get the data from it, if any happens to be there.
$userInfo = $item->get();
// Check to see if the cache missed, which could mean that it either
// didn't exist or was stale.
if($item->isMiss())
{
// Run the relatively expensive code.
$userInfo = loadUserInfoFromDatabase($userId);
// Set the new value in $item.
$item->set($userInfo);
// Store the expensive code so the next time it doesn't miss.
$pool->save($item)
}
PHP VCR
بخشی از کتابخونه ای معروف Ruby library برای تست کردن درخواست های HTTP .
// After turning on, the VCR will intercept all requests
\VCR\VCR::turnOn();
// Record requests and responses in cassette file 'example'
\VCR\VCR::insertCassette('example');
// Following request will be recorded once and replayed in future test runs
$result = file_get_contents('http://example.com');
$this->assertNotEmpty($result);
// To stop recording requests, eject the cassette
\VCR\VCR::eject();
// Turn off VCR to stop intercepting requests
\VCR\VCR::turnOff();
OAuth 2.0 Server
یک کتابخونه معروف که به شما اجازه میده تا یک سیستم قدرتمند احراز هویت برای Api های خودتون ایجاد کنید . این کتابخونه کاملا استاندارد و توسط وبسایت های معروف زیادی مورد استفاده قرار میگیره .
// Setup the authorization server
$server = new \League\OAuth2\Server\AuthorizationServer(
$clientRepository,
$accessTokenRepository,
$scopeRepository,
$privateKey,
$publicKey
);
// Enable a grant on the server
$server->enableGrantType(
new \League\OAuth2\Server\Grant\ClientCredentialsGrant(),
new \DateInterval('PT1H') // access tokens will expire after 1 hour
);
Imagine
کتابخونه ای برای کار با تصاویر ، شما با استفاده از این کتابخونه میتونید عملیات زیادی روی تصویرهاتون انجام بدید مثل تغییر سایز ، اعمال افکت ، Crop کردن و خیلی چیزهای دیگه که برای آشنایی بیشتر حتما به لینک این ابزار مراجعه کنید .
$palette = new Imagine\Image\Palette\RGB();
$image = $imagine->create(new Box(400, 300), $palette->color('#000'));
$image->draw()
->ellipse(new Point(200, 150), new Box(300, 225), $image->palette()->color('fff'));
$image->save('/path/to/ellipse.png');
MINI
یک مینی فریمورک که در کنار اینکه به شما بخش های مختلفی برای استفاده را میدهد به سادگی با بررسی آن میتوانید با ساختار فریمورک ها هم اشنا بشین و ببینید که یک فریمورک به چه صورتی عمل میکند .
// Working with the model
$songs = $this->model->getAllSongs();
$amount_of_songs = $this->model->getAmountOfSongs();
// Loading views
require APP . 'views/_templates/header.php';
require APP . 'views/songs/index.php';
require APP . 'views/_templates/footer.php';
AWS SDK
یک کتابخانه رسمی برای کارکردن با Amazon Web Services. این کتابخانه بسادگی در هر پروژه ای قابل استفاده است .
// Instantiate an Amazon S3 client.
$s3 = new S3Client([
'version' => 'latest',
'region' => 'us-west-2'
]);
$s3->putObject([
'Bucket' => 'my-bucket',
'Key' => 'my-object',
'Body' => fopen('/path/to/file', 'r'),
'ACL' => 'public-read',
]);
Purl
یک کتابخونه ای سبک برای کار کردن با URL ها . با استفاده از Purl میتونید بخش های پیچیده یک Url رو بسادگی جدا کنید و مورد استفاده قرار بدید .
$url = \Purl\Url::parse('http://jwage.com')
->set('scheme', 'https')
->set('port', '443')
->set('user', 'jwage')
->set('pass', 'password')
->set('path', 'about/me')
->set('query', 'param1=value1¶m2=value2');
echo $url->getUrl(); // https://jwage:password@jwage.com:443/about/me?param1=value1¶m2=value2
echo $url->publicSuffix; // com
echo $url->registerableDomain; // jwage.com
یک بزار برای ایجاد کردن مستندات . با استفاده از این ابزار میتونید بسادگی مستندات ابزار خودتون رو ایجاد کنید .
// Example configuration
{
"title": "DAUX.IO",
"tagline": "The Easiest Way To Document Your Project",
"author": "Justin Walsh",
"image": "app.png",
"html": {
"theme": "daux-blue",
"breadcrumbs": true,
"repo": "justinwalsh/daux.io",
"edit_on_github": "justinwalsh/daux.io/blob/master/docs",
"twitter": ["justin_walsh", "todaymade"],
"google_analytics": "UA-12653604-10",
"links": {
"Download": "https://github.com/justinwalsh/daux.io/archive/master.zip",
"GitHub Repo": "https://github.com/justinwalsh/daux.io",
"Made by Todaymade": "http://todaymade.com"
}
}
}
Dompdf
یک کتابخانه برای ایجاد کردن فایل های PDF از فایل های HTML . شما بسادگی میتوانید با استفاده از این ابزار کدهای css و html خودتون رو به فایل .pdf تبدیل کنید .
// reference the Dompdf namespace
use Dompdf\Dompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Instaphp
یک کتابخانه غیر رسمی برای دسترسی به Instagram API . این ابزار یک روش ساده برای احرازهویت و دریافت اطلاعات از Instagram API را فراهم میکند .
$api = new Instaphp\Instaphp([
'client_id' => 'your client id',
'client_secret' => 'your client secret',
'redirect_uri' => 'http://somehost.foo/callback.php',
'scope' => 'comments+likes'
]);
$popular = $api->Media->Popular(['count' => 10]);
if (empty($popular->error)) {
foreach ($popular->data as $item) {
printf('<img src="%s">', $item['images']['low_resolution']['url']);
}
}
Latitude
کتابخانه ای برای کار کردن با دیتابیس که بیشتر دیتابیس های موجود php را پشتیبانی میکند دیتابیس های مثل MySQL, Postgres, SQL Server و دیتابیس های دیگه .
$select = SelectQuery::make(
'id',
'username'
)
->from('users');
echo $select->sql();
// SELECT id, username FROM users
منبع : tutorialzine
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید