PHP - Sınıf vs vs Kütüphane Uzatma - ne zaman ve neden

3 Cevap php

Ben bir görevi gerçekleştirmek için çalışıyor ve ben ihtiyacım kod ben söyledim oldum ne göre ben (I kurmak için root erişimine sahip olması anlamına gelir PHP extension olarak paketlenmiş çıkıyor ediyorum 'böylece bir sorun biraz barındırma paylaştı m.

Daha sonra bu sorunu çözebiliriz, ama şimdi ben bir uzantısı, bir kütüphane ve bir sınıf arasındaki farkı anlamaya çalışıyorum. Bu geçersiz ve farklı bir şekilde paketlenen edilebilir bir packaging şey daha, ya da arkasında geçerli bir mimari akıl var mı?

Kendi kodu bırakmadan Ayrıca zaman, ne uzantısı vs vs sınıf kütüphanesi olarak serbest bırakmak için karar kılan? ya da daha iyi sesler hangisi ile gitmek mi?

şimdiden teşekkürler.

P.S. Eğer bahsettiğimi hangi uzatma bilmeniz gerekir, o Libpuzzle, ama bu noktanın yanında, benim sorum daha genel olduğunu gerçekten.

3 Cevap

Uzantıları düşük seviye. Genellikle C / C + + ile yazılmış, ve yerli-kod paylaşımlı kütüphaneleri derlenmiş, doğrudan Zend Engine ile etkileşim. Bu artılarını ve eksilerini, ana avantajları hız ve daha fazla kontrol olmak vardır; ve ana dezavantajları - onlar yüklemek için zor ve derleme gerektiren (ve bir derleyici ve PHP başlıklarını gerektirir); Sadece özel php.ini kullanma yeteneği gerekir (veya dl() işlevi, ama onlar nedense bunu önerilmemektedir bakınız) - onlar olsa root erişimi gerektirir doğru değil.

Kütüphaneler / sınıfları üst düzey ve yorumlanır vardır. Eğer uzantı yazmak gerekirse bilmiyorsanız, o zaman muhtemelen yok. Sınıflar hakkında - okudum OOP. Bir kütüphane bir kod yeniden toplama (en yaygın işlevleri / sınıfları şeklinde) 'dir.

An extension PHP başladığında PHP çekirdeğinin içine dahil edilecektir C programlanmış bir kod pice olduğunu. Normalde bir uzantısı dahil sonra kullanılabilir biraz daha doğal işlevleri var. Zip işlevsellik Örneğin.

A class ortak görevleri çözer PHP kod soyut pice olduğunu. Örneğin e-posta göndermek. Sen pear.php.net bazı ortak dersleri bulabilirsiniz.

A library PHP sınıfları bir koleksiyon Örneğin daha genel görevleri HTML formları buliding VE e-postaları gönderiyor çözmek alınabilmiştir. Zend Framework pek çok PHP sınıfları oluşan bir çerçevedir.

Normalde uzatma özellikleri PHP programlanabilir. Örneğin PEAR::Compat class. Genellikle mevcut bir PHP sınıfı olarak gerek işlevselliği bulacaksınız. Ben stackoverflow okuyucular nerede belirli bir PHP sınıfı bulmak için fikirler size tedarik edecek eminim.

(Libpuzzle dahil) Bazı kütüphaneler de bir komut satırı aracı içerir. Nedeniyle paylaşılan barındırma ortamına PHP kitaplığı kullanmak edemiyoruz Yani, belki komut satırı aracını derleyebilirsiniz. Sonra exec gibi bir şey kullanarak PHP çalıştırabilirsiniz. Bu daha yavaş olabilir ve bir kütüphaneden daha fazla bellek gerektirir, ama bu işi olabilir olacaktır. Tabii ki, birçok ev de exec gibi komutlar ile ilgili kısıtlamalar var, bu yüzden bu da işe yaramayabilir.