use spoova/mi/core/classes/Compiler;
$Compiler = new Compiler($filepath, $vargs);
where:
$filepath : optional rex file path
$vargs : optional variable arguments
use spoova/mi/core/classes/Compiler;
$Compiler = new Compiler('user.home', ['name' => foo]);
{{ $name }} ) . Although, arguments are supplied above, we don't necessarily need to
instantiate the Compiler class with objects. The setFile() method can be used to set or update the file name while the
setArgs() can be used to set or update arguments. This is shown below:
use spoova/mi/core/classes/Compiler;
$Compiler = new Compiler;
$Compiler->setFile('user.home');
$Compiler->setArgs(['name' => foo]);
setFile() and setArgs() are both used
to set or update the file path and file arguments respectively. Both of these can also be defined using the compile()
method instead. This is shown below:
use spoova/mi/core/classes/Compiler;
$Compiler = new Compiler;
$Compiler->compile('user.home', ['name' => foo]);
use spoova/mi/core/classes/Compiler; $Compiler = new Compiler; $Compiler->body($body); $Compiler->setBase($storage_path); //set a storage path for rendered string where : $body : a string content to be rendered. $storage_path : a unique subdirectory in "core/storage" directory.
use spoova/mi/core/classes/Compiler;
$Compiler = new Compiler();
$Compiler->setBase('folder_name');
$Compiler->body('This is a body content');
setBase() method is used by compiler to specify folder name where rendered contents are expected
to be stored. This is usually a subdirectory of the "core/storage" directory. It is important to keep rendered strings path as a separate
path from other basic files to avoid conflicting files.
rex() method
which returns a rendered string content. This is shown below
<?php
namespace spoova/mi/windows/Routes;
use spoova/mi/core/classes/Compiler;
class Home {
function __construct() {
$Compiler = new Compiler();
$Compiler->compile('file');
$rex = $Compiler->rex();
vdump($rex); //variable dump content
}
}
<?php
namespace spoova/mi/windows/Routes;
use Window;
use spoova/mi/core/classes/Compiler;
class Home extends Window {
function __construct() {
echo new Compiler('file', ['name'=> 'foo']);
}
}
Res::load() or a window's "self::load()" method. The new updates now ensures
that the compile() function can exist as a stand alone function.
<?php
namespace spoova/mi/windows/Routes;
use Window;
class Home extends Window {
function __construct() {
echo compile('sample', ['name'=> 'foo']);
}
}
raw() and rex() functions.
<?php
namespace spoova/mi/windows/Routes;
use Window;
class Home extends Window {
function __construct() {
$raw = raw('sample'); //source code
vdump($raw);
}
}
<?php
namespace spoova/mi/windows/Routes;
use Window;
class Home extends Window {
function __construct() {
$rex = rex('sample'); //return rendered content
vdump($rex);
}
}
<?php
namespace spoova/mi/windows/Routes;
use Window;
class Home extends Window {
function __construct() {
$rex = rex('sample', fn() => 'My url is domurl()'); //return rendered content of the string
vdump($rex);
}
}
window::load() method, we can also use the "compile()" function as a directive to compile the sample file and pass arguments
to the file instead of using the "sample" file as an anchor for a string content like the previous example.
<?php
namespace spoova/mi/windows/Routes;
use Window;
class Home extends Window {
function __construct() {
$rex = rex('sample', fn() =>compile(['name'=>'foo'])); //return rendered content of the string
vdump($rex);
}
}