Adding Forgot Password functionalitiy to ZfcUser

Installs: 18 858

Dependents: 4

Stars: 36

Watchers: 13

Forks: 38

Open Issues: 13

Language: PHP

1.0.2 2014-05-26 07:07 UTC


Version 1.0.0 Created by the goalio UG (haftungsbeschränkt)


A Zend Framework 2 (ZF2) Module offering forgot password via e-mail functionality to ZfcUser


I developed this module to use in our goalio application. There are currently no tests and support can be a little slow because we are a small company with only two developers. I appreciate any feedback, pull requests are even better.


Features / Goals

  • Add pluggable behaviour to request a password reset [COMPLETE]
  • Provide updated login view [COMPLETE]


Main Setup

With composer
  1. Add this project and the requirements in your composer.json:

    "require": {
        "goalio/goalio-forgotpassword": "1.*"
  2. Now tell composer to download GoalioForgotPassword by running the command:

    $ php composer.phar update
Post installation
  1. Enabling it in your application.config.phpfile.

    return array(
        'modules' => array(
            // ...
        // ...
  2. Then Import the SQL schema located in ./vendor/goalio/goalio-forgotpassword/data/schema.sql.

  3. Make sure that the MailService is configured correctly.

Post-Install: Zend\Db

  1. If you do not already have a valid Zend\Db\Adapter\Adapter in your service manager configuration, put the following in ./config/autoload/database.local.php:

    $dbParams = array(
        'database'  => 'changeme',
        'username'  => 'changeme',
        'password'  => 'changeme',
        'hostname'  => 'changeme',
    return array(
        'service_manager' => array(
            'factories' => array(
                'Zend\Db\Adapter\Adapter' => function ($sm) use ($dbParams) {
                    return new Zend\Db\Adapter\Adapter(array(
                        'driver'    => 'pdo',
                        'dsn'       => 'mysql:dbname='.$dbParams['database'].';host='.$dbParams['hostname'],
                        'database'  => $dbParams['database'],
                        'username'  => $dbParams['username'],
                        'password'  => $dbParams['password'],
                        'hostname'  => $dbParams['hostname'],

Post-Install: Doctrine2 ORM

There is an additional module for Doctrine integration GoalioForgotPasswordORM


Navigate to http://yourproject/user and you should land on a login page.


The ForgotPassword module has some options to allow you to quickly customize the basic functionality. After installing, copy ./vendor/goalio/goalio-forgotpassword/config/goalioforgotpassword.global.php.dist to ./config/autoload/goalioforgotpassword.global.php and change the values as desired.

The following options are available:

  • password_entity_class - Name of Entity class to use. Useful for using your own entity class instead of the default one provided. Default is GoalioRememberMe\Entity\RememberMe.
  • reset_expire - Integer value in seconds when the login cookie should expire. Default is 86400 (24 hours).
  • email_transport - String value which transport class to use. Default is Zend\Mail\Transport\Sendmail.
  • reset_email_subject_line - String value which transport class to use. Default is You requested to reset your password.
  • email_from_address - Array Default is array( 'email' => 'your_email_address@here.com', 'name' => 'Your name', ).


Daniel Strøm (https://github.com/Danielss89) for most of the basic work in the cookie adapter etc.