diff --git a/src/B8Framework/Application.php b/src/B8Framework/Application.php
index c86c00df..774a46e4 100644
--- a/src/B8Framework/Application.php
+++ b/src/B8Framework/Application.php
@@ -20,20 +20,25 @@ class Application
protected $controller;
/**
- * @var Request
- */
+ * @var Request
+ */
protected $request;
/**
- * @var Response
- */
+ * @var Response
+ */
protected $response;
/**
- * @var Config
- */
+ * @var Config
+ */
protected $config;
+ /**
+ * @param Config $config
+ *
+ * @param Request|null $request
+ */
public function __construct(Config $config, Http\Request $request = null)
{
$this->config = $config;
@@ -52,6 +57,11 @@ class Application
}
}
+ /**
+ * @return Response
+ *
+ * @throws NotFoundException
+ */
public function handleRequest()
{
$this->route = $this->router->dispatch();
@@ -90,7 +100,7 @@ class Application
/**
* @param string $class
- *
+ *
* @return Controller
*/
protected function loadController($class)
@@ -102,7 +112,7 @@ class Application
/**
* @param array $route
- *
+ *
* @return bool
*/
protected function controllerExists($route)
@@ -112,7 +122,7 @@ class Application
/**
* @param array $route
- *
+ *
* @return string
*/
protected function getControllerClass($route)
@@ -122,7 +132,12 @@ class Application
return $this->config->get('b8.app.namespace') . '\\' . $namespace . '\\' . $controller . 'Controller';
}
- public function isValidRoute($route)
+ /**
+ * @param array $route
+ *
+ * @return boolean
+ */
+ public function isValidRoute(array $route)
{
if ($this->controllerExists($route)) {
return true;
@@ -131,6 +146,11 @@ class Application
return false;
}
+ /**
+ * @param string $string
+ *
+ * @return string
+ */
protected function toPhpName($string)
{
$string = str_replace('-', ' ', $string);
diff --git a/src/B8Framework/Cache.php b/src/B8Framework/Cache.php
index 078f1a52..0fc477cd 100644
--- a/src/B8Framework/Cache.php
+++ b/src/B8Framework/Cache.php
@@ -2,16 +2,14 @@
namespace b8;
-/**
- * @package b8
- * @subpackage Cache
- */
-
class Cache
{
const TYPE_APC = 'ApcCache';
const TYPE_REQUEST = 'RequestCache';
+ /**
+ * @var array
+ */
protected static $instance = [];
/**
diff --git a/src/B8Framework/Config.php b/src/B8Framework/Config.php
index 41d7c1b2..977abb0a 100644
--- a/src/B8Framework/Config.php
+++ b/src/B8Framework/Config.php
@@ -10,8 +10,14 @@ if (!defined('B8_PATH')) {
class Config
{
+ /**
+ * @var Config
+ */
protected static $instance;
+ /**
+ * @return Config
+ */
public static function getInstance()
{
return self::$instance;
@@ -22,6 +28,9 @@ class Config
*/
protected $config = [];
+ /**
+ * @param array $settings
+ */
public function __construct($settings = null)
{
self::$instance = $this;
@@ -36,6 +45,9 @@ class Config
}
}
+ /**
+ * @param string $yamlFile
+ */
public function loadYaml($yamlFile)
{
// Path to a YAML file.
@@ -52,8 +64,10 @@ class Config
/**
* Get a configuration value by key, returning a default value if not set.
- * @param $key string
- * @param $default mixed
+ *
+ * @param string $key
+ * @param mixed $default
+ *
* @return mixed
*/
public function get($key, $default = null)
@@ -82,9 +96,10 @@ class Config
/**
* Set a value by key.
- * @param $key string
- * @param $value mixed
- *
+ *
+ * @param string $key
+ * @param mixed $value
+ *
* @return boolean
*/
public function set($key, $value = null)
@@ -96,6 +111,8 @@ class Config
/**
* Set an array of values.
+ *
+ * @param $array
*/
public function setArray($array)
{
@@ -105,6 +122,10 @@ class Config
/**
* Short-hand syntax for get()
* @see Config::get()
+ *
+ * @param string $key
+ *
+ * @return mixed
*/
public function __get($key)
{
@@ -114,6 +135,11 @@ class Config
/**
* Short-hand syntax for set()
* @see Config::set()
+ *
+ * @param string $key
+ * @param mixed $value
+ *
+ * @return bool
*/
public function __set($key, $value = null)
{
@@ -122,6 +148,10 @@ class Config
/**
* Is set
+ *
+ * @param string $key
+ *
+ * @return boolean
*/
public function __isset($key)
{
@@ -130,6 +160,8 @@ class Config
/**
* Unset
+ *
+ * @param string $key
*/
public function __unset($key)
{
@@ -137,8 +169,8 @@ class Config
}
/**
- * Deeply merge the $target array onto the $source array.
- * The $source array will be modified!
+ * Deeply merge the $target array onto the $source array. The $source array will be modified!
+ *
* @param array $source
* @param array $target
*/
@@ -153,7 +185,6 @@ class Config
if (!is_array($source[$target_key]) && !is_array($target_value)) {
// Neither value is an array, overwrite
$source[$target_key] = $target_value;
-
} elseif (is_array($source[$target_key]) && is_array($target_value)) {
// Both are arrays, deep merge them
self::deepMerge($source[$target_key], $target_value);
@@ -173,6 +204,9 @@ class Config
}
}
+ /**
+ * @return array
+ */
public function getArray()
{
return $this->config;
diff --git a/src/B8Framework/Controller.php b/src/B8Framework/Controller.php
index 03bbf47e..325271b8 100644
--- a/src/B8Framework/Controller.php
+++ b/src/B8Framework/Controller.php
@@ -4,12 +4,7 @@ namespace b8;
use b8\Http\Request;
use b8\Http\Response;
-use b8\View;
-/**
- * b8 Abstract Controller class
- * @package b8
- */
abstract class Controller
{
/**
@@ -37,6 +32,11 @@ abstract class Controller
*/
protected $view;
+ /**
+ * @param Config $config
+ * @param Request $request
+ * @param Response $response
+ */
public function __construct(Config $config, Request $request, Response $response)
{
$this->config = $config;
@@ -44,6 +44,11 @@ abstract class Controller
$this->response = $response;
}
+ /**
+ * @param string $name
+ *
+ * @return boolean
+ */
public function hasAction($name)
{
if (method_exists($this, $name)) {
@@ -59,6 +64,10 @@ abstract class Controller
/**
* Handles an action on this controller and returns a Response object.
+ *
+ * @param string $action
+ * @param array $actionParams
+ *
* @return Response
*/
public function handleAction($action, $actionParams)
@@ -84,8 +93,8 @@ abstract class Controller
/**
* Get a specific incoming request parameter.
*
- * @param $key
- * @param mixed $default Default return value (if key does not exist)
+ * @param string $key
+ * @param mixed $default Default return value (if key does not exist)
*
* @return mixed
*/
@@ -96,20 +105,22 @@ abstract class Controller
/**
* Change the value of an incoming request parameter.
- * @param $key
- * @param $value
+ *
+ * @param string $key
+ * @param mixed $value
*/
public function setParam($key, $value)
{
- return $this->request->setParam($key, $value);
+ $this->request->setParam($key, $value);
}
/**
* Remove an incoming request parameter.
- * @param $key
+ *
+ * @param string $key
*/
public function unsetParam($key)
{
- return $this->request->unsetParam($key);
+ $this->request->unsetParam($key);
}
}
diff --git a/src/B8Framework/Database.php b/src/B8Framework/Database.php
index 7c6903d8..9cddd471 100644
--- a/src/B8Framework/Database.php
+++ b/src/B8Framework/Database.php
@@ -43,7 +43,7 @@ class Database extends \PDO
* @param string $type
*
* @return \b8\Database
- *
+ *
* @throws \Exception
*/
public static function getConnection($type = 'read')
diff --git a/src/B8Framework/Exception/HttpException.php b/src/B8Framework/Exception/HttpException.php
index 21aae3fd..4c266213 100644
--- a/src/B8Framework/Exception/HttpException.php
+++ b/src/B8Framework/Exception/HttpException.php
@@ -4,19 +4,35 @@ namespace b8\Exception;
class HttpException extends \Exception
{
- protected $errorCode = 500;
+ /**
+ * @var integer
+ */
+ protected $errorCode = 500;
+
+ /**
+ * @var string
+ */
protected $statusMessage = 'Internal Server Error';
+ /**
+ * @return integer
+ */
public function getErrorCode()
{
return $this->errorCode;
}
+ /**
+ * @return string
+ */
public function getStatusMessage()
{
return $this->statusMessage;
}
+ /**
+ * @return string
+ */
public function getHttpHeader()
{
return 'HTTP/1.1 ' . $this->errorCode . ' ' . $this->statusMessage;
diff --git a/src/B8Framework/Exception/HttpException/BadRequestException.php b/src/B8Framework/Exception/HttpException/BadRequestException.php
index 3e9c2f7e..ec30b8e5 100644
--- a/src/B8Framework/Exception/HttpException/BadRequestException.php
+++ b/src/B8Framework/Exception/HttpException/BadRequestException.php
@@ -6,6 +6,13 @@ use b8\Exception\HttpException;
class BadRequestException extends HttpException
{
- protected $errorCode = 400;
+ /**
+ * @var integer
+ */
+ protected $errorCode = 400;
+
+ /**
+ * @var string
+ */
protected $statusMessage = 'Bad Request';
}
diff --git a/src/B8Framework/Exception/HttpException/ForbiddenException.php b/src/B8Framework/Exception/HttpException/ForbiddenException.php
index 9b0df329..1fe357da 100644
--- a/src/B8Framework/Exception/HttpException/ForbiddenException.php
+++ b/src/B8Framework/Exception/HttpException/ForbiddenException.php
@@ -6,6 +6,13 @@ use b8\Exception\HttpException;
class ForbiddenException extends HttpException
{
- protected $errorCode = 403;
+ /**
+ * @var integer
+ */
+ protected $errorCode = 403;
+
+ /**
+ * @var string
+ */
protected $statusMessage = 'Forbidden';
}
diff --git a/src/B8Framework/Exception/HttpException/NotAuthorizedException.php b/src/B8Framework/Exception/HttpException/NotAuthorizedException.php
index 54ed2877..f1e44586 100644
--- a/src/B8Framework/Exception/HttpException/NotAuthorizedException.php
+++ b/src/B8Framework/Exception/HttpException/NotAuthorizedException.php
@@ -6,6 +6,13 @@ use b8\Exception\HttpException;
class NotAuthorizedException extends HttpException
{
- protected $errorCode = 401;
+ /**
+ * @var integer
+ */
+ protected $errorCode = 401;
+
+ /**
+ * @var string
+ */
protected $statusMessage = 'Not Authorized';
}
diff --git a/src/B8Framework/Exception/HttpException/NotFoundException.php b/src/B8Framework/Exception/HttpException/NotFoundException.php
index 26533b9f..883d74a7 100644
--- a/src/B8Framework/Exception/HttpException/NotFoundException.php
+++ b/src/B8Framework/Exception/HttpException/NotFoundException.php
@@ -6,6 +6,13 @@ use b8\Exception\HttpException;
class NotFoundException extends HttpException
{
- protected $errorCode = 404;
+ /**
+ * @var integer
+ */
+ protected $errorCode = 404;
+
+ /**
+ * @var string
+ */
protected $statusMessage = 'Not Found';
}
diff --git a/src/B8Framework/Exception/HttpException/ValidationException.php b/src/B8Framework/Exception/HttpException/ValidationException.php
index 166eb745..4714e5c0 100644
--- a/src/B8Framework/Exception/HttpException/ValidationException.php
+++ b/src/B8Framework/Exception/HttpException/ValidationException.php
@@ -6,6 +6,13 @@ use b8\Exception\HttpException;
class ValidationException extends HttpException
{
- protected $errorCode = 400;
+ /**
+ * @var integer
+ */
+ protected $errorCode = 400;
+
+ /**
+ * @var string
+ */
protected $statusMessage = 'Bad Request';
}
diff --git a/src/B8Framework/Form.php b/src/B8Framework/Form.php
index 941bc857..664f8583 100644
--- a/src/B8Framework/Form.php
+++ b/src/B8Framework/Form.php
@@ -2,33 +2,55 @@
namespace b8;
-use b8\Form\FieldSet, b8\View;
+use b8\Form\FieldSet;
class Form extends FieldSet
{
+ /**
+ * @var string
+ */
protected $_action = '';
+
+ /**
+ * @var string
+ */
protected $_method = 'POST';
+ /**
+ * @return string
+ */
public function getAction()
{
return $this->_action;
}
+ /**
+ * @param string $action
+ */
public function setAction($action)
{
$this->_action = $action;
}
+ /**
+ * @return string
+ */
public function getMethod()
{
return $this->_method;
}
+ /**
+ * @param string $method
+ */
public function setMethod($method)
{
$this->_method = $method;
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
$view->action = $this->getAction();
@@ -37,6 +59,9 @@ class Form extends FieldSet
parent::onPreRender($view);
}
+ /**
+ * @return string
+ */
public function __toString()
{
return $this->render();
diff --git a/src/B8Framework/Form/Element.php b/src/B8Framework/Form/Element.php
index 8cd6a43b..cea9ff39 100644
--- a/src/B8Framework/Form/Element.php
+++ b/src/B8Framework/Form/Element.php
@@ -7,13 +7,39 @@ use b8\Config;
abstract class Element
{
+ /**
+ * @var string
+ */
protected $_name;
+
+ /**
+ * @var string
+ */
protected $_id;
+
+ /**
+ * @var string
+ */
protected $_label;
+
+ /**
+ * @var string
+ */
protected $_css;
+
+ /**
+ * @var string
+ */
protected $_ccss;
+
+ /**
+ * @var Element
+ */
protected $_parent;
+ /**
+ * @param string|null $name
+ */
public function __construct($name = null)
{
if (!is_null($name)) {
@@ -21,73 +47,123 @@ abstract class Element
}
}
+ /**
+ * @return string
+ */
public function getName()
{
return $this->_name;
}
+ /**
+ * @param string $name
+ *
+ * @return $this
+ */
public function setName($name)
{
$this->_name = strtolower(preg_replace('/([^a-zA-Z0-9_\-%])/', '', $name));
return $this;
}
+ /**
+ * @return string
+ */
public function getId()
{
return !$this->_id ? 'element-' . $this->_name : $this->_id;
}
+ /**
+ * @param string $id
+ *
+ * @return $this
+ */
public function setId($id)
{
$this->_id = $id;
return $this;
}
+ /**
+ * @return string
+ */
public function getLabel()
{
return $this->_label;
}
+ /**
+ * @param string $label
+ *
+ * @return $this
+ */
public function setLabel($label)
{
$this->_label = $label;
return $this;
}
+ /**
+ * @return string
+ */
public function getClass()
{
return $this->_css;
}
+ /**
+ * @param string $class
+ *
+ * @return $this
+ */
public function setClass($class)
{
$this->_css = $class;
return $this;
}
+ /**
+ * @return string
+ */
public function getContainerClass()
{
return $this->_ccss;
}
+ /**
+ * @param string $class
+ *
+ * @return $this
+ */
public function setContainerClass($class)
{
$this->_ccss = $class;
return $this;
}
+ /**
+ * @param Element $parent
+ *
+ * @return $this
+ */
public function setParent(Element $parent)
{
$this->_parent = $parent;
return $this;
}
+ /**
+ * @param string $viewFile
+ *
+ * @return string
+ */
public function render($viewFile = null)
{
$viewPath = Config::getInstance()->get('b8.view.path');
if (is_null($viewFile)) {
- $class = explode('\\', get_called_class());
+ $class = explode('\\', get_called_class());
$viewFile = end($class);
}
@@ -109,5 +185,8 @@ abstract class Element
return $view->render();
}
+ /**
+ * @param View $view
+ */
abstract protected function onPreRender(View &$view);
}
diff --git a/src/B8Framework/Form/Element/Button.php b/src/B8Framework/Form/Element/Button.php
index 26110100..7f6948a4 100644
--- a/src/B8Framework/Form/Element/Button.php
+++ b/src/B8Framework/Form/Element/Button.php
@@ -2,18 +2,26 @@
namespace b8\Form\Element;
-use b8\Form\Input, b8\View;
+use b8\Form\Input;
+use b8\View;
class Button extends Input
{
+ /**
+ * @return boolean
+ */
public function validate()
{
return true;
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
parent::onPreRender($view);
+
$view->type = 'button';
}
}
diff --git a/src/B8Framework/Form/Element/Checkbox.php b/src/B8Framework/Form/Element/Checkbox.php
index dd7b7108..482b7b7a 100644
--- a/src/B8Framework/Form/Element/Checkbox.php
+++ b/src/B8Framework/Form/Element/Checkbox.php
@@ -2,23 +2,40 @@
namespace b8\Form\Element;
-use b8\View, b8\Form\Input;
+use b8\View;
+use b8\Form\Input;
class Checkbox extends Input
{
+ /**
+ * @var boolean
+ */
protected $_checked;
+
+ /**
+ * @var mixed
+ */
protected $_checkedValue;
+ /**
+ * @return mixed
+ */
public function getCheckedValue()
{
return $this->_checkedValue;
}
+ /**
+ * @param mixed $value
+ */
public function setCheckedValue($value)
{
$this->_checkedValue = $value;
}
+ /**
+ * @param mixed $value
+ */
public function setValue($value)
{
if (is_bool($value) && $value === true) {
@@ -33,13 +50,17 @@ class Checkbox extends Input
return;
}
- $this->_value = $value;
+ $this->_value = $value;
$this->_checked = false;
}
+ /**
+ * @param View $view
+ */
public function onPreRender(View &$view)
{
parent::onPreRender($view);
+
$view->checkedValue = $this->getCheckedValue();
$view->checked = $this->_checked;
}
diff --git a/src/B8Framework/Form/Element/Csrf.php b/src/B8Framework/Form/Element/Csrf.php
index 3df0c247..caeb18dd 100644
--- a/src/B8Framework/Form/Element/Csrf.php
+++ b/src/B8Framework/Form/Element/Csrf.php
@@ -6,8 +6,14 @@ use b8\View;
class Csrf extends Hidden
{
+ /**
+ * @var integer
+ */
protected $_rows = 4;
+ /**
+ * @return boolean
+ */
public function validate()
{
if ($this->_value != $_COOKIE[$this->getName()]) {
@@ -17,11 +23,16 @@ class Csrf extends Hidden
return true;
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
parent::onPreRender($view);
- $csrf = md5(microtime(true));
+
+ $csrf = md5(microtime(true));
$view->csrf = $csrf;
+
setcookie($this->getName(), $csrf);
}
}
diff --git a/src/B8Framework/Form/Element/Email.php b/src/B8Framework/Form/Element/Email.php
index 7726a2b9..ccf10965 100644
--- a/src/B8Framework/Form/Element/Email.php
+++ b/src/B8Framework/Form/Element/Email.php
@@ -6,14 +6,23 @@ use b8\View;
class Email extends Text
{
+ /**
+ * @param string $viewFile
+ *
+ * @return string
+ */
public function render($viewFile = null)
{
return parent::render(($viewFile ? $viewFile : 'Text'));
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
parent::onPreRender($view);
+
$view->type = 'email';
}
}
diff --git a/src/B8Framework/Form/Element/Password.php b/src/B8Framework/Form/Element/Password.php
index 258ec873..6701a753 100644
--- a/src/B8Framework/Form/Element/Password.php
+++ b/src/B8Framework/Form/Element/Password.php
@@ -6,14 +6,23 @@ use b8\View;
class Password extends Text
{
+ /**
+ * @param string $viewFile
+ *
+ * @return string
+ */
public function render($viewFile = null)
{
return parent::render(($viewFile ? $viewFile : 'Text'));
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
parent::onPreRender($view);
+
$view->type = 'password';
}
}
diff --git a/src/B8Framework/Form/Element/Select.php b/src/B8Framework/Form/Element/Select.php
index 7119c637..d48060b9 100644
--- a/src/B8Framework/Form/Element/Select.php
+++ b/src/B8Framework/Form/Element/Select.php
@@ -2,20 +2,31 @@
namespace b8\Form\Element;
-use b8\View, b8\Form\Input;
+use b8\View;
+use b8\Form\Input;
class Select extends Input
{
+ /**
+ * @var array
+ */
protected $_options = [];
+ /**
+ * @param array $options
+ */
public function setOptions(array $options)
{
$this->_options = $options;
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
parent::onPreRender($view);
+
$view->options = $this->_options;
}
}
diff --git a/src/B8Framework/Form/Element/Submit.php b/src/B8Framework/Form/Element/Submit.php
index 5d0cbfdb..7493531a 100644
--- a/src/B8Framework/Form/Element/Submit.php
+++ b/src/B8Framework/Form/Element/Submit.php
@@ -6,16 +6,28 @@ use b8\View;
class Submit extends Button
{
+ /**
+ * @var string
+ */
protected $_value = 'Submit';
+ /**
+ * @param string $viewFile
+ *
+ * @return string
+ */
public function render($viewFile = null)
{
return parent::render(($viewFile ? $viewFile : 'Button'));
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
parent::onPreRender($view);
+
$view->type = 'submit';
}
}
diff --git a/src/B8Framework/Form/Element/Text.php b/src/B8Framework/Form/Element/Text.php
index 6aa04ba6..56c88ca7 100644
--- a/src/B8Framework/Form/Element/Text.php
+++ b/src/B8Framework/Form/Element/Text.php
@@ -2,13 +2,18 @@
namespace b8\Form\Element;
-use b8\Form\Input, b8\View;
+use b8\Form\Input;
+use b8\View;
class Text extends Input
{
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
parent::onPreRender($view);
+
$view->type = 'text';
}
}
diff --git a/src/B8Framework/Form/Element/TextArea.php b/src/B8Framework/Form/Element/TextArea.php
index 14f54e1f..5744b653 100644
--- a/src/B8Framework/Form/Element/TextArea.php
+++ b/src/B8Framework/Form/Element/TextArea.php
@@ -6,21 +6,34 @@ use b8\View;
class TextArea extends Text
{
+ /**
+ * @var integer
+ */
protected $_rows = 4;
+ /**
+ * @return integer
+ */
public function getRows()
{
return $this->_rows;
}
+ /**
+ * @param integer $rows
+ */
public function setRows($rows)
{
$this->_rows = $rows;
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
parent::onPreRender($view);
+
$view->rows = $this->getRows();
}
}
diff --git a/src/B8Framework/Form/Element/Url.php b/src/B8Framework/Form/Element/Url.php
index 1f5580e8..4627eb79 100644
--- a/src/B8Framework/Form/Element/Url.php
+++ b/src/B8Framework/Form/Element/Url.php
@@ -6,14 +6,23 @@ use b8\View;
class Url extends Text
{
+ /**
+ * @param string $viewFile
+ *
+ * @return string
+ */
public function render($viewFile = null)
{
return parent::render(($viewFile ? $viewFile : 'Text'));
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
parent::onPreRender($view);
+
$view->type = 'url';
}
}
diff --git a/src/B8Framework/Form/FieldSet.php b/src/B8Framework/Form/FieldSet.php
index fefc5915..94b63f5e 100644
--- a/src/B8Framework/Form/FieldSet.php
+++ b/src/B8Framework/Form/FieldSet.php
@@ -2,12 +2,18 @@
namespace b8\Form;
-use b8\Form\Element, b8\View;
+use b8\View;
class FieldSet extends Element
{
+ /**
+ * @var Element[]
+ */
protected $_children = [];
+ /**
+ * @return array
+ */
public function getValues()
{
$rtn = [];
@@ -30,6 +36,9 @@ class FieldSet extends Element
return $rtn;
}
+ /**
+ * @param array $values
+ */
public function setValues(array $values)
{
foreach ($this->_children as $field) {
@@ -51,12 +60,18 @@ class FieldSet extends Element
}
}
+ /**
+ * @param Element $field
+ */
public function addField(Element $field)
{
$this->_children[$field->getName()] = $field;
$field->setParent($this);
}
+ /**
+ * @return boolean
+ */
public function validate()
{
$rtn = true;
@@ -70,6 +85,9 @@ class FieldSet extends Element
return $rtn;
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
$rendered = [];
@@ -80,11 +98,19 @@ class FieldSet extends Element
$view->children = $rendered;
}
+ /**
+ * @return Element[]
+ */
public function getChildren()
{
return $this->_children;
}
+ /**
+ * @param string $fieldName
+ *
+ * @return Element
+ */
public function getChild($fieldName)
{
return $this->_children[$fieldName];
diff --git a/src/B8Framework/Form/Input.php b/src/B8Framework/Form/Input.php
index 46c20043..5b0bafad 100644
--- a/src/B8Framework/Form/Input.php
+++ b/src/B8Framework/Form/Input.php
@@ -2,17 +2,47 @@
namespace b8\Form;
-use b8\Form\Element, b8\View;
+use b8\View;
class Input extends Element
{
+ /**
+ * @var boolean
+ */
protected $_required = false;
+
+ /**
+ * @var string
+ */
protected $_pattern;
+
+ /**
+ * @var callable
+ */
protected $_validator;
+
+ /**
+ * @var mixed
+ */
protected $_value;
+
+ /**
+ * @var string
+ */
protected $_error;
+
+ /**
+ * @var boolean
+ */
protected $_customError = false;
+ /**
+ * @param string $name
+ * @param string $label
+ * @param boolean $required
+ *
+ * @return static
+ */
public static function create($name, $label, $required = false)
{
$el = new static();
@@ -23,33 +53,59 @@ class Input extends Element
return $el;
}
+ /**
+ * @return mixed
+ */
public function getValue()
{
return $this->_value;
}
+ /**
+ * @param mixed $value
+ *
+ * @return $this
+ */
public function setValue($value)
{
$this->_value = $value;
+
return $this;
}
+ /**
+ * @return boolean
+ */
public function getRequired()
{
return $this->_required;
}
+ /**
+ * @param boolean $required
+ *
+ * @return $this
+ */
public function setRequired($required)
{
$this->_required = (bool)$required;
+
return $this;
}
+ /**
+ * @return callable
+ */
public function getValidator()
{
return $this->_validator;
}
+ /**
+ * @param callable $validator
+ *
+ * @return $this
+ */
public function setValidator($validator)
{
if (is_callable($validator) || $validator instanceof \Closure) {
@@ -59,17 +115,29 @@ class Input extends Element
return $this;
}
+ /**
+ * @return string
+ */
public function getPattern()
{
return $this->_pattern;
}
+ /**
+ * @param string $pattern
+ *
+ * @return $this
+ */
public function setPattern($pattern)
{
$this->_pattern = $pattern;
+
return $this;
}
+ /**
+ * @return boolean
+ */
public function validate()
{
if ($this->getRequired() && empty($this->_value)) {
@@ -79,6 +147,7 @@ class Input extends Element
if ($this->getPattern() && !preg_match('/' . $this->getPattern() . '/', $this->_value)) {
$this->_error = 'Invalid value entered.';
+
return false;
}
@@ -89,6 +158,7 @@ class Input extends Element
call_user_func_array($validator, [$this->_value]);
} catch (\Exception $ex) {
$this->_error = $ex->getMessage();
+
return false;
}
}
@@ -100,18 +170,27 @@ class Input extends Element
return true;
}
+ /**
+ * @param string $message
+ *
+ * @return $this
+ */
public function setError($message)
{
$this->_customError = true;
- $this->_error = $message;
+ $this->_error = $message;
+
return $this;
}
+ /**
+ * @param View $view
+ */
protected function onPreRender(View &$view)
{
- $view->value = $this->getValue();
- $view->error = $this->_error;
- $view->pattern = $this->_pattern;
+ $view->value = $this->getValue();
+ $view->error = $this->_error;
+ $view->pattern = $this->_pattern;
$view->required = $this->_required;
}
}
diff --git a/src/B8Framework/Form/View/Button.phtml b/src/B8Framework/Form/View/Button.phtml
index ccce383c..60a3a613 100644
--- a/src/B8Framework/Form/View/Button.phtml
+++ b/src/B8Framework/Form/View/Button.phtml
@@ -1 +1 @@
-
+
diff --git a/src/B8Framework/Form/View/Checkbox.phtml b/src/B8Framework/Form/View/Checkbox.phtml
index 3c875490..c4a0858a 100644
--- a/src/B8Framework/Form/View/Checkbox.phtml
+++ b/src/B8Framework/Form/View/Checkbox.phtml
@@ -1,15 +1,17 @@
-
+
-
diff --git a/src/B8Framework/Form/View/CheckboxGroup.phtml b/src/B8Framework/Form/View/CheckboxGroup.phtml
index 4b97193a..53b8b22d 100644
--- a/src/B8Framework/Form/View/CheckboxGroup.phtml
+++ b/src/B8Framework/Form/View/CheckboxGroup.phtml
@@ -1,11 +1,11 @@
-
+
-
+
= $label; ?>
-
+ = $field; ?>
diff --git a/src/B8Framework/Form/View/ControlGroup.phtml b/src/B8Framework/Form/View/ControlGroup.phtml
index 1eeaace7..07ef0713 100644
--- a/src/B8Framework/Form/View/ControlGroup.phtml
+++ b/src/B8Framework/Form/View/ControlGroup.phtml
@@ -1,5 +1,5 @@
-
+
-
+ = $field; ?>
diff --git a/src/B8Framework/Form/View/Csrf.phtml b/src/B8Framework/Form/View/Csrf.phtml
index 52461951..3068e4f6 100644
--- a/src/B8Framework/Form/View/Csrf.phtml
+++ b/src/B8Framework/Form/View/Csrf.phtml
@@ -1 +1 @@
-
+
diff --git a/src/B8Framework/Form/View/FieldSet.phtml b/src/B8Framework/Form/View/FieldSet.phtml
index debd66d7..96b8590d 100644
--- a/src/B8Framework/Form/View/FieldSet.phtml
+++ b/src/B8Framework/Form/View/FieldSet.phtml
@@ -1,9 +1,9 @@
-