Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Vadim\User;
- use \Datetime;
- class User
- {
- private $name;
- private $srName;
- private $dbo;
- private $roles;
- private $password;
- /**
- * Class constructor
- *
- * @param string $name
- * @param string $srName
- * @param array $roles User roles
- * @param dateTime $dbo date of birth
- * @param string $password not hashed password
- *
- */
- public function __construct(string $name, string $srName, array $roles, dateTime $dbo, string $password)
- {
- $this->setName($name);
- $this->setSrName($srName);
- $this->setPassword($password);
- $this->setRoles($roles);
- $this->dbo = $dbo;
- }
- /**
- * Destruct User Class
- */
- public function __destruct()
- {
- unset($this->name);
- unset($this->srName);
- unset($this->dbo);
- unset($this->roles);
- unset($this->password);
- }
- /**
- * Set user name
- *
- * @param string $name
- * @return void
- */
- private function setName(string $name)
- {
- $this->name = $name;
- }
- /**
- * Set user surname
- *
- * @param string $srName
- * @return void
- */
- private function setSrName(string $srName)
- {
- $this->srName = $srName;
- }
- /**
- * Get user name
- *
- * If need to do some operations or use in nav menu as a User Auth name
- *
- * @return string
- */
- public function getName() : string
- {
- return $this->name;
- }
- /**
- * Get user surname
- *
- * Using if need in a User info board
- *
- * @return string
- */
- public function getSrName() : string
- {
- return $this->srName;
- }
- /**
- * Get user name and surname
- * __toString
- *
- * @return string
- */
- public function GetUserName() : string
- {
- return sprintf('%s %s', $this->getName(), $this->getSrName());
- }
- /**
- * Set password
- *
- * Set user password
- * @return void
- */
- private function setPassword(string $password)
- {
- $this->password = md5($password);
- }
- /**
- * Get user hashed password
- *
- * @return string
- */
- public function getPassword() : string
- {
- return $this->password;
- }
- /**
- * Set user roles
- *
- * @param array $roles
- * @return void
- */
- private function setRoles(array $roles)
- {
- $this->roles = $roles;
- }
- /**
- * Get user roles
- *
- * @return array
- */
- public function getRoles() : array
- {
- return $this->roles;
- }
- /**
- * Check is user adult
- *
- * @return bool
- */
- public function isAdult() : bool
- {
- $now = new DateTime();
- return (($now->diff($this->dbo))->y > 17) ? true : false;
- }
- }
- $dbo = new DateTime('2015-04-08');
- $user = new User('Bill','Johnson',['USER','ADMIN'],$dbo,'123wert');
- if ($user->getUserName() == 'Bill Johnson') {
- echo "User name is correct\n";
- } else {
- echo "User name is incorrect\n";
- }
- if ($user->getPassword() == md5('123wert')) {
- echo "User password is correct\n";
- } else {
- echo "User password is incorrect\n";
- }
- if ($user->getRoles() == ['USER','ADMIN']) {
- echo "User has roles\n";
- } else {
- echo "User hasn't roles\n";
- }
- if ($user->isAdult()) {
- echo "User is adult\n";
- } else {
- echo "User is young (teen)\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement