Şu anda çok fazla kamusal kullanımı olan bir kütüphaneyi yönetiyorum ve semantik versiyonlama hakkında bir sorum vardı . Kütüphanenin yanlış uygulanmış ve her zaman yanlış uygulanmış oldukça önemli bir bölümünü yeniden gözden geçirmek istiyorum. Ancak bunu yapmak, büyük bir karar olan genel API'de değişiklikler anlamına gelir.
Yapmak istediğim değişiklik yineleyicilerin nasıl kullanıldığı hakkında. Şu anda, kullanıcılar bunu yapmak zorundadır:
while ($element = $iterator->next()) {
// ...
}
Bu yanlış, en azından PHP'nin yerel Iterator arabiriminde . Bununla değiştirmek istiyorum:
while ($iterator->valid()) {
$element = $iterator->current();
// ...
$iterator->next();
}
aşağıdakilere benzer:
foreach ($iterator as $element) {
// ...
}
Eğer semantik sürüm için Tom'un kılavuzunda bakarsak, o açıkça kamu API herhangi bir değişiklik (yani olanlar belirtiyor değil geriye dönük olarak uyumlu), büyük bir tahliyesini haklı gerekir. Kütüphane 1.7.3'ten 2.0.0'a atlayacaktı ki bu benim için çok uzak bir adım. Sadece bir özelliğin düzeltildiğinden bahsediyoruz.
Sonunda 2.0.0 yayımlamayı planlıyorum, ancak kütüphaneyi tamamen yeniden yazdığınızda ve çok sayıda genel API değişikliği uyguladığınızda bunun olduğunu düşündüm . Bu yeniden düzenlemenin tanıtımı büyük bir sürüm sürümü gerektiriyor mu? Gerçekten nasıl olduğunu göremiyorum - 1.8.0 veya 1.7.4 olarak serbest bırakmaktan daha rahat hissediyorum. Kimsenin tavsiyesi var mı?
next()
yöntem geçerli elemanı almak VE dahili işaretçiyi ileriye taşımak için kullanılır. Hangisi yanlış. next()
işaretçiyi hareket etmeli ve current()
almak için kullanılır ...
next()
sadece işaretçiyi hareket ettiren dönüş değerini önemsememelidir , bu gerçekten uyumluluğu bozmaz