PHPackages                             mykemeynell/archuser - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. mykemeynell/archuser

ActiveProject[Utility &amp; Helpers](/categories/utility)

mykemeynell/archuser
====================

User Layer Architecture for Laravel (Service, Repository, Entity)

1.0.8(6y ago)042PHP

Since Jun 19Pushed 6y agoCompare

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

READMEChangelog (7)Dependencies (2)Versions (8)Used By (0)

User Storage Layer Architecture
===============================

[](#user-storage-layer-architecture)

A small package that sets up a Service, Repository and Entity for user storage. You can extend the classes and interfaces within this package to add your own additional functionality, or use the ones that come with this package as default.

Installation via Composer
-------------------------

[](#installation-via-composer)

- Get the latest version of ArchUser for your application.

`composer require mykemeynell/archuser`

- Include the service provider within your application.

```
    ...

    \ArchLayerUser\Provider\ArchUserServiceProvider::class,

    ...
```

- Bind the Service, Repository and Entity to your application.

```
    public function register(): void
    {
        $this->app->bind('user.entity',               \ArchLayerUser\Entity\UserEntity::class);
        $this->app->bind('userRole.entity',           \ArchLayerUser\Entity\UserRoleEntity::class);
        $this->app->bind('userRolePermission.entity', \ArchLayerUser\Entity\UserRolePermissionEntity::class);

        $this->app->singleton('user.repository',               \ArchLayerUser\Repository\UserRepository::class);
        $this->app->singleton('userRole.repository',           \ArchLayerUser\Repository\UserRoleRepository::class);
        $this->app->singleton('userRolePermission.repository', \ArchLayerUser\Repository\UserRolePermissionRepository::class);

        $this->app->singleton('user.service',               \ArchLayerUser\Service\UserService::class);
        $this->app->singleton('userRole.service',           \ArchLayerUser\Service\UserRoleService::class);
        $this->app->singleton('userRolePermission.service', \ArchLayerUser\Service\UserRolePermissionService::class);
    }
```

- Register any aliases and populate your providers `provides(): void` method appropriately, I have a couple of packages at [`mykemeynell/laravel-alias-service`](https://github.com/mykemeynell/laravel-alias-service)and [`mykemeynell/laravel-provides-service`](https://github.com/mykemeynell/laravel-provides-service). **The following instructions are based on using those packages**.

```
class AppServiceProvider extends ServiceProvider
{
    use mykemeynell\Support\Providers\Concern\AliasService,
        mykemeynell\Support\Providers\Concern\ProvidesService;

    /**
     * Services that are to be aliased into application.
     *
     * @var array
     */
    protected $aliases = [
        'user.entity' => [\ArchLayerUser\Entity\Contract\UserEntityInterface::class],
        'userRole.entity' => [\ArchLayerUser\Entity\Contract\UserRoleEntityInterface::class],
        'userRolePermission.entity' => [\ArchLayerUser\Entity\Contract\UserRolePermissionsEntityInterface::class],

        'user.repository' => [\ArchLayerUser\Repository\Contract\UserRepositoryInterface::class],
        'userRole.repository' > [\ArchLayerUser\Repository\Contract\UserRoleRepositoryInterface::class],
        'userRolePermission.repository' => [[\ArchLayerUser\Repository\Contract\UserRolePermissionsRepositoryInterface::class]],

        'user.service' => [\ArchLayerUser\Service\Contract\UserServiceInterface::class],
        'userRole.service' => [\ArchLayerUser\Service\Contract\UserRoleServiceInterface::class],
        'userRolePermission.service' => [\ArchLayerUser\Service\Contract\UserRolePermissionsServiceInterface::class],
    ];

...
```

- Call the `AliasService::registerAliases(): void` method.

```
    public function register(): void
    {
        $this->registerAliases();

        ...
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~27 days

Recently: every ~39 days

Total

7

Last Release

2354d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/494de8188ad97403b72e40e385235a74ef6331aa2710b3727193f646189af9fc?d=identicon)[mykemeynell](/maintainers/mykemeynell)

---

Top Contributors

[![mykemeynell](https://avatars.githubusercontent.com/u/1590190?v=4)](https://github.com/mykemeynell "mykemeynell (7 commits)")

---

Tags

laravelscaffoldinguserserviceentityrepositorylayer architecture

### Embed Badge

![Health badge](/badges/mykemeynell-archuser/health.svg)

```
[![Health](https://phpackages.com/badges/mykemeynell-archuser/health.svg)](https://phpackages.com/packages/mykemeynell-archuser)
```

###  Alternatives

[mckenziearts/laravel-command

A simple Laravel package to provide artisan new commands

321.2k](/packages/mckenziearts-laravel-command)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
