PHPackages                             lyrasoft/warder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. lyrasoft/warder

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

lyrasoft/warder
===============

A use package for Windwalker.

1.7.18(5y ago)214.3k1[30 issues](https://github.com/lyrasoft/warder/issues)LGPL-2.0-or-laterPHP

Since Feb 12Pushed 4y ago2 watchersCompare

[ Source](https://github.com/lyrasoft/warder)[ Packagist](https://packagist.org/packages/lyrasoft/warder)[ Docs](https://github.com/lyrasoft/warder)[ RSS](/packages/lyrasoft-warder/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (10)Dependencies (2)Versions (66)Used By (0)

Windwalker Warder
=================

[](#windwalker-warder)

Installation Via Composer
-------------------------

[](#installation-via-composer)

Add this to `composer.json` and run `composer update`.

```
{
    "windwalker/warder": "1.*"
}
```

### Register Package

[](#register-package)

Register warder to Windwalker, you can prepare an `admin` and `front` package to support backend and frontend.

```
// src/Windwalker/Windwalker.php

use Phoenix\PhoenixPackage;
use Lyrasoft\Warder\WarderPackage;

// ...

    public static function loadPackages()
	{
		return array(
			'system'  => new SystemPackage,
			'phoenix' => new PhoenixPackage, // You must install phoenix first
			'warder'  => new WarderPackage, // Add warder package

			// Prepare an admin and frontend package
			'admin'   => AdminPackage,
			'front'   => FrontPackage
		);
	}

// ...
```

### Migration

[](#migration)

Run `php bin/console migration migrate -p=warder --seed`

Or copy `vendor/windwalker/warder/src/Migration` and `vendor/windwalker/warder/src/Seed` files to

`resources/migration` and `resources/seed`

You can add your own columns to support more profiles.

### Copy Config

[](#copy-config)

Copy `vendor/windwalker/warder/src/config.dist.yml` to `etc/package/warder.yml`.

Or copy this config code:

```
user:
    login_name: username
    default_group: registered
    session_name: user

table:
    users: users
    user_socials: user_socials
    groups: groups
    user_group_maps: user_group_maps
    actions: actions

methods:
    warder: \Lyrasoft\Warder\Authentication\Method\WarderMethod
    # social: \Lyrasoft\Warder\Authentication\Method\SocialMethod

frontend:
    package: front
    view:
        extends: _global.html
    redirect:
        login: home
        logout: login
        forget: login
    login:
        return_key: return
    language:
        prefix: warder.

admin:
    package: admin
    view:
        extends: _global.admin.admin
    redirect:
        login: home
        logout: login
    login:
        return_key: return
    language:
        prefix: warder.

class:
    handler: Lyrasoft\Warder\Handler\UserHandler
    data: Lyrasoft\Warder\Data\UserData
```

If your package not named `admin` and `front`, set the package alias in this config.

### Register Routing

[](#register-routing)

Add Warder's routing config and namespace aliases to your package that your package can auto fetch Warder pages.

```
// src/Front/FrontPackage.php

use Lyrasoft\Warder\Helper\WarderHelper;

// ...

	// ...

	public function loadRouting()
	{
		// ...

		$routes = array_merge($routes, WarderHelper::getFrontendRouting());

		return $routes;
	}
```

Now go to `/{front@routing}/login` your will see a login page auto fetched.

[![p-2016-02-28-001](https://cloud.githubusercontent.com/assets/1639206/13378410/cd56734e-de40-11e5-9577-3e8510d2ea53.jpg)](https://cloud.githubusercontent.com/assets/1639206/13378410/cd56734e-de40-11e5-9577-3e8510d2ea53.jpg)

You can do same thing to `admin` package

```
// src/Admin/AdminPackage.php

// ...

    public function loadRouting()
	{
		// ...

		$routes = array_merge($routes, WarderHelper::getAdminRouting());

		return $routes;
	}

// ...
```

Then you can see User admin at `/{admin@routing}/users`:

[![p-2016-02-28-002](https://cloud.githubusercontent.com/assets/1639206/13378429/81d2ab26-de41-11e5-8721-2406162bb230.jpg)](https://cloud.githubusercontent.com/assets/1639206/13378429/81d2ab26-de41-11e5-8721-2406162bb230.jpg)

[![p-2016-02-28-003](https://cloud.githubusercontent.com/assets/1639206/13378428/81ce25f6-de41-11e5-9e8b-79cde415f061.jpg)](https://cloud.githubusercontent.com/assets/1639206/13378428/81ce25f6-de41-11e5-9e8b-79cde415f061.jpg)

Override Objects and Templates
------------------------------

[](#override-objects-and-templates)

You can override warder's objects in your package. For example, create `Front/Controller/User/LoginGetController.php`will load priority than `Windwalker/Warder/Controller/User/LoginGetController.php`. You can override something in this class.

```
