Ben metin editörü ile kullanmak için ctags bir genişletilmiş biçimi kümesi oluşturmak için Zend_Reflection kullanıyorum. Sorun işlemek isteyen include
herhangi bir dosya olması.
Için yapıcı Zend_Reflection_File
yansıtmak istediğiniz dosyanın dahil olup olmadığını görmek için denetler, ve eğer bir istisna atar:
// From Zend/Refection/File.php (94-97)
if (!$fileRealpath || !in_array($fileRealpath, get_included_files())) {
require_once 'Zend/Reflection/Exception.php';
throw new Zend_Reflection_Exception(
'File ' . $file . ' must be required before it can be reflected');
}
I only use this technique on code that I trust ama başkalarının kullanması için bir komut tüm kadar tamamlamayı istiyorum. Benim endişe herhangi bir dosya may geçerli kapsamı içine güvenli olmayan kod tanıtmak dahil olmasıdır. Örneğin, ben şunlardır istemem:
<?php
// evil.php
shell_exec('rm -rf /');
Benim ilk düşünce safe_mode
kullanmak için ama bu (ve isim görünüyor öneririm olarak safe olarak) amortismana tabi tutulur.
Bir sonraki fikir, özel bir php.ini dosyası ve disable_functions
direktifini kullanmak olacaktır ama (safe_mode
belgelerinde belirtilen adayların dışında) Eminim Hissetmesem bu olamaz tüm gerekli fonksiyonları yakaladı.
(Tür) bir sanal PHP çalıştırmak yaparken herhangi bir yolu olup olmadığını nihayet merak ediyorum - Ben hiç yürütülen dahil herhangi bir global kodu olmadan Yansıma bilgileri yakalamak istiyorum.
Any and all thoughts appreciated. TIA.