2013-04-17 99 views
1

我想知道什麼是等價的:Laravel 4,轉換刀片語法PHP

@include('sidebars.pages') 

在純PHP?

我想這樣的事情:

<?php echo view('sidebars.pages'); ?> 
<?php echo view('sidebars.pages')->render(); ?> 
<?php echo render('sidebars.pages'); ?> 
<?php Blade::compile_string("@include('sidebars.pages')"); ?> 

我明白任何幫助!

回答

2

從字面上看它的翻譯中...

<?php echo $__env->make('sidebar.pages', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?> 

所以你的努力的名單,最近可能是

<?php echo render('sidebar.pages', array_except(get_defined_vars(), array('__data', '__path'))); ?> 

參考:View\Compilers\BladeCompiler

/** 
* Compile Blade include statements into valid PHP. 
* 
* @param string $value 
* @return string 
*/ 
protected function compileIncludes($value) 
{ 
    $pattern = $this->createOpenMatcher('include'); 

    $replace = '$1<?php echo $__env->make$2, array_except(get_defined_vars(), array(\'__data\', \'__path\')))->render(); ?>'; 

    return preg_replace($pattern, $replace, $value); 
} 

/** 
* Get the regular expression for a generic Blade function. 
* 
* @param string $function 
* @return string 
*/ 
public function createOpenMatcher($function) 
{ 
    return '/(?<!\w)(\s*)@'.$function.'(\s*\(.*)\)/'; 
} 
+0

謝謝Sparks先生,我真的很好奇。 – user2094178

0

我知道這個哈已經回答,但不會有以下工作?

<?php include 'app/views/yourview.php'; ?>