2017 © Pedro Peláez
 

library user

A persistable user object

image

delboy1978uk/user

A persistable user object

  • Monday, July 16, 2018
  • by delboy1978uk
  • Repository
  • 1 Watchers
  • 0 Stars
  • 234 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 39 Versions
  • 12 % Grown

The README.md

user

build status Code Coverage Scrutinizer Code Quality
A persistable User object and service for use with Doctrine., (*1)

installation

Install via composer into your project:, (*2)

composer require delboy1978uk/user

setup

Add vendor/delboy1978uk/user/src/Entity to your Doctrine entity paths and update your DB, (*3)

usage

To create the user service, pass your Doctrine entity mananger and the delboy1978uk/person Person service into the constructor:, (*4)

use Del\Person\Service\PersonService;
use Del\Service\UserService;
use Doctrine\ORM\EntityManager;

// $entityManager = [get your Doctrine EntityManager here];
$personService = new PersonService($entityManager);
$userService = new UserService($entityManager, $personService);

The User Service

All manipulation of our User objects happens through the UserService, which has a variety of methods available:, (*5)

<?php

$user = $svc->createFromArray($data); // Pass an array, get a User object
$array = $svc->toArray($user); // Pass an User object, get an array
$user = $svc->saveUser($user); // Inserts or updates a User in the DB
$user = $svc->findUserById($id); // Finds a User in the DB
$user = $svc->findUserByEmail($email); // Finds a User in the DB
$user = $svc->changePassword($user, $password); // Updates a password in the DB
$users = $svc->findByCriteria($criteria); // See below for more info
$user = $svc->findOneByCriteria($criteria); // See below for more info
$svc->deleteUser($user); // Deletes a User from the DB
$svc->setUserClass($className); // If you wish to extend this class with your own
$svc->checkPassword($user, $plainPassword); // Returns true or false
$svc->registerUser($data); // See below
$svc->authenticate($email, $password); // Returns the user's ID on success
$emailLink = $svc->generateEmailLink($user, $daysTillExpiry); // For emailing with a secure token
$emailLink = $svc->findEmailLink($email, $token); // Finds the email link for that user
$emailLink = $svc->deleteEmailLink($link); // Deletes from the DB

Registering a user

Pass in an array with keys email, password, and confirm, confirm being the password confirmation field., (*6)

<?php
$user = $svc->registerUser($data);

The user will be in an unactivated state. Usually we would email the user with an activation link. To get a secure token, do the following:, (*7)

<?php
$emailLink = $svc->generateEmailLink($user, 7); // Token expires in 7 days

You can now email your user, and use findEmailLink when they arrive to activate their account:, (*8)

<?php
$emailLink = $svc->findEmailLink($email, $token); 

You can then update the users state to active and save., (*9)

The User Entity

Usage as follows., (*10)

<?php

use Del\Entity\User;
use Del\Person\Entity\Person;
use Del\Value\User\State;

$user = new User();
$user->setId(12345); // You shouldn't have to, the ORM will do this
$user->setEmail('a@b.com');
$user->setPassword($password); // Not encrypted - use the service which will in turn call this 
$user->setState(new State(State::STATE_ACTIVATED)); 
$user->setRegistrationDate($registrationDate); // A DateTime object
$user->setLastLogin($registrationDate); // A DateTime object
$user->setPerson(new Person()); // See delboy1978uk/person

The User lib also uses delboy1978uk/person, which you can use to store some personal details of the user, if you like., (*11)

The User Collection

This is just a fancy array, extending Doctrine\Common\Collections\ArrayCollection. It has the usual stuff:, (*12)

<?php

while ($collection->valid()) {
    $user = $collection->current();
    // Do things to user
    $collection->next();
}

The User Repository

The Repository class is within the service, and contains all the database queries., (*13)

Query Criteria

You can use a UserCriteria to refine the results returned like so:, (*14)

<?php

use Del\Criteria\UserCriteria;
use Del\Value\User\State;

$criteria = new UserCriteria();
$criteria->setState(State::STATE_UNACTIVATED); // We only want unactivated users
$users = $svc->findByCriteria($criteria);

You can also use findOneByCriteria to restrict results to one row., (*15)

The Versions

16/07 2018

dev-master

9999999-dev

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

16/07 2018

v3.0.3

3.0.3.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

09/07 2018

v3.0.2

3.0.2.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

22/06 2018

v3.0.1

3.0.1.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

22/06 2018

dev-dev-master

dev-dev-master

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

22/06 2018

v3.0.0

3.0.0.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

18/03 2018

v2.2.2

2.2.2.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

03/03 2018

v2.2.1

2.2.1.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

14/02 2018

v2.2.0

2.2.0.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

07/01 2018

v2.1.7

2.1.7.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

25/04 2017

v2.1.6

2.1.6.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

24/03 2017

v2.1.5

2.1.5.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

23/03 2017

v2.1.4

2.1.4.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

23/03 2017

v2.1.3

2.1.3.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

23/03 2017

v2.1.2

2.1.2.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

23/03 2017

v2.1.0

2.1.0.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

23/03 2017

v2.1.1

2.1.1.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

20/03 2017

v2.0.2

2.0.2.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

06/10 2016

v2.0.1

2.0.1.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

21/03 2016

v2.0.0

2.0.0.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

08/03 2016
09/02 2016

v1.3.4

1.3.4.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

09/02 2016

v1.3.3

1.3.3.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

09/02 2016

v1.3.2

1.3.2.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

09/02 2016

v1.3.1

1.3.1.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

09/02 2016

v1.3.0

1.3.0.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

02/02 2016

v1.2.9

1.2.9.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

31/01 2016

v1.2.8

1.2.8.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

31/01 2016

v1.2.7

1.2.7.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

31/01 2016

v1.2.6

1.2.6.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

31/01 2016

v1.2.5

1.2.5.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

27/01 2016

v1.2.4

1.2.4.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

25/01 2016

v1.2.3

1.2.3.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

22/01 2016

v1.2.2

1.2.2.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

20/01 2016

v1.2.1

1.2.1.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

20/01 2016

v1.2.0

1.2.0.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

15/01 2016

v1.1.0

1.1.0.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

12/01 2016

v1.0.1

1.0.1.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires

12/01 2016

v1.0.0

1.0.0.0

A persistable user object

  Sources   Download

MIT

The Requires

 

The Development Requires