Harici sınıf bağımlılıkları ile iç içe çıktı tamponlama [yardım lütfen]

0 Cevap php

Her türlü tavsiye için şimdiden teşekkür ederiz.

Ben bir dizi şöyle oluşturulan bir dosya (içerik dosyası) var:

$config['plugins']['BannerRotate'] = array(
    'container'    =>    'abroadView',
    'arrows'    =>    true,
    'auto'        =>    true,
    'speed'        =>    '15000',
    'width'        =>    '300px',
    'height'    =>    '220px',
    'tags'      =>    'slider'
);

Da sözde 'şablon sistemi' tarafından alınır ve düzeni (oldukça standart) argüman olarak sayfada (ve bu dizi) ile işlediği.

Bu dizi o zaman gibi yeni bir nesne oluşturmak için şablon sistemi tarafından kullanılır:

if(isset($GLOBALS['config']['plugins'])){
    foreach($GLOBALS['config']['plugins'] as $plugin => $ary){
        $$plugin = new Ispweb_Plugindaemon(CURRENTSRV,getcwd().'/',
        $GLOBALS['config']['plugins'][$plugin],$plugin);
        // this statement is simply the result of the eval statement below
    }
}

Bu durumda Eklentinin adı BannerRotate olduğu Öyleyse, nesne $ BannerRotate (değişken değişken) olduğunu. Ben bu yüzden sayfa başına birden fazla eklenti nesne olabilir yapıyorum. Bu nesne daha sonra) (üye işlevi $ BannerRotate-> getJS kullanarak jQuery eklentisi çağırmak için kullanılır. Bu üye işlev çağrıları (ÖNEMLİ) çiftleşmiş sistemi içinde yer almaktadır.

Ben [şablon sistemi DIŞINDA] ilk dizi (ben ilk etapta nesne oluşturmak için tamponlama kulüpler dosyası) aynı dosya içinde bir üye işlevi, her şey ölür. Ben ($ BannerRotate) var_dump, ben tam bir nesne olsun, çünkü bu bana mantıklı gelmiyor. Ancak,) bu içerik dosyada I $ BannerRotate-> printNoscript (yapmak demek, her şey kaybolur ve nesne asla oluşturulur. Ben o zaman olmayan bir nesnenin bir üye işlevi aradığım önemli bir hata alıyorum. BU SORUN IS.

Burada içerik dosyasını tampon (ve nesne (ler) oluşturmak) için çiftleşmiş sistem içinde ne yapıyorum:

ob_start();
include $core_page_content; // the content file (where initial array is)
if(isset($GLOBALS['config']['plugins'])){
    foreach($GLOBALS['config']['plugins'] as $plugin => $ary){
        $ins[] = $plugin;
    }
}
$t = ob_get_contents();
ob_end_clean();
foreach($ins as $in){
    $a = CURRENTSRV; // a,b,c,d are just making the eval statement more clean
    $b = getcwd().'/';
    $c = array();
    foreach($GLOBALS['config']['plugins'][$in] as $key => $value){
        $c[$key] = $value;
    }
    $d = $in;
    eval("\$$in = new Ispweb_Plugindaemon(\"$a\",\"$b\",\$c,\"$d\");");
    echo $$in;
}
include $core_page_content;
$page_content = ob_get_contents();
ob_end_clean();

Ben nesnesine erişebilir neden üye işlevlerinden birine çağrı yapmak SÜRECE Herkes biliyor mu aynı dosya içinde iken?

Ben ne yapabilirim?

P.S. Ben kurulum ideal değildir biliyorum. Ben bu konuda yapabileceği bir şey yok.

Teşekkürler!

TL;DR Ben, bir dosyaya beslemek nesne oluşturmak, başka bir tampon içine yazdırmak için parametreleri almak için dosya B tampon dosya B'den bir değişken ile, dosya A'da bir nesne oluşturma ve dosya dahil ediyorum bu tampon B de. Dosya B muhtemelen oluşturulan nesneye bir işlev çağrısı varsa, ben ölümcül bir hata alıyorum: non-nesnenin üye işleve çağrı.

Ek Notlar:

Dosya B:

$config['plugins']['BannerRotate'] = array(
    'container'    =>    'abroadView',
    'arrows'       =>    true
);
// page content (XHTML)

A Dosya:

ob_start();
$core_page_content = 'file_b';
include $core_page_content;
if(isset($config['plugins'])){
foreach($config['plugins'] as $plugin => $ary){
    $ins[] = $plugin;
}
ob_end_clean();
foreach($ins as $in){
    $$in = new Ispweb_Plugindaemon(CURRENTSRV,getcwd().'/',$config['plugins'][$in],$in);
}
include $core_page_content;
$page_content = ob_get_contents();
ob_end_clean();

// later on in the file
include 'top.htm';
include $page_content;
include 'bot.htm';

0 Cevap