PHP çekirdek işlevler ekleme

4 Cevap php

Ben yazdım çeşitli işlevleri var ve ben bu yüzden harici dosyalardan onları dahil etmek zorunda değilsiniz benim sunucularda, ben çekirdek ekleyebilirsiniz bir yolu yoktur düzenli olarak kullanmak?

Ben PHP5 çalıştırıyorum

4 Cevap

Bir PEAR uzantısı olarak kütüphaneleri ekleyebilirsiniz. Sonra local PEAR repository bunu ekleyebilirsiniz. Armut varsayılan eklenir php.ini içinde yolunu içerir. Sonra sadece makinelerde "armut yüklemek myextension" kullanabilirsiniz.

Bu php (php uzantıları) in arayüzü ile C fonksiyonları iseniz o zaman PECL ile benzer bir şey yapabilirsiniz.

Ben oldukça yoğun bir süreç var .. daha önce yapmış, ama çok kötü değil ettik. Zend.com bu makalede size bilmeniz gereken her şeyi söylemelidir:

http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/

edit: Ne yapmaya çalışıyoruz ne özünü elde etmek için daha iyi yollar olduğunu eklemek gerekir. Bunu yaparken ayrıca PHP'nin (zaten çok darmadağın) ad yığılmayı unutmayın. Muhtemelen sadece küresel bir ihtiyacınız her yerde içerdiğini, en sık kullanılan tüm fonksiyonları vardır dosyasını dahil yapım daha iyiyiz.

edit2: Orijinal soru rereading üzerine, bunu yapmak istemiyorum dedi, ama ben yine de muhtemelen en iyi yol olduğunu düşünüyorum. Ancak uzatma rota ile size iyi şanslar.

Neden tam olarak ihtiyaç duyduğunuz dosyaları dahil etmek bu kadar zor?

Ben auto_prepend_file php.ini yönergesi işe yarayabilir sanırım. Ama gerçekten tavsiye edilmez.

Eğer var ise autoload, sen My_Functions gibi bir sınıfın statik yöntemler olarak işlevlerini taşıyabilirsiniz.

Veya daha fazla dosya içine bölünmesi için size My_Functions_Math kullanabilirsiniz. Sonra sadece ihtiyacınız fonksiyonları yüklemek gerekir. Ve autoload ile dosyaları da dahil olmak üzere hakkında endişelenmenize gerek yok.

Sen özdevinimli_yükle ad fonksiyonları edemem, bu yüzden autoload kullanmak istiyorsanız işlevleri, sınıfın statik yöntemler olmalıdır. Ama bunu daha kolay gelecekte sınıfını değiştirmek FX ve / veya uzun sınıf adını kısaltmak yapmak ad kullanabilirsiniz. Örnek:

use My\Functions\Math as Math;
Math::calcThis($i);