PHPackages                             eduardoribeirodev/base-policies - 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. eduardoribeirodev/base-policies

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

eduardoribeirodev/base-policies
===============================

v1.0.0(3mo ago)03PHP

Since Jan 16Pushed 3mo agoCompare

[ Source](https://github.com/eduardoribeirodev/base-policies)[ Packagist](https://packagist.org/packages/eduardoribeirodev/base-policies)[ RSS](/packages/eduardoribeirodev-base-policies/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Base Policies
=============

[](#base-policies)

Um pacote Laravel poderoso para gerenciar políticas de autorização e permissões de forma simplificada e padronizada, integrando-se perfeitamente com a estrutura de autorização nativa do Laravel.

✨ Características
-----------------

[](#-características)

- 🔐 **Política Base Abstrata**: Implemente políticas de autorização de forma consistente
- 🎯 **Permissões Inteligentes**: Mapeamento automático de ações para permissões
- 🛠️ **Comandos Artisan**: Gere políticas e permissões automaticamente
- 🌐 **Formatação Flexível**: Suporte para múltiplos formatos de permissões (snake\_case, kebab-case, camelCase, PascalCase, etc.)
- 📍 **Separadores Customizáveis**: Configure como as permissões são separadas (underscore, dot, hyphen, colon, etc.)
- 🌍 **Internacionalização**: Suporte multilíngue para rótulos de permissões
- 🔗 **Integração Spatie**: Funciona perfeitamente com o pacote `laravel-permission`

📦 Instalação
------------

[](#-instalação)

Instale o pacote via Composer:

```
composer require eduardoribeirodev/base-policies
```

Publique o arquivo de configuração:

```
php artisan vendor:publish --tag=base-policies-config
```

Opcionalmente, publique os stubs para customização:

```
php artisan vendor:publish --tag=base-policies-stubs
```

⚙️ Configuração
---------------

[](#️-configuração)

Após publicar, edite `config/base-policies.php` para suas necessidades:

```
return [
    // Namespace onde suas políticas serão criadas
    'namespace' => env('BASE_POLICIES_NAMESPACE', 'Policies'),

    // Caminho onde seus modelos estão localizados
    'models_path' => app_path('Models'),

    // Formato de permissões: snake, kebab, camel, pascal, lower, upper
    'permission_format' => env('BASE_POLICIES_PERMISSION_FORMAT', 'snake'),

    // Separador de permissões: underscore, dot, hyphen, space, colon, slash, pipe
    'permission_separator' => env('BASE_POLICIES_PERMISSION_SEPARATOR', 'colon'),

    // Mapeamento de ações para permissões (customizável)
    'permission_mappings' => [
        'viewAny' => 'view',
        'view' => 'view',
        'create' => 'create',
        'update' => 'update',
        'delete' => 'delete',
        'restore' => 'restore',
        'forceDelete' => 'force_delete',
    ],
];
```

🚀 Uso
-----

[](#-uso)

### Criar uma Política Base

[](#criar-uma-política-base)

Use o comando Artisan para criar uma nova política:

```
php artisan make:base-policy PostPolicy
```

Isso criará uma política que estende `BasePolicy`:

```
