diff --git a/HttpServer/Http/Formatter/HtmlFormatter.php b/HttpServer/Http/Formatter/HtmlFormatter.php
index beda4fd2..4c54c80a 100644
--- a/HttpServer/Http/Formatter/HtmlFormatter.php
+++ b/HttpServer/Http/Formatter/HtmlFormatter.php
@@ -6,6 +6,7 @@
* Time: 17:51
*/
declare(strict_types=1);
+
namespace HttpServer\Http\Formatter;
@@ -29,30 +30,30 @@ class HtmlFormatter extends Application implements IFormatter
public array $header = [];
/**
- * @param $data
+ * @param $context
* @return $this
* @throws \Exception
*/
- public function send($data)
+ public function send($context): static
{
- if (!is_string($data)) {
- $data = JSON::encode($data);
+ if (!is_string($context)) {
+ $context = JSON::encode($context);
}
- $this->data = $data;
+ $this->data = $context;
return $this;
}
/**
* @return mixed
*/
- public function getData()
+ public function getData(): mixed
{
$data = $this->data;
$this->clear();
return $data;
}
- public function clear()
+ public function clear(): void
{
$this->data = null;
unset($this->data);
diff --git a/HttpServer/Http/Formatter/JsonFormatter.php b/HttpServer/Http/Formatter/JsonFormatter.php
index 1aea101f..e5a42ce3 100644
--- a/HttpServer/Http/Formatter/JsonFormatter.php
+++ b/HttpServer/Http/Formatter/JsonFormatter.php
@@ -6,6 +6,7 @@
* Time: 17:18
*/
declare(strict_types=1);
+
namespace HttpServer\Http\Formatter;
use Exception;
@@ -25,23 +26,22 @@ class JsonFormatter extends Application implements IFormatter
public array $header = [];
/**
- * @param $data
- * @return $this|IFormatter
- * @throws Exception
+ * @param $context
+ * @return JsonFormatter
*/
- public function send($data)
+ public function send($context): static
{
- if (!is_string($data)) {
- $data = json_encode($data);
+ if (!is_string($context)) {
+ $context = json_encode($context);
}
- $this->data = $data;
+ $this->data = $context;
return $this;
}
/**
* @return mixed
*/
- public function getData()
+ public function getData(): mixed
{
$data = $this->data;
$this->clear();
@@ -49,7 +49,7 @@ class JsonFormatter extends Application implements IFormatter
}
- public function clear()
+ public function clear(): void
{
$this->data = null;
unset($this->data);
diff --git a/HttpServer/Http/Formatter/XmlFormatter.php b/HttpServer/Http/Formatter/XmlFormatter.php
index 99c31344..fcb69065 100644
--- a/HttpServer/Http/Formatter/XmlFormatter.php
+++ b/HttpServer/Http/Formatter/XmlFormatter.php
@@ -6,6 +6,7 @@
* Time: 17:29
*/
declare(strict_types=1);
+
namespace HttpServer\Http\Formatter;
@@ -30,17 +31,17 @@ class XmlFormatter extends Application implements IFormatter
public array $header = [];
/**
- * @param $data
+ * @param $context
* @return $this
* @throws \Exception
*/
- public function send($data)
+ public function send($context): static
{
- if (!is_string($data)) {
+ if (!is_string($context)) {
// TODO: Implement send() method.
$dom = new SimpleXMLElement('');
- $this->toXml($dom, $data);
+ $this->toXml($dom, $context);
$this->data = $dom->saveXML();
}
@@ -48,9 +49,9 @@ class XmlFormatter extends Application implements IFormatter
}
/**
- * @return string
+ * @return mixed
*/
- public function getData()
+ public function getData(): mixed
{
$data = $this->data;
$this->clear();
@@ -80,7 +81,7 @@ class XmlFormatter extends Application implements IFormatter
}
}
- public function clear()
+ public function clear(): void
{
$this->data = null;
unset($this->data);
diff --git a/System/Di/Container.php b/System/Di/Container.php
index fa7d6aa0..9fac14fa 100644
--- a/System/Di/Container.php
+++ b/System/Di/Container.php
@@ -50,6 +50,14 @@ class Container extends BaseObject
private array $_param = [];
+ /**
+ * @var array
+ *
+ * The method attributes
+ */
+ private array $_attributes = [];
+
+
/**
* @param $class
* @param array $constrict
@@ -59,7 +67,7 @@ class Container extends BaseObject
* @throws NotFindClassException
* @throws ReflectionException
*/
- public function get($class, $constrict = [], $config = [])
+ public function get($class, $constrict = [], $config = []): mixed
{
if (isset($this->_singletons[$class])) {
return $this->_singletons[$class];
@@ -88,7 +96,7 @@ class Container extends BaseObject
* @throws NotFindClassException
* @throws ReflectionException
*/
- private function resolveDefinition($definition, $class, $config, $constrict)
+ private function resolveDefinition($definition, $class, $config, $constrict): mixed
{
if (!isset($definition['class'])) {
throw new NotFindClassException($class);
@@ -112,11 +120,11 @@ class Container extends BaseObject
* @param $constrict
* @param $config
*
- * @return mixed
+ * @return object
* @throws NotFindClassException
* @throws ReflectionException
*/
- private function resolve($class, $constrict, $config)
+ private function resolve($class, $constrict, $config): object
{
/**
* @var ReflectionClass $reflect
@@ -153,7 +161,7 @@ class Container extends BaseObject
* @return array
* @throws ReflectionException
*/
- private function resolveDependencies($class)
+ private function resolveDependencies($class): array
{
$dependencies = [];
if (isset($this->_reflection[$class])) {
@@ -195,6 +203,25 @@ class Container extends BaseObject
}
+ /**
+ * @param string $class
+ * @return array
+ * @throws ReflectionException
+ */
+ public function getAttributes(string $class): array
+ {
+ $reflection = $this->getReflect($class);
+ $methods = $reflection->getMethods(\ReflectionMethod::IS_PUBLIC);
+
+ $classAttribute = $reflection->getAttributes();
+
+ foreach ($methods as $method) {
+ $this->_attributes[$reflection->getName()][$method->getName()] = $method->getAttributes();
+ }
+ return $this->_attributes[$reflection->getName()];
+ }
+
+
/**
* @param $class
*/
@@ -214,7 +241,7 @@ class Container extends BaseObject
/**
* @return $this
*/
- public function flush()
+ public function flush(): static
{
$this->_reflection = [];
$this->_singletons = [];
@@ -229,7 +256,7 @@ class Container extends BaseObject
*
* @return mixed
*/
- private function mergeParam($class, $newParam)
+ private function mergeParam($class, $newParam): array
{
if (empty($this->_param[$class])) {
return $newParam;
diff --git a/System/Di/Service.php b/System/Di/Service.php
index 77f50e3c..58301e5b 100644
--- a/System/Di/Service.php
+++ b/System/Di/Service.php
@@ -10,9 +10,11 @@ declare(strict_types=1);
namespace Snowflake\Di;
+use ReflectionException;
use Snowflake\Exception\ComponentException;
use Snowflake\Abstracts\Component;
use Exception;
+use Snowflake\Exception\NotFindClassException;
use Snowflake\Snowflake;
/**
@@ -36,7 +38,7 @@ class Service extends Component
* @return mixed
* @throws
*/
- public function get($id)
+ public function get($id): mixed
{
if (isset($this->_components[$id])) {
return $this->_components[$id];
@@ -69,10 +71,12 @@ class Service extends Component
* @param $id
* @param $definition
*
- * @return callable|mixed|void
- * @throws Exception
+ * @return mixed
+ * @throws ComponentException
+ * @throws ReflectionException
+ * @throws NotFindClassException
*/
- public function set($id, $definition)
+ public function set($id, $definition): mixed
{
if ($definition === NULL) {
return $this->remove($id);
@@ -95,7 +99,7 @@ class Service extends Component
* @param $id
* @return bool
*/
- public function has($id)
+ public function has($id): bool
{
return isset($this->_definition[$id]) || isset($this->_components[$id]) || isset($this->_alias[$id]);
}
@@ -117,7 +121,7 @@ class Service extends Component
* @return mixed
* @throws Exception
*/
- public function __get($name)
+ public function __get($name): mixed
{
if ($this->has($name)) {
return $this->get($name);
@@ -128,8 +132,9 @@ class Service extends Component
/**
* @param $id
+ * @return bool
*/
- public function remove($id)
+ public function remove($id): bool
{
unset($this->_components[$id]);
unset($this->_definition[$id]);
@@ -138,5 +143,6 @@ class Service extends Component
unset($this->_definition[$this->_alias[$id]]);
unset($this->_alias[$id]);
}
+ return $this->has($id);
}
}