PHPackages                             sierratecnologia/cms - 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. sierratecnologia/cms

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

sierratecnologia/cms
====================

Add a CMS to any Laravel app/website to gain control of: pages, blogs, galleries, events, custom modules, images and more.

v2.1.4(6y ago)036[1 PRs](https://github.com/SierraTecnologia/CMS/pulls)1MITSCSSPHP &gt;=7.1.3CI failing

Since Feb 28Pushed 6mo ago1 watchersCompare

[ Source](https://github.com/SierraTecnologia/CMS)[ Packagist](https://packagist.org/packages/sierratecnologia/cms)[ RSS](/packages/sierratecnologia-cms/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (13)Versions (15)Used By (1)

SierraTecnologia CMS
====================

[](#sierratecnologia-cms)

**CMS** - Add a CMS to any Laravel app to gain control of: pages, blogs, galleries, events, custom modules, images and more.

[![Build Status](https://camo.githubusercontent.com/aad2f3968de353c40bfa8a7fd1840f909b35445c1c7d7d8cfa39c48aa688ce84/68747470733a2f2f7472617669732d63692e6f72672f5369657272615465636e6f6c6f676961496e632f434d532e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/SierraTecnologiaInc/CMS)[![Maintainability](https://camo.githubusercontent.com/a7beed2131d2eee87b13e344790ed922e9f117db60ef468b3a0523fee5da6653/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f66323862373365626636303066326462376634382f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/SierraTecnologiaInc/CMS/maintainability)[![Packagist](https://camo.githubusercontent.com/bdb1293625c2c01ed08eb9bcb8a842d030385e5a61bf56d58238879443d0bc12/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7369657272617465636e6f6c6f6769612f636d732e7376673f6d61784167653d32353932303030)](https://packagist.org/packages/sierratecnologia/cms)[![license](https://camo.githubusercontent.com/ee061e6c1798bd95fa104c910010a3119850b186c323a1c848b3abcb029dc764/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d6173686170652f6170697374617475732e7376673f6d61784167653d32353932303030)](https://packagist.org/packages/sierratecnologia/cms)[![Join the chat at https://gitter.im/SierraTecnologiaInc/CMS](https://camo.githubusercontent.com/60d5596230e5bdb7c65660b9986ff046fe305308344bbc7f6e62205616dd8651/68747470733a2f2f6261646765732e6769747465722e696d2f5369657272615465636e6f6c6f676961496e632f434d532e737667)](https://gitter.im/SierraTecnologiaInc/CMS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Índice
------

[](#índice)

- [Introdução](#introdu%C3%A7%C3%A3o)
- [Instalação](#instala%C3%A7%C3%A3o)
- [Arquitetura e Estrutura Interna](#arquitetura-e-estrutura-interna)
- [Principais Módulos e Funcionalidades](#principais-m%C3%B3dulos-e-funcionalidades)
- [Uso Prático](#uso-pr%C3%A1tico)
- [Integração com o Ecossistema Rica Soluções](#integra%C3%A7%C3%A3o-com-o-ecossistema-rica-solu%C3%A7%C3%B5es)
- [Extensão e Customização](#extens%C3%A3o-e-customiza%C3%A7%C3%A3o)
- [Exemplos Reais](#exemplos-reais)
- [Ferramentas de Desenvolvimento](#ferramentas-de-desenvolvimento)
- [Guia de Contribuição](#guia-de-contribui%C3%A7%C3%A3o)

---

Introdução
----------

[](#introdução)

### O que é a biblioteca CMS

[](#o-que-é-a-biblioteca-cms)

**SierraTecnologia CMS** é uma biblioteca Laravel completa e extensível que adiciona funcionalidades de gerenciamento de conteúdo (CMS) a qualquer aplicação Laravel existente. Desenvolvida pela Rica Soluções/SierraTecnologia, a biblioteca oferece controle total sobre:

- 📄 **Páginas estáticas e dinâmicas**
- 📝 **Blogs e artigos**
- 📅 **Calendário de eventos**
- 🖼️ **Galeria de imagens**
- 📁 **Gerenciamento de arquivos**
- 🧭 **Menus de navegação**
- 🧩 **Widgets reutilizáveis**
- ❓ **FAQs (Perguntas Frequentes)**
- 🎁 **Promoções e destaques**

### Objetivo e Filosofia do Projeto

[](#objetivo-e-filosofia-do-projeto)

A filosofia central do SierraTecnologia CMS é fornecer uma solução **modular**, **extensível** e **profissional** para gerenciamento de conteúdo, seguindo os melhores padrões de desenvolvimento Laravel e arquitetura de software:

- **Modularidade**: Ative apenas os módulos que você precisa
- **Extensibilidade**: Crie módulos customizados facilmente
- **Padrões de Código**: PSR-12, SOLID, e Laravel Best Practices
- **Testabilidade**: Cobertura completa de testes unitários e de integração
- **Documentação**: Código bem documentado e exemplos práticos

### Benefícios de Uso

[](#benefícios-de-uso)

✅ **Produtividade**: Não reinvente a roda - use componentes prontos e testados ✅ **Padronização**: Código consistente seguindo padrões da Rica Soluções ✅ **Manutenibilidade**: Arquitetura limpa facilita manutenção e evolução ✅ **Multiidioma**: Suporte nativo a múltiplos idiomas ✅ **Versionamento**: Histórico completo de alterações em conteúdo ✅ **SEO-Ready**: Recursos otimizados para mecanismos de busca ✅ **Segurança**: Validações, criptografia e proteção de assets

### Integração no Ecossistema Rica Soluções

[](#integração-no-ecossistema-rica-soluções)

O CMS faz parte do ecossistema maior da Rica Soluções, integrando-se perfeitamente com:

- **sierratecnologia/builder**: Geração de código e scaffolding
- **ricardosierra/translation**: Sistema de tradução e internacionalização
- **ricardosierra/minify**: Otimização de assets (CSS/JS)
- **Outros pacotes**: API base, GraphQL, arquiteto, técnico, etc.

---

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

[](#instalação)

### Requisitos Mínimos

[](#requisitos-mínimos)

- **PHP**: 7.1.3 ou superior (recomendado PHP 8.0+)
- **Laravel**: 7.x ou superior
- **MySQL**: 5.7+ ou PostgreSQL 9.6+
- **Composer**: 2.x
- **Extensões PHP**: OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype, JSON, BCMath, Fileinfo, GD

### Instalação via Composer

[](#instalação-via-composer)

#### 1. Adicione o repositório ao seu `composer.json` (se necessário)

[](#1-adicione-o-repositório-ao-seu-composerjson-se-necessário)

```
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/SierraTecnologia/CMS"
        }
    ]
}
```

#### 2. Instale o pacote

[](#2-instale-o-pacote)

```
composer require sierratecnologia/cms
```

#### 3. Publique os assets e configurações

[](#3-publique-os-assets-e-configurações)

```
# Publicar todos os assets (configuração, views, controllers, rotas, temas)
php artisan vendor:publish --provider="SierraTecnologia\Cms\SierraTecnologiaCmsProvider"

# Publicar apenas as views do backend (opcional)
php artisan vendor:publish --provider="SierraTecnologia\Cms\SierraTecnologiaCmsProvider" --tag="backend"
```

#### 4. Execute as migrações

[](#4-execute-as-migrações)

```
php artisan migrate
```

#### 5. Execute o setup inicial

[](#5-execute-o-setup-inicial)

```
php artisan cms:setup
```

Este comando irá:

- Gerar chaves de criptografia
- Criar estruturas iniciais
- Configurar o ambiente

### Registro de ServiceProviders

[](#registro-de-serviceproviders)

O ServiceProvider principal (`SierraTecnologiaCmsProvider`) é registrado automaticamente via **auto-discovery** do Laravel 5.5+.

Se você desabilitou o auto-discovery, adicione manualmente em `config/app.php`:

```
'providers' => [
    // ...
    SierraTecnologia\Cms\SierraTecnologiaCmsProvider::class,
],
```

### Configuração

[](#configuração)

O arquivo de configuração principal está em `config/cms.php`. Principais configurações:

```
return [
    // Analytics: 'google' ou 'internal'
    'analytics' => 'internal',

    // Prefixo de rotas do backend
    'backend-route-prefix' => 'cms',

    // Tema do frontend
    'frontend-theme' => 'default',

    // Tema do backend: 'standard' ou 'dark'
    'backend-theme' => 'standard',

    // Paginação padrão
    'pagination' => 24,

    // Módulos ativos
    'active-core-modules' => [
        'blog', 'menus', 'files', 'images',
        'pages', 'widgets', 'promotions',
        'events', 'faqs',
    ],

    // Idiomas suportados
    'languages' => [
        'en' => 'english',
        'pt' => 'portuguese',
        'es' => 'spanish',
    ],

    // Storage: 'local' ou 's3'
    'storage-location' => 'local',

    // Tamanho máximo de upload (bytes)
    'max-file-upload-size' => 6291456, // 6MB
];
```

---

Arquitetura e Estrutura Interna
-------------------------------

[](#arquitetura-e-estrutura-interna)

### Estrutura de Diretórios

[](#estrutura-de-diretórios)

```
src/
├── Assets/                   # Recursos estáticos (CSS, JS, imagens)
├── Console/                  # Comandos Artisan (8 comandos)
├── Controllers/              # Controllers do backend (18 controllers)
├── Facades/                  # Facades para serviços (6 facades)
├── Helpers/                  # Funções helpers (blade.php, general.php)
├── Middleware/               # Middleware custom (analytics)
├── Migrations/               # Migrações de banco (15 tabelas)
├── Models/                   # Modelos Eloquent (12 modelos)
├── Providers/                # Service Providers adicionais
├── Repositories/             # Padrão Repository (11 repositórios)
├── Requests/                 # Form Requests/Validações (10 requests)
├── Routes/                   # Definições de rotas (web.php, api.php)
├── Services/                 # Lógica de negócio (11 serviços + traits)
├── Templates/                # Templates para geração de código
├── Views/                    # Views Blade do backend (60+ views)
└── PublishedAssets/          # Assets publicáveis para o projeto
    ├── Config/               # Arquivo de configuração
    ├── Controllers/          # Controllers customizáveis
    ├── Middleware/           # Middleware customizável
    ├── Routes/               # Rotas customizáveis
    ├── Setup/                # Views de setup
    ├── Theme/                # Tema padrão
    └── Views/                # Views customizáveis

```

### Padrões Arquiteturais

[](#padrões-arquiteturais)

O SierraTecnologia CMS implementa uma arquitetura em camadas baseada no **Service-Repository Pattern** combinado com **MVC**:

```
┌─────────────────────────────────────────────────────────────┐
│                  PRESENTATION LAYER                          │
│  Controllers (PagesController, BlogController, etc.)         │
│  - Recebem requisições HTTP                                  │
│  - Delegam lógica para Services                              │
│  - Retornam Views ou JSON                                    │
└────────────────────────┬────────────────────────────────────┘
                         │
┌────────────────────────▼────────────────────────────────────┐
│                   APPLICATION LAYER                          │
│  Services (PageService, BlogService, ModuleService)         │
│  - Contêm lógica de negócio                                 │
│  - Usam Repositories para acesso a dados                    │
│  - Implementam Traits para reutilização                     │
└────────────────────────┬────────────────────────────────────┘
                         │
┌────────────────────────▼────────────────────────────────────┐
│                  DOMAIN LAYER                                │
│  Repositories (PageRepository, BlogRepository)              │
│  - Acesso a dados via Eloquent                              │
│  - Queries e filtros                                         │
│  Models (Page, Blog, Event, etc.)                           │
│  - Entidades do domínio                                      │
│  - Relacionamentos Eloquent                                 │
└────────────────────────┬────────────────────────────────────┘
                         │
┌────────────────────────▼────────────────────────────────────┐
│            INFRASTRUCTURE LAYER                              │
│  Eloquent ORM + Migrations + Database                       │
└─────────────────────────────────────────────────────────────┘

```

### Comunicação entre Camadas

[](#comunicação-entre-camadas)

**Fluxo típico de uma requisição (exemplo: criar página)**

```
1. POST /cms/pages
   ↓
2. PagesController@store
   - Valida com PagesRequest
   - Prepara dados
   ↓
3. PageRepository@store
   - parseBlocks() - extrai blocos dinâmicos
   - Processa hero_image
   - Define published_at
   ↓
4. Page Model (Eloquent)
   - Aplica regras de validação
   - Mutadores/Accessors
   - afterSaved() → cria Archive (histórico)
   ↓
5. Database INSERT
   ↓
6. Response: redirect + notification

```

### Convenções da Rica Soluções

[](#convenções-da-rica-soluções)

- **PSR-12**: Padrão de código rigorosamente seguido
- **Namespaces**: Sempre `SierraTecnologia\Cms\{Layer}\{Component}`
- **Nomenclatura**:
    - Controllers: `{Entity}Controller` (ex: `PagesController`)
    - Services: `{Entity}Service` (ex: `PageService`)
    - Repositories: `{Entity}Repository` (ex: `PageRepository`)
    - Models: `{Entity}` (ex: `Page`)
    - Requests: `{Entity}Request` (ex: `PagesRequest`)
- **Traits**: Para funcionalidades compartilhadas (`MenuServiceTrait`, `ModuleServiceTrait`)
- **Facades**: Para acesso simplificado (`Cms::`, `PageService::`)

---

Principais Módulos e Funcionalidades
------------------------------------

[](#principais-módulos-e-funcionalidades)

### 1. **Pages (Páginas)**

[](#1-pages-páginas)

Gerenciamento completo de páginas estáticas e dinâmicas.

**Funcionalidades:**

- ✏️ Editor WYSIWYG (Redactor)
- 📋 Templates dinâmicos
- 🧱 Blocos customizáveis (JSON)
- 🔍 SEO (title, description, keywords)
- 📅 Publicação agendada
- 🖼️ Imagem hero/destaque
- 📜 Histórico de versões
- 🌐 Multilíngue

**Exemplo de uso (src/Controllers/PagesController.php:145):**

```
// No Controller
use SierraTecnologia\Cms\Repositories\PageRepository;

$pageRepo = app(PageRepository::class);

// Criar página
$page = $pageRepo->store([
    'title' => 'Sobre Nós',
    'url' => 'sobre-nos',
    'entry' => 'Nossa História...',
    'is_published' => true,
    'published_at' => now(),
    'seo_description' => 'Conheça nossa história',
    'seo_keywords' => 'sobre, empresa, história',
]);

// Buscar por URL
$page = $pageRepo->findPagesByURL('sobre-nos');

// Listar publicadas
$pages = $pageRepo->published();
```

**Rotas:**

```
GET    /cms/pages           → PagesController@index
GET    /cms/pages/create    → PagesController@create
POST   /cms/pages           → PagesController@store
GET    /cms/pages/{id}/edit → PagesController@edit
PATCH  /cms/pages/{id}      → PagesController@update
DELETE /cms/pages/{id}      → PagesController@destroy
POST   /cms/pages/search    → PagesController@search

```

---

### 2. **Blog (Artigos/Posts)**

[](#2-blog-artigosposts)

Sistema completo de blog com tags, SEO e publicação agendada.

**Funcionalidades:**

- 📝 Posts com editor rico
- 🏷️ Sistema de tags
- 🔍 SEO otimizado
- 📅 Publicação agendada
- 🖼️ Imagem de destaque
- 📊 RSS Feed
- 🌐 Multilíngue

**Exemplo de uso (src/Controllers/BlogController.php:98):**

```
use SierraTecnologia\Cms\Repositories\BlogRepository;

$blogRepo = app(BlogRepository::class);

// Criar post
$post = $blogRepo->store([
    'title' => 'Laravel 10 - Novidades',
    'url' => 'laravel-10-novidades',
    'entry' => 'O Laravel 10 trouxe várias melhorias...',
    'tags' => 'laravel,php,framework',
    'is_published' => true,
    'published_at' => now(),
]);

// Listar posts publicados
$posts = $blogRepo->published();
```

**Blade Helpers:**

```
{{-- Listar últimos posts --}}
@foreach(app('SierraTecnologia\Cms\Repositories\BlogRepository')->published()->take(5) as $post)

        {{ $post->title }}
        {{ $post->seo_description }}
        Ler mais

@endforeach
```

---

### 3. **Menus (Navegação)**

[](#3-menus-navegação)

Sistema de menus dinâmicos com ordenação (src/Controllers/MenuController.php:67).

**Funcionalidades:**

- 🧭 Estrutura hierárquica
- 🔢 Ordenação customizável
- 🔗 Links internos/externos
- 🌐 Multilíngue

**Blade Helpers:**

```
{{-- Renderizar menu --}}
@menu('main')

{{-- Com view customizada --}}
@menu('main', 'partials.navigation')
```

---

### 4. **Images (Galeria de Imagens)**

[](#4-images-galeria-de-imagens)

Sistema completo de upload e gerenciamento (src/Controllers/ImagesController.php:213).

**Blade Helpers:**

```
{{-- Renderizar imagem --}}
@image('produto-destaque.jpg', 'alt text')

{{-- Listar imagens por tag --}}
@images('portfolio')
```

---

### 5. **Widgets (Componentes Reutilizáveis)**

[](#5-widgets-componentes-reutilizáveis)

Blocos de conteúdo reutilizáveis via slug (src/Controllers/WidgetsController.php:45).

```
{{-- Renderizar widget --}}
@widget('footer-contato')
```

---

### 6. **Outros Módulos**

[](#6-outros-módulos)

- **Events**: Calendário de eventos (src/Controllers/EventController.php:72)
- **Files**: Gerenciamento de arquivos (src/Controllers/FilesController.php:165)
- **FAQs**: Perguntas frequentes (src/Controllers/FAQController.php:34)
- **Promotions**: Promoções e destaques (src/Controllers/PromotionsController.php:56)

---

Uso Prático
-----------

[](#uso-prático)

### Instalação em Projeto Laravel Existente

[](#instalação-em-projeto-laravel-existente)

**Cenário**: Você tem um projeto Laravel de e-commerce e quer adicionar blog, páginas institucionais e FAQs.

#### Passo 1: Instalar o CMS

[](#passo-1-instalar-o-cms)

```
composer require sierratecnologia/cms
php artisan vendor:publish --provider="SierraTecnologia\Cms\SierraTecnologiaCmsProvider"
php artisan migrate
php artisan cms:setup
```

#### Passo 2: Configurar módulos ativos

[](#passo-2-configurar-módulos-ativos)

Em `config/cms.php`:

```
'active-core-modules' => [
    'blog',
    'pages',
    'faqs',
],
```

#### Passo 3: Acessar o painel admin

[](#passo-3-acessar-o-painel-admin)

```
http://seusite.com/cms

```

#### Passo 4: Integrar no frontend

[](#passo-4-integrar-no-frontend)

```
// app/Http/Controllers/PageController.php
public function show($url)
{
    $pageRepo = app(\SierraTecnologia\Cms\Repositories\PageRepository::class);
    $page = $pageRepo->findPagesByURL($url);

    if (!$page) {
        abort(404);
    }

    return view('pages.show', compact('page'));
}
```

```
{{-- resources/views/pages/show.blade.php --}}
@extends('layouts.app')

@section('title', $page->title)
@section('meta_description', $page->seo_description)

@section('content')
    {{ $page->title }}
    {!! $page->entry !!}
@endsection
```

---

Integração com o Ecossistema Rica Soluções
------------------------------------------

[](#integração-com-o-ecossistema-rica-soluções)

### Relação com Outras Bibliotecas

[](#relação-com-outras-bibliotecas)

O SierraTecnologia CMS integra-se perfeitamente com outras bibliotecas da Rica Soluções:

#### **sierratecnologia/builder**

[](#sierratecnologiabuilder)

- Geração automática de código
- Scaffolding de módulos
- CRUD generators

```
# Gerar CRUD completo
php artisan builder:crud Produto
```

#### **ricardosierra/translation**

[](#ricardosierratranslation)

- Sistema completo de tradução
- Suporte multilíngue
- Gestão de idiomas

```
// Models usam trait HasTranslations
$page->translate('pt')->title = 'Sobre Nós';
$page->translate('en')->title = 'About Us';
```

#### **ricardosierra/minify**

[](#ricardosierraminify)

- Minificação automática de CSS/JS
- Otimização de assets
- Cache de recursos

---

### Testes Automatizados

[](#testes-automatizados)

O CMS possui **cobertura completa de testes**:

```
# Executar todos os testes
composer test

# Com cobertura
composer test-coverage

# Apenas testes de feature
vendor/bin/phpunit --testsuite=Feature
```

---

Extensão e Customização
-----------------------

[](#extensão-e-customização)

### Como Criar Módulos Customizados

[](#como-criar-módulos-customizados)

O CMS oferece comandos para gerar módulos rapidamente:

#### 1. Gerar módulo completo

[](#1-gerar-módulo-completo)

```
php artisan module:make Produto
```

Isso criará:

```
cms/modules/produto/
├── Controllers/
│   └── ProdutoController.php
├── Models/
│   └── Produto.php
├── Repositories/
│   └── ProdutoRepository.php
├── Requests/
│   └── ProdutoRequest.php
├── Routes/
│   └── web.php
├── Views/
│   ├── index.blade.php
│   ├── create.blade.php
│   └── edit.blade.php
└── migrations/
    └── create_produtos_table.php

```

#### 2. Gerar apenas CRUD

[](#2-gerar-apenas-crud)

```
php artisan module:crud Categoria
```

#### 3. Gerar tema

[](#3-gerar-tema)

```
php artisan theme:generate MeuTema
```

Em `config/cms.php`:

```
'frontend-theme' => 'MeuTema',
```

---

Ferramentas de Desenvolvimento
------------------------------

[](#ferramentas-de-desenvolvimento)

### Configuração de Qualidade de Código

[](#configuração-de-qualidade-de-código)

O projeto está configurado com ferramentas profissionais de verificação:

#### **PHPCS (PHP\_CodeSniffer)** - PSR-12

[](#phpcs-php_codesniffer---psr-12)

```
# Verificar código
composer cs
# ou
vendor/bin/phpcs

# Corrigir automaticamente
composer cs-fix
# ou
vendor/bin/phpcbf
```

**Configuração**: `phpcs.xml`

---

#### **PHPStan** - Análise Estática (Nível 5)

[](#phpstan---análise-estática-nível-5)

```
# Analisar código
composer stan
# ou
vendor/bin/phpstan analyse
```

**Configuração**: `phpstan.neon`

---

#### **PHPUnit** - Testes Automatizados

[](#phpunit---testes-automatizados)

```
# Executar testes
composer test

# Com cobertura HTML
composer test-coverage
```

**Configuração**: `phpunit.xml`

---

#### **GitHub Actions** - CI/CD

[](#github-actions---cicd)

O pipeline automatizado executa:

✅ Testes em PHP 7.4, 8.0, 8.1, 8.2 ✅ Testes em Laravel 7.x, 8.x, 9.x, 10.x ✅ PHPCS (PSR-12) ✅ PHPStan (Nível 5) ✅ Security Check ✅ Cobertura de testes (Codecov)

**Arquivo**: `.github/workflows/ci.yml`

---

### Scripts Composer Úteis

[](#scripts-composer-úteis)

```
# Verificar tudo de uma vez
composer check
```

---

### Comandos Artisan do CMS

[](#comandos-artisan-do-cms)

```
# Setup inicial
php artisan cms:setup

# Gerar chaves de criptografia
php artisan cms:keys

# Módulos
php artisan module:make {name}         # Criar módulo completo
php artisan module:crud {name}         # Criar CRUD
php artisan module:composer {name}     # Gerar composer.json
php artisan module:publish             # Publicar módulo

# Temas
php artisan theme:generate {name}      # Criar tema
php artisan theme:publish              # Publicar tema
php artisan theme:link                 # Criar symlink
```

---

Guia de Contribuição
--------------------

[](#guia-de-contribuição)

### Como Contribuir

[](#como-contribuir)

Contribuições são muito bem-vindas! Siga os passos:

#### 1. Fork e Clone

[](#1-fork-e-clone)

```
git clone https://github.com/SEU-USUARIO/CMS.git
cd CMS
composer install
```

#### 2. Criar Branch

[](#2-criar-branch)

```
git checkout -b feature/minha-funcionalidade
```

#### 3. Fazer Mudanças

[](#3-fazer-mudanças)

- Escreva código limpo e documentado
- Siga PSR-12
- Adicione testes
- Atualize documentação se necessário

#### 4. Executar Verificações

[](#4-executar-verificações)

```
composer check
```

#### 5. Commit e Push

[](#5-commit-e-push)

```
git add .
git commit -m "feat: adiciona suporte a vídeos no blog"
git push origin feature/minha-funcionalidade
```

#### 6. Abrir Pull Request

[](#6-abrir-pull-request)

- Descreva suas mudanças
- Referencie issues relacionadas
- Aguarde code review

---

### Padrões de Commit

[](#padrões-de-commit)

Use **Conventional Commits**:

```
feat: adiciona nova funcionalidade
fix: corrige bug
refactor: refatora código sem mudar funcionalidade
docs: atualiza documentação
test: adiciona ou corrige testes
style: mudanças de formatação
chore: tarefas de manutenção
perf: melhoria de performance
ci: mudanças no CI/CD

```

---

### Code Review

[](#code-review)

Toda contribuição passa por code review:

✅ Código segue PSR-12 ✅ Testes passam ✅ PHPStan nível 5 passa ✅ Cobertura de testes adequada ✅ Documentação atualizada ✅ Sem breaking changes não documentadas

---

License
-------

[](#license)

SierraTecnologia CMS is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT)

Redactor License
----------------

[](#redactor-license)

SierraTecnologia has an OEM licence for the use of Redactor in the SierraTecnologia CMS package. You are fully welcome to use SierraTecnologia CMS package and incorporate it into any apps you build, you are permitted to offer those apps as SaaS or other products. However, you are not entitle to strip out parts of Redactor and resell them, please see this [license](https://imperavi.com/redactor/license/) for more information

Disclaimer
----------

[](#disclaimer)

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

---

About SierraTecnologia
----------------------

[](#about-sierratecnologia)

**SierraTecnologia** is a software development company specializing in Laravel-based solutions for enterprise applications. We are part of the **Rica Soluções** ecosystem, providing high-quality, maintainable, and scalable packages for the Laravel community.

### Our Mission

[](#our-mission)

To empower developers with robust, well-architected components that accelerate development while maintaining code quality and best practices.

### Our Packages

[](#our-packages)

- **CMS**: Content Management System for Laravel
- **Builder**: Code generation and scaffolding tools
- **Translation**: Comprehensive internationalization system
- **Minify**: Asset optimization and minification
- **API Base**: RESTful API foundation
- **GraphQL Laravel**: GraphQL integration
- And many more...

### Contact

[](#contact)

- **Website**:
- **Documentation**:
- **Gitter**: [Join the chat](https://gitter.im/SierraTecnologiaInc/CMS)
- **GitHub Issues**: [Report a bug](https://github.com/SierraTecnologia/CMS/issues)
- **Email**:

### Authors

[](#authors)

- **Matt Lantz** ([@mattylantz](https://twitter.com/mattylantz)) - Original creator
- **Ricardo Rebello Sierra** - Lead maintainer and Rica Soluções architect

### Contributing

[](#contributing)

We welcome contributions from the community. Please see our [contribution guidelines](#guia-de-contribui%C3%A7%C3%A3o) above.

---

**Made with ❤️ by SierraTecnologia &amp; Rica Soluções**

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance47

Moderate activity, may be stable

Popularity7

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 93.8% 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 ~55 days

Recently: every ~89 days

Total

9

Last Release

2087d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c0a11577f9e4f7db7533432c22786439b3155ec7bc06be9760be7260c4ce1e0d?d=identicon)[ricardosierra](/maintainers/ricardosierra)

---

Top Contributors

[![mlantz](https://avatars.githubusercontent.com/u/1065551?v=4)](https://github.com/mlantz "mlantz (625 commits)")[![ricardosierra](https://avatars.githubusercontent.com/u/5499444?v=4)](https://github.com/ricardosierra "ricardosierra (18 commits)")[![joshua-p-williams](https://avatars.githubusercontent.com/u/10605614?v=4)](https://github.com/joshua-p-williams "joshua-p-williams (5 commits)")[![ericvanjohnson](https://avatars.githubusercontent.com/u/89408?v=4)](https://github.com/ericvanjohnson "ericvanjohnson (3 commits)")[![jonathan-bird](https://avatars.githubusercontent.com/u/1510001?v=4)](https://github.com/jonathan-bird "jonathan-bird (2 commits)")[![Nimmer](https://avatars.githubusercontent.com/u/7483092?v=4)](https://github.com/Nimmer "Nimmer (2 commits)")[![jonasof](https://avatars.githubusercontent.com/u/5995209?v=4)](https://github.com/jonasof "jonasof (1 commits)")[![leorossi](https://avatars.githubusercontent.com/u/604220?v=4)](https://github.com/leorossi "leorossi (1 commits)")[![mnwalker](https://avatars.githubusercontent.com/u/9032080?v=4)](https://github.com/mnwalker "mnwalker (1 commits)")[![podluzhnyi](https://avatars.githubusercontent.com/u/2003925?v=4)](https://github.com/podluzhnyi "podluzhnyi (1 commits)")[![aimeos](https://avatars.githubusercontent.com/u/8647429?v=4)](https://github.com/aimeos "aimeos (1 commits)")[![sgrayme](https://avatars.githubusercontent.com/u/1657059?v=4)](https://github.com/sgrayme "sgrayme (1 commits)")[![claude](https://avatars.githubusercontent.com/u/81847?v=4)](https://github.com/claude "claude (1 commits)")[![CoolGoose](https://avatars.githubusercontent.com/u/51180?v=4)](https://github.com/CoolGoose "CoolGoose (1 commits)")[![danrovito](https://avatars.githubusercontent.com/u/8322674?v=4)](https://github.com/danrovito "danrovito (1 commits)")[![galenskap](https://avatars.githubusercontent.com/u/4310921?v=4)](https://github.com/galenskap "galenskap (1 commits)")[![gregolai](https://avatars.githubusercontent.com/u/936372?v=4)](https://github.com/gregolai "gregolai (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/sierratecnologia-cms/health.svg)

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

###  Alternatives

[laravolt/avatar

Turn name, email, and any other string into initial-based avatar or gravatar.

2.0k5.4M31](/packages/laravolt-avatar)[beyondcode/laravel-favicon

Create dynamic favicons based on your environment settings.

37345.5k](/packages/beyondcode-laravel-favicon)[napp/xray-laravel

AWS X-Ray for Laravel applications.

61407.3k](/packages/napp-xray-laravel)[helgesverre/extractor

AI-Powered Data Extraction for your Laravel application.

22128.0k](/packages/helgesverre-extractor)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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