How to Store Html View File in a Variable

How to Store HTML View File In A Variable
by Janeth Kent Date: 26-08-2013 php html function MVC


If you are familiar with th MVC language before you certainly know the practice of separating your business logic from your HTML.

The way this works in MVC language is that the framework will allow you to assign a view (HTML) to a controller (class).


In this tutorial we are going to re-create this functionality and send variables that can be used in a HTML file. We will also be able to return the contents of that HTML inside a variable to output this in any place we want within our application.

To achieve this we will use the PHP output controller functions.

The "View File"

A typical view file content just the HTML for the page without any logic part. All the logic in your application should be done in the controller and this will be sent to the view.

Below is a simple example of a view file it contains the title and the content of the page.

<div class="view-file"> 
     
<h1><?php echo $title; ?></h1>        

<p><?php echo $content; ?></p>  

</div>

Calling the "View File"

When we are calling our view file we are first going to create an array of variables that can be passed to our view.

The key of these array values will be turned into variable names in our view. As we only had a title and content variables we can just pass these into our get View() function.

The getView() function takes two parameters, first will be the location of our view file, the second will be the variables sent to the view file.

<?php     
 
$vars = array();     
 
 $vars['title'] = 'Page Title';
       
$vars['content'] = 'This is an example of 
 displaying content in the view file';   
      
return $this->getView('view_file.php',
  $vars); 
  
?>

Get the "View Function"

We have to use the output control functions built into PHP.

First of all we have to control that the view file exists, if the view file doesn't exist then we can't continue with the function so we just return false at that stage.

Next we can take the array of variables and use the extract() function that will turn the array keys into variables.

// Extract the variables to be used by the view  

if(!is_null($vars))  {   
   
extract($vars); 

 }

We need to include the view file into the script so we can use these variables but as we want to return the content of the view file we need to stop PHP from outputting the content of the file, to do this we start the output buffer using ob_start().

ob_start();

With the output buffer started we include the view file, which means it will have access to the variables we have created using the extract() function.

include_once $viewFile;

The view file is not output because we started the ob_start(), to get the content of what is in the buffer we need to use another output control function ob_get_contents(). This will get what would be output and return the contents of the output buffer.

$view = ob_get_contents();

As we have collected all the output and don't want anything else included in the output of the view file then we need to stop the output buffer by using the function ob_end_clean().

Finally we can return the contents of the view file with the HTML populated with the variables we sent to it.

Below is full getView() method.

<?php  
/**  * Get the view file  */ public function 


getView($viewFile, $vars = NULL)  {   
  
// Check the view file exists  
   
 if(!file_exists($viewFile))  
   
 {           

return false;     

 }     

// Extract the variables to be used by the view

if(!is_null($vars))      {      
    
extract($vars);      }       
 
ob_start();  
       
include_once $viewFile; 
        
$view = ob_get_contents(); 
       
 ob_end_clean();         

return $view;  

} 
 
?>

 

 

 

 

 

original source: paulund.co.uk

 
by Janeth Kent Date: 26-08-2013 php html function MVC hits : 8323  
 
Janeth Kent

Janeth Kent

Licenciada en Bellas Artes y programadora por pasión. Cuando tengo un rato retoco fotos, edito vídeos y diseño cosas. El resto del tiempo escribo en MA-NO WEB DESIGN END DEVELOPMENT.

 
 
 

Related Posts

Validating HTML forms using BULMA and vanilla JavaScript

Today we are going to write about contact forms and how to validate them using JavaScript. The contact form seems to be one of the top features of every basic home…

The State of PHP 8: new features and changes

PHP 8.0 has been released last November 26: let's discover together the main innovations that the new version introduces in this language. PHP is one of the most popular programming languages…

Javascript: what are callbacks and how to use them.

Today we are going to learn about a concept that is widely used in javascript and that is used quite a lot by today's frameworks, libraries, especially NodeJS. This is…

HTTP Cookies: how they work and how to use them

Today we are going to write about the way to store data in a browser, why websites use cookies and how they work in detail. Continue reading to find out how…

The most popular Array Sorting Algorithms In PHP

There are many ways to sort an array in PHP, the easiest being to use the sort() function built into PHP. This sort function is quick but has it's limitations,…

All the javascript functions and methods to manipulate arrays

This article will show that the prominent JavaScript array functions are .map(), .filter(), and .reduce(), and will then go through examples of instances in which .every() and .some() would save…

MySQL 8.0 is now fully supported in PHP 7.4

MySQL and PHP is a love story that started long time ago. However the love story with MySQL 8.0 was a bit slower to start… but don’t worry it rules…

JavaScript. What's new in ES2020?

As we discussed in our article about the ES2019 features you should try, ECMAScript's proposals will continue to grow and give rise to new implementations. Therefore, you can already access the…

Implementing Quicksort algorithm in Javascript

We've been wanting to write an article about sorting algorithms for some time now because sometimes we forget how useful they can be when we want to optimize our code. So…

Javascript Arrays - Immutable functions

In these years, we have been playing with React, which has allowed us to deeply explore Javascript and concepts such as functional programming. This has led us to study concepts such…

A List of Awesome games made with HTML5 and JavaScript

Browsers and JavaScript are becoming more powerful and more comprehensive. There was a time when any type of game needed Flash. But the stage now is set for powerful HTML5…

A roadmap to becoming a web developer in 2019

There are plenty of tutorials online, which won't cost you a cent. If you are sufficiently self-driven and interested, you have no difficulty training yourself. The point to learn coding…

We use our own and third-party cookies to improve our services, compile statistical information and analyze your browsing habits. This allows us to personalize the content we offer and to show you advertisements related to your preferences. By clicking "Accept all" you agree to the storage of cookies on your device to improve website navigation, analyse traffic and assist our marketing activities. You can also select "System Cookies Only" to accept only the cookies required for the website to function, or you can select the cookies you wish to activate by clicking on "settings".

Accept All Only sistem cookies Configuration