PHPackages                             sashagm/themes - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. sashagm/themes

ActiveLibrary[Testing &amp; Quality](/categories/testing)

sashagm/themes
==============

Наш пакет предоставляет удобный способ работы с мульти темами для вашего сайта. Вы можете легко создавать и изменять темы, а также управлять ими через наш интерфейс.

1.20.1(1y ago)051MITPHPPHP ^8.0

Since Apr 17Pushed 1y ago1 watchersCompare

[ Source](https://github.com/sashagm/themes)[ Packagist](https://packagist.org/packages/sashagm/themes)[ RSS](/packages/sashagm-themes/feed)WikiDiscussions master Synced 1mo ago

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

[![Laravel Logo](https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg)](https://laravel.com)

[![Total Downloads](https://camo.githubusercontent.com/25fe8633b7dd717fec0379d01697bef07ff6f407c5abf1af83f3f60b4d3d12f2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7361736861676d2f7468656d6573)](https://packagist.org/packages/sashagm/themes)[![Latest Stable Version](https://camo.githubusercontent.com/effc320494342677a804591e238e2399736f76b34b69fffdcad2122a4c535e69/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7361736861676d2f7468656d6573)](https://packagist.org/packages/sashagm/themes)[![License](https://camo.githubusercontent.com/519fa66b6085a88e0273322b2c7656f4c934a6ba4c9da6a662b3d86d9574b8f8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7361736861676d2f7468656d6573)](https://packagist.org/packages/sashagm/themes)[![Code size](https://camo.githubusercontent.com/0fe56abd9c62385ad0f4f605986e001acae6c804e1a5f31598d232d7992d11f8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f7361736861676d2f7468656d6573)](https://packagist.org/packages/sashagm/themes)[![Code size](https://camo.githubusercontent.com/3da5ded628fc7037711f79b4dd75e68ee656da71203d2cd7efc6837d190c09a0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f73746172732f7361736861676d2f7468656d6573)](https://packagist.org/packages/sashagm/themes)

[![PHP Version](https://camo.githubusercontent.com/2d8db17638478a10e3f421691ab607acf7433b1838e8d27b729078b6d7ba95cd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253242382d626c7565)](https://www.php.net/)[![Laravel Version](https://camo.githubusercontent.com/ac7bcd56dc398c4b976fabb8678d298e432a18e54308f82fc0cbdc09b42a3a4c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d25324231302d726564)](https://laravel.com/)

Управление темами сайта с помощью пакета для Laravel
----------------------------------------------------

[](#управление-темами-сайта-с-помощью-пакета-для-laravel)

Наш пакет предоставляет удобный способ работы с мульти темами для вашего сайта. Вы можете легко создавать и изменять темы, а также управлять ими через наш интерфейс. Вы можете быстро переключаться между темами выбрав любую из ваших добавленых вариантов.

### Оглавление:

[](#оглавление)

- [Требования](#%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
- [Установка](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
- [Использование](#%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
    - [Настройка маршрутов](#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%BE%D0%B2)
    - [Добавление ассетов](#%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B0%D1%81%D1%81%D0%B5%D1%82%D0%BE%D0%B2)
    - [Настройка рендора](#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%80%D0%B5%D0%BD%D0%B4%D0%BE%D1%80%D0%B0)
    - [Права доступа](#%D0%BF%D1%80%D0%B0%D0%B2%D0%B0-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0)
    - [Кастомный гард](#%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B9-%D0%B3%D0%B0%D1%80%D0%B4)
    - [Получение данных](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)
    - [Способ вывода](#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0)
- [Дополнительные возможности](#%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8)
- [Тестирование](#%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
- [Лицензия](#%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F)

#### Требования

[](#требования)

Основные требования для установки и корректной работы:

- `PHP` &gt;= 8.0
- `Laravel` &gt;= 10.x || 11.x
- `Composer` &gt;= 2.4.x

#### Установка

[](#установка)

Для установки пакета необходимо выполнить команды:

- composer require sashagm/themes
- php artisan themes:install

#### Использование

[](#использование)

1. Для начала давайте определим нашу вспомогательную конфигурацию в `/config/custom.php`:

```
    'admin_prefix'      => 'admin', // Префикс для маршрутов

    'check'             => [

        'active'        => true, // True Разрешить проверку или false Пропускать проверку
        'guard'         => 'web', // Укажите через какой гард будет работать

        'save_colum'    => 'id', // Поле для группы/роли или прав
        'save_value'    => [
            1, 2, 3
        ], // добавляем массив значений

    ],
```

2. Вспомогательная конфигурация `/config/themes.php` будет автоматически пересобираться каждый раз при активации ативной темы. Её лучше не трогать и не изменять для корректной работы.
3. Настроить тему в соответствии с вашими потребностями.
4. Активируйте вашу тему.
5. Чтобы понять какая текущая тема установлена просто вызовете константу `Themes`.

#### Настройка маршрутов

[](#настройка-маршрутов)

Для удобства и группировки маршрутов можно добавить данный код в `/routes/web.php`. Данный код будет подключать файл маршрутов в зависимости от выбранной текущей темы.

```
if (Themes){ require __DIR__ ."/". Themes .".php"; }
```

#### Настройка рендора

[](#настройка-рендора)

Для контроллеров так же все просто настраивается, для метода рендора можно использовать такой подход: В данном случае подключит файл `Название темы/main/index.blade.php`.

```
    view(Themes.'main.index');
```

#### Добавление ассетов

[](#добавление-ассетов)

Если у вас используется один шаблон и несколько тем можно указать добавление ассетов:

```

```

#### Права доступа

[](#права-доступа)

Если необходимо ограничить доступ можно в конфигурации `/config/custom.php` изменить права доступа в разделе `check`:

```
    'check'             => [

        'active'        => true, // True Разрешить проверку или false Пропускать проверку
        'guard'         => 'web', // Укажите через какой гард будет работать

        'save_colum'    => 'id', // Поле для группы/роли или прав
        'save_value'    => [
            1, 2, 3
        ], // добавляем массив значений

    ],
```

Добавляем массив с значениями для разных вариаций. Например для данного примера показано что пользователи с id `1,2,3` имеют права доступа. Так же можно указать не id а roles, тогда можно настроить на группы/роли пользователей например `Админ, Модер, Редактор`.

#### Кастомный гард

[](#кастомный-гард)

Если необходимо использовать кастомный гард можно в конфигурации `/config/custom.php` изменить в разделе `check` за это отвечает параметр `guard` по дефолту настроен на `web` и возвращает текущего аутентифицированного пользователя для стандартной охраны web. Это используется для аутентификации пользователей, которые входят через веб-интерфейс.

Если указать кастомный гард то будет возвращать текущего аутентифицированного пользователя для охраны с именем кастомного гарда. Охрана с именем кастомного гарда может быть настроена в файле конфигурации Laravel для использования другой базы данных или другой модели пользователя.

Таким образом можно изменять подходящий гард для проверки прав доступа для Middleware тем.

#### Получение данных

[](#получение-данных)

Метод `getActiveThemeTitle()` возвращает заголовок текущей активной темы, если она существует.

Метод `getActiveThemeDescription()` возвращает описание текущей активной темы, если она существует.

Метод `getThemeInfo()` возвращает общую информацию о текущей активной теме, включая заголовок, описание, автора и версию.

Для вызова этих методов можно использовать следующий код:

```
// получить заголовок текущей активной темы
$title = Themes::getActiveThemeTitle();

// получить описание текущей активной темы
$description = Themes::getActiveThemeDescription();

// получить общую информацию о текущей активной теме
$info = Themes::getThemeInfo();
```

Здесь мы используем статические методы модели Themes, чтобы получить нужную информацию о текущей активной теме. Для каждого метода мы вызываем соответствующий статический метод и сохраняем результат в переменную.

#### Способ вывода

[](#способ-вывода)

Теперь вы можете дополнительно использовать варианты вызовов: `Themes`, `$app->themes()`, `$app->themes->get()` для получения текущей темы.

#### Дополнительные возможности

[](#дополнительные-возможности)

Наш пакет предоставляет ряд дополнительных возможностей, которые могут быть полезны при работе с темами:

- `php artisan themes:install` - Данная команда установит все необходимые компоненты пакета (Управление темами).
- `php artisan themes:create` - Данная команда создаст описание новой темы для сайта.
- `php artisan themes:delete {id}` - Данная команда удалит тему сайта.'.
- `php artisan themes:get {id}` - Данная команда выведет информацию о тему сайта.

#### Тестирование

[](#тестирование)

Для проверки работоспособности можно выполнить специальную команду:

- ./vendor/bin/phpunit --configuration phpunit.xml

#### Лицензия

[](#лицензия)

Themes - это программное обеспечение с открытым исходным кодом, лицензированное по [MIT license](LICENSE.md).

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 97.5% 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 ~14 days

Recently: every ~76 days

Total

36

Last Release

614d ago

PHP version history (2 changes)1.0.0PHP ^7.3|^8.0

1.5.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/6ed652aeb98c0dac110b4fc109d51f62f81f4975ecd85f6db6a5e35486dfc930?d=identicon)[sashagm](/maintainers/sashagm)

---

Top Contributors

[![example123](https://avatars.githubusercontent.com/u/87628?v=4)](https://github.com/example123 "example123 (39 commits)")[![sashagm](https://avatars.githubusercontent.com/u/74922473?v=4)](https://github.com/sashagm "sashagm (1 commits)")

---

Tags

laravellaravel-middlewarelaravel-packagelaravel-themesphpphpunit

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/sashagm-themes/health.svg)

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

###  Alternatives

[magento/magento2-functional-testing-framework

Magento2 Functional Testing Framework

15511.5M30](/packages/magento-magento2-functional-testing-framework)[ikwattro/guzzle-stereo

Guzzle Recorder for recording Request/Responses and replay them back in a Mock

782.6k1](/packages/ikwattro-guzzle-stereo)

PHPackages © 2026

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