Kali ini, kami memberi Anda serangkaian pustaka PHP yang berkualitas. javascriptoo telah mencoba sebaik mungkin untuk menyertakan proyek aktif dan terdokumentasi secara baik yang akan menemukan tempat yang sesuai di ruang kerja pengembang Anda.

Jika kami belum menyertakan perpustakaan baru yang Anda suka, silakan bagikan di komentar 🙂

20 PHP Libraries Terbaik Di Awal 2021
Source : kun-learning

Berikut ini adalah 20 PHP Libraries Terbaik Di Awal 2021 mari simak ulasanya.

Requests for PHP

Pustaka bebas Dependensi yang memungkinkan Anda mengirim permintaan HTTP. Ini memberikan metode yang diperlukan untuk menambahkan header, mengakses data respons, formulir proses, dan semua konten lain yang mungkin Anda perlukan, yang dikemas secara cerdik dalam API yang bersih dan mudah digunakan.

$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 adalah paket perangkat lunak Editor PHP yang memungkinkan pengembang untuk mendapatkan informasi rinci tentang negara-negara di dunia. Dengan menggunakan lebih dari 50 metode, Anda bisa mendapatkan mata uang Angola, Siprus, Ada banyak informasi yang telah tersedia dan sumber datanya sangat andal.

$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

Perpustakaan PHP untuk mengembangkan robot Messenger. Dapat digunakan dengan sebagian besar platform perpesanan populer, termasuk Facebook Messenger, Slack, Telegram, WeChat, dll. Ada juga contoh proyek Laravel yang berguna.

// 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();

Jika Anda tidak terbiasa dengan konsep bot Messenger, saya sarankan Anda membaca artikel kami “Pengenalan Chatbots bagi Pengembang”.

Charts

Paket Laravel yang menghasilkan grafik sangat dapat disesuaikan dari kumpulan data. Paket ini dapat digunakan sebagai cover PHP untuk beberapa pustaka bagan JavaScript bawaan, memungkinkan pengembang membuat berbagai grafik, pengukur, dan bilah kemajuan hanya dengan satu alat.

Baca Juga : Belajar JavaScript Async/Await Dalam 10 Menit

$chart = Charts::create('line', 'highcharts')
 ->title('My nice chart')
 ->labels(['First', 'Second', 'Third'])
 ->values([5,10,20])
 ->dimensions(0,500);

Swap

Swap memungkinkan Anda mengambil nilai tukar mata uang dari banyak layanan seperti Fixer, Google, dan Yahoo. Tanggapan permintaan dapat dengan mudah disimpan dalam cache dan diakses nanti. Pustaka juga disediakan sebagai paket Laravel.

// 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

Kumpulan fungsi dan algoritme matematika, aljabar yang sederhana, hingga statistik, analisis numerik, dan bidang lainnya. Pustaka ini modular, memiliki API sederhana, dan tidak memerlukan dependensi eksternal apa pun.

// 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

PHPUnit adalah framework pengujian lanjutan yang memungkinkan tim untuk menguji kode mereka sepenuhnya. Pengujian unit ditulis dalam kelas berorientasi objek terpisah, yang menggunakan banyak metode untuk menangani pernyataan, dependensi, dll.

