Skip to content

Lara standalone blade view that enables the use of laravel view outside laravel project

License

Notifications You must be signed in to change notification settings

olubunmitosin/views

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Lara Blade View | Blade Template Outside Laravel

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Laravel Blade Views Standalone

Okay so by now hopefully you have heard of Laravel, the PHP framework that just makes things easy. So first things first full credit goes to Taylor Otwell and Brad Jones for the Blade API.

How to Install

Installation via composer is easy:

composer require kesty/view: dev-master

How to Use

In your legacy - non Laravel application. You can use the Laravel Blade API like so:

// Make sure you have composer included
require('vendor/autoload.php');

// Create a new View Instance
$views = new Lara\View('/path/to/my/views');

// Next you will probably want to make the view object global.
$views->globalise();

And thats it, now you can use code like the following:

echo View::make('greeting', array('name' => 'Mike'));

Where the view might look like:

<!-- View stored in /path/to/my/views/greeting.php -->

<html>
    <body>
        <h1>Hello, <?php echo $name; ?></h1>
    </body>
</html>

For more info on the View API it's self see: https://laravel.com/docs/responses#views https://laravel.com/docs/templates#blade-templating

View Scope

When you run $views->globalise(); it checks to see if the class View exists globally. If not it use the function class_alias to alias it's self in much the same a Laravel Application does.

This enables us to use the View API we are familar with.

View Include Path:

You can provide an array of paths, instead of just one path. So in effect you can have a View Include Path. Very handy for setting up a HMVC type system. Here is an example:

$views = new Lara\View(['/views/specific', '/views/generic']);

So now for the why?

While laravel is so awesomely cool and great. If you want to pull a feature out and use it in another project it can become difficult. Firstly you have to have an innate understanding of the IoC Container.

You then find that this class needs that class which then requires some other config variable that is normally present in the IoC when run inside a normal Laravel App but in your case you haven't defined it and don't really want to define that value because it makes no sense in your lets say legacy application.

Perfect example is when I tried to pull the session API out to use in wordpress. It wanted to know about a booted method, which I think comes from Illuminate\Foundation\Application. At this point in time I already had to add various other things into the IoC to make it happy and it was the last straw that broke the camels back, I chucked a coders tantrum, walked to the fridge, grabbed another Redbull and sat back down with a new approach.

The result is this project.


Original Code by Brad Jones - [email protected] Maintained and Updated by Olubunmi Tosin - [email protected]

About

Lara standalone blade view that enables the use of laravel view outside laravel project

Resources

License

Stars

Watchers

Forks

Packages

No packages published