CodeBlanks Logo Icon CodeBlanks

Packagist'ten paket kurma

PHP kursu · İleri seviye · Ders 38/92

Packagist'ten paket arayıp kurmayı öğrenirsin.

Packagist nedir?

Packagist, PHP paketleri için ana depodur. Composer buradan paket arar ve indirir. Bir paketin adı vendor/project biçimindedir; örneğin monolog/monolog günlük kütüphanesi, guzzlehttp/guzzle HTTP istemcisi.

composer require monolog/monolog yazdığında Composer Packagist'ten paketi bulur, vendor/ klasörüne indirir ve autoload'a ekler. Bundan sonra sınıfları use ile içe aktarabilirsin.

Paket kullanımı

composer require ile bir paket kurduktan sonra require_once vendor/autoload.php çağrısıyla sınıflarını kullanabilirsin. Örneğin Monolog kurduysan new Monolog\Logger("app") yazarak günlük kaydı oluşturursun.

GuzzleHttp kurduysan new GuzzleHttp\Client() ile HTTP isteği gönderirsin. Composer autoloader namespace'leri otomatik yüklediği için manuel dosya yolu yazmazsın; use ile içe aktarmak yeter.

Uygulama Monolog Logger simülasyonu

Monolog paketinin Logger sınıfını taklit et. namespace Monolog; tanımla; içinde Logger sınıfı olsun. public string $name özelliği ve public function __construct(string $name) metodu $this->name = $name atasın. public function info(string $msg): string metodu "[" . $this->name . "] " . $msg döndürsün.

$log = new \Monolog\Logger("app") ile örnek oluştur, info("Başladı") çağır ve çıktısını yazdır.

Örnek çözümü göster
string { return "[" . $this->name . "] " . $msg; } } tanımla. $log = new \Monolog\Logger("app"); echo $log->info("Başladı") . "\n"; ile yazdır.
Örnek çözüm:
<?php
namespace Monolog;
class Logger {
    public string $name;
    public function __construct(string $name) {
        $this->name = $name;
    }
    public function info(string $msg): string {
        return "[" . $this->name . "] " . $msg;
    }
}
$log = new \Monolog\Logger("app");
echo $log->info("Başladı") . "\n";

Kendini test et

  1. Paket adını tamamla

    <?php
    // Monolog paket adı
    $cfg = ["name" => "____"];
    echo $cfg["name"] . "\n";
    
    Cevabı göster
    <?php
    // Monolog paket adı
    $cfg = ["name" => "monolog/monolog"];
    echo $cfg["name"] . "\n";
    
  2. Packagist kavramlarını eşleştir

    Packagist
    Paket deposu
    monolog/monolog
    Günlük kütüphanesi
    guzzlehttp/guzzle
    HTTP istemcisi
    vendor/project
    Paket adı biçimi
  3. guzzlehttp/guzzle paketi ne işe yarar?

    • HTTP isteği gönderir
    • Günlük tutar
    • Veritabanı sorgular
    • Dosya sıkıştırır
    Cevabı göster

    HTTP isteği gönderir — Doğru. GuzzleHttp bir HTTP istemci kütüphanesidir.

İleri seviye bölümündeki tüm dersler