Passed
Push — neill-cobe-static-content-fix ( fd62bd...9e00aa )
by Neill
11:25
created

SmartyRenderer::flushTemplates()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 0
cts 4
cp 0
crap 2
rs 10
c 2
b 0
f 0
1
<?php
2
namespace neon\core\view;
3
4
use neon\cms\components\Theme;
0 ignored issues
show
Bug introduced by
This use statement conflicts with another class in this namespace, neon\core\view\Theme. Consider defining an alias.

Let?s assume that you have a directory layout like this:

.
|-- OtherDir
|   |-- Bar.php
|   `-- Foo.php
`-- SomeDir
    `-- Foo.php

and let?s assume the following content of Bar.php:

// Bar.php
namespace OtherDir;

use SomeDir\Foo; // This now conflicts the class OtherDir\Foo

If both files OtherDir/Foo.php and SomeDir/Foo.php are loaded in the same runtime, you will see a PHP error such as the following:

PHP Fatal error:  Cannot use SomeDir\Foo as Foo because the name is already in use in OtherDir/Foo.php

However, as OtherDir/Foo.php does not necessarily have to be loaded and the error is only triggered if it is loaded before OtherDir/Bar.php, this problem might go unnoticed for a while. In order to prevent this error from surfacing, you must import the namespace with a different alias:

// Bar.php
namespace OtherDir;

use SomeDir\Foo as SomeDirFoo; // There is no conflict anymore.
Loading history...
5
use neon\core\helpers\File;
6
use neon\core\view\ICanFlushTemplates;
7
use \Smarty;
8
use yii\helpers\FileHelper;
9
10
class SmartyRenderer extends \yii\smarty\ViewRenderer implements ICanFlushTemplates
11
{
12
	public $extensionClass = '\neon\core\view\SmartyExtension';
13
	public function init()
14
	{
15
		parent::init();
16
	}
17
18
	/**
19
	 * @inheritDoc
20
	 * @throws \yii\base\ErrorException
21
	 */
22
	public function flushTemplates()
23
	{
24
		FileHelper::removeDirectory($this->cachePath);
25
		FileHelper::removeDirectory($this->compilePath);
26
	}
27
}
28