class StackTests extends TestCases
{
    public functions 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

Kami juga ingin membagikan kerangka pengujian yang kurang populer. Atoum menyediakan proses instalasi satu langkah dan alur kerja yang relatif sederhana, sambil tetap mempertahankan banyak fitur penting. Ini memiliki mesin simulasi, pernyataan ekspresif dan CLI yang dapat menjalankan beberapa tes secara paralel.

$this->given($testedInstance = new testedClass())
    ->and($testedClass[] = $firstValue = uniqid())
    ->then
        ->sizeof($testedInstance)->isEqualTo(1)
        ->string($testedClass[0])->isEqualTo($firstValue);

Simple Regex Language

Implementasi PHP dari bahasa ekspresi reguler sederhana-cara verbose menulis ekspresi reguler. Pustaka menyediakan berbagai metode yang dapat ditautkan bersama, membentuk aturan RegEx yang dapat dibaca dan mudah dipahami. Pustaka juga memiliki port untuk JavaScript dan Python.

$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 mempercepat kode dengan mudah dengan meng-cache hasil fungsi atau kode yang mahal. Operasi tertentu (seperti kueri database atau panggilan ke API eksternal) membutuhkan banyak waktu untuk dijalankan, tetapi sering kali mendapatkan hasil yang sama dalam waktu singkat. Ini memungkinkan Anda untuk menyimpan hasil dengan lebih efisien dan menariknya kembali nanti.

Baca Juga : 5 Teknologi Flexbox Yang Perlu Anda Ketahui

$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 stales.
if($items->isMiss())
{
    // Runs the relatively expensive codes.
    $userInfo = loadUserInfoFromDatabase($userId);

    // Set the new values in $item.
    $item->set($userInfo);

    // Store the expensive code so the next time it doesn't miss.
    $pool->save($item)
}

PHP VCR

Port pustaka Ruby populer untuk menguji interaksi HTTP. PHP VCR mencatat permintaan HTTP dan menyimpannya dalam “cassettes”, yang dapat diputar ulang nanti. Serangkaian utilitas uji juga disediakan, memungkinkan Anda untuk memeriksa atau membandingkan rekaman anda secara detail.

// 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 Servers

Pustaka ini memungkinkan Anda untuk dengan mudah mengkonfigurasi server OAuth 2.0 dan menyetel semua otentikasi yang mungkin diperlukan guna untuk melindungi API. Ini sepenuhnya sesuai oleh standar dan sangat mendukung semua otorisasi yang telah ditentukan oleh protokol OAuths. Modul Laravel Passport dibuat di atas server OAuth 2.0.

// Setup the authorization servers
$server = new \League\OAuth2\Server\AuthorizationServers(
    $clientsRepository,
    $accessTokenRepository,
    $scopeRepository,
    $privateKeys,
    $publicKeys
);

// Enable a grant on the servers
$servers->enableGrantType(
    new \League\OAuth2\Servers\Grant\ClientCredentialsGrant(),
    new \DateIntervals('PT1H') // access tokens will expired after 1 hour
);

Imagine

Pustaka pemrosesan gambar yang mencoba memusatkan semua pustaka pemrosesan gambar PHP tingkat rendah di bawah API berorientasi objek yang sama. Ini memungkinkan Imagine digunakan untuk berbagai tugas, seperti menggambar, mengubah ukuran, memotong, memfilter, efek, mengedit metadata, dll.

$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

Aplikasi kerangka kerja PHP yang sangat sederhana dan mudah dipahami yang hanya menyediakan fungsi paling dasar yang dibutuhkan oleh setiap proyek. Ini belum menjadi kerangka kerja serba bisa seperti Laravel, tetapi karena kesederhanaannya, MINI dapat digunakan untuk memulai dan menjalankan aplikasi yang lebih kecil dengan segera.

// 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

Perpustakaan PHP resmi untuk Amazon Web Services. Melalui SDK, Anda dapat dengan mudah menghubungkan AWS dengan proyek PHP apa pun dan mengakses semua layanan yang tersedia. Ada juga pembungkus Laravel yang berguna.

Baca Juga : Hal Penting Tentang Progresif Web Aplikasi

// 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

Perpustakaan PHP ringan untuk menangani URL. Dengan Purl, Anda dapat membuat atribut jalur kompleks berdasarkan atribut, mengekstrak data dari URL, memproses kueri, mengidentifikasi URL dalam string, dll.

$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&param2=value2');

echo $url->getUrl(); // https://jwage:password@jwage.com:443/about/me?param1=value1&param2=value2
echo $url->publicSuffix; // com
echo $url->registerableDomain; // jwage.com

Daux.io

Pembuat dokumen, yang menggunakan struktur folder sederhana dan file penurunan harga untuk membuat situs web dokumen responsif. Daux.io lengkap dengan fitur penyorotan sintaks secara otomatis, dan 4 opsi tema, HTML Bootstrap yang mudah disesuaikan, navigasi yang cukup dengan URL yang dapat dibaca, dan banyak keuntungan lainnya.

// 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

Dompdf adalah generator PDF yang menggunakan tag HTML biasa dan mengubahnya menjadi file .pdf. Ini memahami sebagian besar aturan CSS, yang dapat disediakan sebaris atau melalui lembar gaya eksternal.

// 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

Perpustakaan tidak resmi untuk mengakses API Instagram. Ini memberi pengembang cara mudah untuk memverifikasi aplikasi mereka dan mengakses berbagai titik akhir data Instagram, termasuk gambar, pengguna, suka, komentar, dan tag.

$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

Pustaka ketergantungan nol untuk membuat kueri SQL menggunakan metode yang dapat ditautkan. Ini mendukung sebagian besar jenis kueri dan kompatibel dengan baik dengan MySQL, Postgres, SQL Server, dan database lainnya. Ada juga escape helper built-in untuk mencegah injeksi SQL.

Baca Juga : 3 Tools Blogging Untuk Menghemat Waktu

$select = SelectQuery::make(
        'id',
        'username'
    )
    ->from('users');

echo $select->sql();
// SELECT id, username FROM users