Packagist'ten paket kurma
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
-
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"; -
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
-
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.