5 Commits
1.1 ... 2.x

Author SHA1 Message Date
User
cf3a11cb62 20231008#3 2023-10-08 20:06:59 +03:00
User
7b3228d14e 20231008#2 2023-10-08 19:12:28 +03:00
User
5b967d6439 20231008#1 2023-10-08 18:57:09 +03:00
User
37d3884205 20231007#3 2023-10-07 17:55:16 +03:00
User
93246556e0 20231007#2 2023-10-07 16:52:39 +03:00
3 changed files with 26 additions and 55 deletions

View File

@@ -10,12 +10,12 @@ Stable version
composer require rmphp/content composer require rmphp/content
``` ```
```bash ```bash
composer require rmphp/content:"^1.1" composer require rmphp/content:"^2.0"
``` ```
Dev version contains the latest changes Dev version contains the latest changes
```bash ```bash
composer require rmphp/content:"1.x-dev" composer require rmphp/content:"2.x-dev"
``` ```

View File

@@ -8,13 +8,6 @@ use Rmphp\Foundation\TemplateInterface;
class Content implements TemplateInterface { class Content implements TemplateInterface {
private array $content = [];
private ContentData $data;
private ContentData $dataGlobal;
private string $basePath = "";
private string $template;
private string $subtemplatePath;
/** /**
* Content constructor. * Content constructor.
* @param string $template * @param string $template
@@ -29,12 +22,11 @@ class Content implements TemplateInterface {
* @return TemplateInterface * @return TemplateInterface
*/ */
public function setTemplate(string $template, array $resource = []) : TemplateInterface { public function setTemplate(string $template, array $resource = []) : TemplateInterface {
if(empty($this->data)) $this->data = new ContentData();
foreach ($resource as $resKey => $resVal){ foreach ($resource as $resKey => $resVal){
$this->data->{$resKey} = $resVal; $this->{$resKey} = $resVal;
} }
$this->basePath = dirname(__DIR__, 4); ContentData::$basePath = dirname(__DIR__, 4);
$this->template = $this->basePath.'/'.$template; ContentData::$template = ContentData::$basePath.'/'.$template;
return $this; return $this;
} }
@@ -43,7 +35,7 @@ class Content implements TemplateInterface {
* @return TemplateInterface * @return TemplateInterface
*/ */
public function setSubtemplePath(string $subtemplatePath) : TemplateInterface { public function setSubtemplePath(string $subtemplatePath) : TemplateInterface {
$this->subtemplatePath = $this->basePath.'/'.$subtemplatePath; ContentData::$subtemplatePath = ContentData::$basePath.'/'.$subtemplatePath;
return $this; return $this;
} }
@@ -51,10 +43,9 @@ class Content implements TemplateInterface {
* @return string * @return string
*/ */
public function getSubtemplePath(): string { public function getSubtemplePath(): string {
return $this->subtemplatePath; return ContentData::$subtemplatePath;
} }
/** /**
* @param string $point * @param string $point
* @param string $string * @param string $string
@@ -62,8 +53,8 @@ class Content implements TemplateInterface {
*/ */
public function addValue(string $point, string $string) : void { public function addValue(string $point, string $string) : void {
if (empty($point)) throw new AppException("Empty point"); if (empty($point)) throw new AppException("Empty point");
if (empty($this->subtemplatePath))throw new AppException("SubtemplatePath is not defined"); if (empty(ContentData::$subtemplatePath))throw new AppException("SubtemplatePath is not defined");
$this->content[$point][] = $string; ContentData::$content[$point][] = $string;
} }
/** /**
@@ -72,7 +63,7 @@ class Content implements TemplateInterface {
* @throws AppException * @throws AppException
*/ */
public function setValue(string $point, string $string) : void { public function setValue(string $point, string $string) : void {
unset($this->content[$point]); unset(ContentData::$content[$point]);
$this->addValue($point, $string); $this->addValue($point, $string);
} }
@@ -83,14 +74,13 @@ class Content implements TemplateInterface {
* @throws AppException * @throws AppException
*/ */
public function addSubtemple(string $point, string $subTempl, array $resource = []) : void { public function addSubtemple(string $point, string $subTempl, array $resource = []) : void {
if (empty($this->subtemplatePath))throw new AppException("SubtemplatePath is not defined"); if (empty(ContentData::$subtemplatePath))throw new AppException("SubtemplatePath is not defined");
if (empty($point)) throw new AppException("Empty point"); if (empty($point)) throw new AppException("Empty point");
if (empty($subTempl) || !file_exists($this->subtemplatePath."/".$subTempl)) throw new AppException($this->subtemplatePath."/".$subTempl. " is not found"); if (empty($subTempl) || !file_exists(ContentData::$subtemplatePath."/".$subTempl)) throw new AppException(ContentData::$subtemplatePath."/".$subTempl. " is not found");
if(empty($this->data)) $this->data = new ContentData();
foreach ($resource as $resKey => $resVal){ foreach ($resource as $resKey => $resVal){
$this->data->{$resKey} = $resVal; $this->{$resKey} = $resVal;
} }
ob_start(); include $this->subtemplatePath."/".$subTempl; $this->content[$point][] = ob_get_contents(); ob_end_clean(); ob_start(); include ContentData::$subtemplatePath."/".$subTempl; ContentData::$content[$point][] = ob_get_contents(); ob_end_clean();
} }
/** /**
@@ -100,20 +90,10 @@ class Content implements TemplateInterface {
* @throws AppException * @throws AppException
*/ */
public function setSubtemple(string $point, string $subTempl, array $resource = []) : void { public function setSubtemple(string $point, string $subTempl, array $resource = []) : void {
unset($this->content[$point]); unset(ContentData::$content[$point]);
$this->addSubtemple($point, $subTempl, $resource); $this->addSubtemple($point, $subTempl, $resource);
} }
/**
* @param array $globals
*/
public function setGlobals(array $globals = []) : void {
$this->dataGlobal = new ContentData();
foreach ($globals as $resKey => $resVal){
$this->dataGlobal->{$resKey} = $resVal;
}
}
/** /**
* @param string $incFile * @param string $incFile
* @param array $resource * @param array $resource
@@ -121,12 +101,11 @@ class Content implements TemplateInterface {
* @throws AppException * @throws AppException
*/ */
public function inc(string $incFile, array $resource = []) : string { public function inc(string $incFile, array $resource = []) : string {
if(empty($this->data)) $this->data = new ContentData();
foreach ($resource as $resKey => $resVal){ foreach ($resource as $resKey => $resVal){
$this->data->{$resKey} = $resVal; $this->{$resKey} = $resVal;
} }
if(empty($incFile) || !file_exists($this->subtemplatePath."/".$incFile)) throw new AppException("Empty inc file"); if(empty($incFile) || !file_exists(ContentData::$subtemplatePath."/".$incFile)) throw new AppException("Empty inc file");
ob_start(); include $this->subtemplatePath."/".$incFile; $out = ob_get_contents(); ob_end_clean(); ob_start(); include ContentData::$subtemplatePath."/".$incFile; $out = ob_get_contents(); ob_end_clean();
return $out; return $out;
} }
@@ -135,8 +114,8 @@ class Content implements TemplateInterface {
* @return string * @return string
*/ */
public function getPoint(string $point) : string { public function getPoint(string $point) : string {
if (empty($point) || empty($this->content[$point])) return ""; if (empty($point) || empty(ContentData::$content[$point])) return "";
return implode("", $this->content[$point]); return implode("", ContentData::$content[$point]);
} }
/** /**
@@ -144,8 +123,8 @@ class Content implements TemplateInterface {
* @throws AppException * @throws AppException
*/ */
public function getResponse(): string { public function getResponse(): string {
if (empty($this->template) || !file_exists($this->template)) throw new AppError("Invalid template file"); if (empty(ContentData::$template) || !file_exists(ContentData::$template)) throw new AppError("Invalid template file");
ob_start(); include $this->template; $out = ob_get_contents(); ob_end_clean(); ob_start(); include ContentData::$template; $out = ob_get_contents(); ob_end_clean();
return $out; return $out;
} }
} }

View File

@@ -5,17 +5,9 @@ namespace Rmphp\Content;
class ContentData { class ContentData {
private array $data; public static string $basePath = "";
public static string $template;
public static string $subtemplatePath;
public static array $content = [];
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function __isset($name) {
return isset($this->data[$name]);
}
public function __get($name) {
return $this->data[$name] ?? null;
}
} }