Object Oriented Programming

In this section you can learn how the programmer can create classes that inherits from the div class.

The constructor should respect the parent's constructor. Change the default constructor is not recommended. IMPORTANT: The recommended way for do something before build is the implementation of beforeBuild() hook.

<?php
	
include 'div.php';

use divengine\div;
	
class MyPage extends div{
		
	/* IMPORTANT: Change the default constructor is not recommended */
	public function __construct($src = null, $items = [], $ignored = []){
			
		/*.. some code here */
			
		parent::__construct($src, $items, $ignored);
	}
		
	/* IMPORTANT: The recommended way for do something before              */ 
	/* construct the object is the implementation of beforeBuild() hook.   */	
	
	public function beforeBuild(&$src = null, &$items = null, &$ignore =[]){
			
		// something to do before build the object
			
	}
		
	/* ... custom methods here... */
		
}

Example:

index.php

<?php
	
class MyPage extends div{
		
	public function getProducts(){
		return [
			[
				'name' => 'Banana',
				'price' => 20	
			],
			[
				'name' => 'Potato',
				'price' => 30
			]
		];
	}
		
	public function sum($x, $y){
		return $x + $y;
	}
		
}

index.tpl


{= products: ->getProducts() =}
{= result: ->sum(20,30) =}
	
[$products] 
		{$name} 
[/$products]
	
{$result}

Output


Banana
Potato
	
50

The arrow symbol used to get a method's result in the template example, can not be changed with a custom dialect. Is a strict rule in Div.