psr/clock, PHP topluluğu tarafından geliştirilen ve zamanı okumak için ortak bir arayüz tanımlayan bir pakettir. Bu arayüz, uygulamaların saat kaynağından bağımsız olarak çalışmasını sağlar; böylece sistem saati, sabit bir zaman veya test amaçlı kurgusal bir saat kullanılabilir. Paket, PHP-FIG tarafından onaylanan PSR-20 standardını temel alır. 401 milyondan fazla indirme sayısı, paketin PHP ekosisteminde yaygın olarak benimsendiğini gösterir.
Hangi ihtiyaçlarda değerlendirilebilir?
- Zaman bağımlı iş mantığına sahip PHP uygulamaları geliştiren ekipler
- Test edilebilirliği artırmak isteyen ve saat nesnesini enjekte etmek isteyen geliştiriciler
- Farklı saat kaynaklarını (sistem, sabit, vs.) tek bir arayüzle yönetmek isteyen projeler
Yaygın kullanım alanları
Test Edilebilir Zaman İşlemleri
Uygulamanızda zaman damgası üreten veya zamanla ilgili kararlar alan fonksiyonlar varsa, psr/clock arayüzünü kullanarak testlerde sabit bir zaman sağlayabilirsiniz. Böylece testleriniz deterministik hale gelir.
Zaman Kaynağını Soyutlama
Farklı ortamlarda (yerel geliştirme, sunucu, bulut) çalışan uygulamalarda saat kaynağını değiştirmek gerekebilir. psr/clock, bu değişimi tek bir arayüz üzerinden yapmanızı sağlar.
Kütüphane Geliştirme
Eğer bir PHP kütüphanesi geliştiriyorsanız, psr/clock arayüzünü kullanarak kütüphanenizin zaman bağımlılığını soyutlayabilir ve kullanıcıların kendi saat implementasyonlarını kullanmasına olanak tanırsınız.
İncelenmesi gereken noktalar
- psr/clock yalnızca bir arayüz tanımlar; bu arayüzü kullanmak için bir implementasyon (örneğin, 'psr/clock-implementation' sağlayan bir paket) gereklidir.
- Paket, PHP 7.0 ve sonrası ile uyumludur; ancak projenizin PHP sürümünü kontrol etmeniz önerilir.
- Zaman okuma işlemleri dışında tarih hesaplama veya zaman dilimi yönetimi gibi ek özellikler sunmaz; bu tür ihtiyaçlar için ek kütüphaneler gerekebilir.
WordPress.org
Kurulum ve geliştirme notları
Paket, Composer ile kolayca kurulabilir. Resmi kurulum adımları sağlanmamıştır, ancak standart Composer kullanımı yeterlidir.
Geliştirme sürecinde, paketin sağladığı ClockInterface'i implemente eden bir sınıf oluşturmanız ve bu sınıfı bağımlılık enjeksiyonu ile kullanmanız beklenir. Resmi geliştirme dokümantasyonu sağlanmamıştır.
Hazır çözümün ötesinde
Özel geliştirme ne zaman değerlendirilebilir?
ZeplinGo olarak, PHP projelerinizde psr/clock arayüzünü kullanarak zaman yönetimini nasıl yapılandıracağınızı birlikte planlayabiliriz. İhtiyaçlarınıza uygun bir saat implementasyonu seçebilir veya özel bir implementasyon geliştirebiliriz. Ayrıca, mevcut kod tabanınızı bu standarda uyarlamak için danışmanlık hizmeti sunuyoruz.
Ücretsiz ön çalışma isteyin →Değerlendirme soruları
psr/clock paketi nedir?
psr/clock, PHP uygulamalarında zamanı okumak için ortak bir arayüz tanımlayan bir pakettir. Bu arayüz, farklı saat kaynaklarını (sistem saati, sabit zaman, test saati) tek bir API altında toplar.
psr/clock paketini kullanmak için ek bir kurulum gerekir mi?
Evet, psr/clock yalnızca bir arayüz sağlar. Bu arayüzü kullanabilmek için bir implementasyon paketi (örneğin, 'psr/clock-implementation' sağlayan bir paket) kurmanız gerekir.
psr/clock paketi test edilebilirliği nasıl artırır?
psr/clock arayüzü sayesinde, kodunuzda doğrudan time() veya new DateTime() gibi fonksiyonlar yerine ClockInterface'i kullanırsınız. Testlerde bu arayüzü sabit bir zaman döndüren bir implementasyonla değiştirerek deterministik testler yazabilirsiniz.