PHP code example of frdl / context

1. Go to this page and download the library: Download frdl/context library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

frdl / context example snippets




//...
	
$items = [
  'selected' => 'member2',	
  'test' => [
      'member1' => '${test.member2}',
      'member2' => 'FooBar',
      'member2.prop1' => '${selected}.FooBar',
 ],
];
	
	
$context = \frdl\Context::create($items);
	

$content.= '$context->resolve()<pre>';	
$content.= print_r($context->resolve(), true); 
$content.= '</pre>';
	
$content.= '$context->get("test.member2.prop1")<pre>';	
$content.= print_r($context->resolve('test.member2.prop1'), true); 
$content.= '</pre>';
	
	
	
$content.= '$context->resolve()->all()<pre>';	
$content.= print_r($context->resolve()->all(), true); 
$content.= '</pre>';
	
$content.= '$context->all()<pre>';	
$content.= print_r($context->all(), true); 
$content.= '</pre>';
	
	
$content.= '$context->resolve()->flatten()<pre>';	
$content.= print_r($context->resolve()->flatten(), true); 
$content.= '</pre>';	
	
	
	
// YourDataSource implements Dflydev\PlaceholderResolver\DataSource\DataSourceInterface
//$dataSource = new YourDataSource;
$dataSource = new \Dflydev\PlaceholderResolver\DataSource\ArrayDataSource($context->flatten()) ;


// Create the placeholder resolver
$placeholderResolver = new \Dflydev\PlaceholderResolver\RegexPlaceholderResolver($dataSource
																				 , '${', '}'
																				);

// Start resolving placeholders
$value = $placeholderResolver->resolvePlaceholder('afsasf ${test.member1}');

$content.= '$value<pre>';	
$content.= print_r($value, true); 
$content.= '</pre>';

$content.= 'test.member1<pre>';	
$content.= print_r( $dataSource->get('test.member1'), true); 
$content.= '</pre>';




//App.php

		$servicesLegacyContainer = new \compiled\CompiledContainer();
		
		try{
		$configItems = [
		//  'app' => $this,
		];
		$context = \frdl\ContextContainer::create($configItems, '${', '}');
		}catch(\Exception $e){
		  print_r(	$e->getMessage());
		}

		
	$acclimator = new ContainerAcclimator;
	$items = [
	  // 'app' => $this,
	];
		

    $serviceContainer = $acclimator->acclimate($servicesLegacyContainer);
    $contextContainer = $acclimator->acclimate($context);

	
		$this->container = \frdl\ContextContainer::create($items, '${', '}');
		$this->container->addContainer($serviceContainer);
		$this->container->addContainer($contextContainer);


//test.php
               $container = \frdlweb\Level2App::getInstance('production', $projectDir. \DIRECTORY_SEPARATOR)
				   ->getContainer()
				   ;

$env = [];
$context = \frdl\ContextContainer::create($env);

$container->set('context', $context);
$container->set('env', $env);

$context->set('context.app.container.doc.title', 'My TestCase Application');

echo '<pre>';
 print_r($env);
echo '</pre>';


echo '<pre>';
 print_r($container->get('context'));
echo '</pre>';




$s=serialize($container);

print_r('$s=serialize($container): <pre>'.gettype($s).'</pre>');

echo '<pre>'.$s.'</pre>';

$c = unserialize($s);

print_r('$c = unserialize($s): <pre>'.gettype($c).'</pre>');

print_r($c);

print_r($c->get('project')->title);
//....