PHPackages                             rubinski/bracket-validator - 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. rubinski/bracket-validator

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

rubinski/bracket-validator
==========================

simple bracket validator

00PHPCI passing

Since Feb 27Pushed 1y ago1 watchersCompare

[ Source](https://github.com/rubinskii88/bracket-validator)[ Packagist](https://packagist.org/packages/rubinski/bracket-validator)[ RSS](/packages/rubinski-bracket-validator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Bracket Validator
=================

[](#bracket-validator)

[![PHP Tests](https://github.com/rubinskii88/bracket-validator/actions/workflows/tests.yml/badge.svg)](https://github.com/rubinskii88/bracket-validator/actions)

**Bracket Validator** — консольная утилита на PHP для проверки корректности расстановки круглых скобок.

Возможности
===========

[](#возможности)

1. Проверяет корректность круглых скобок.
2. Работает через командную строку (CLI).
3. Написан на PHP 7.1+ и выше.
4. Покрыт юнит-тестами (PHPUnit).
5. Интеграция с GitHub Actions для автоматической проверки кода.
6. Для управления зависимостями используется Composer

Установка и запуск
==================

[](#установка-и-запуск)

1. Клонировать репозиторий

```
git clone https://github.com/rubinskii88/bracket-validator.git
```

2. Перейти в каталог

```
cd bracket-validator
```

3. Установить зависимости

```
composer install
```

3. Запустить утилиту

```
php run.php "(5 + 3) * (2 - 1)"
```

Если скобки расставлены правильно, программа выведет: `Correct brackets placement.`

Если есть ошибка в скобках, программа выведет: `Incorrect brackets placement.`

Запуск тестов (PHPUnit)
=======================

[](#запуск-тестов-phpunit)

Проверить работоспособность кода можно с помощью тестов:

```
php vendor/bin/phpunit tests
```

При успешном прохождении тестов появится примерно вот такое сообщение:

```
OK (5 tests, 12 assertions)
```

Если что-то сломано, PHPUnit сообщит об ошибке.

CI/CD с GitHub Actions
======================

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

Проект настроен для автоматического тестирования с GitHub Actions.Каждый раз при пуше изменений в GitHub тесты запускаются автоматически.

Примеры работы
==============

[](#примеры-работы)

Корректные выражения:

`php run.php "5 * (4 - 2)"`

`php run.php "(1 + 2) * (3 + 4)"`

Некорректные выражения:

`php run.php "5 * (4 - 2("`

`php run.php ")("`

Описание алгоритма работы
=========================

[](#описание-алгоритма-работы)

В качестве алгоритма проверки используется стек. Элементы добавляются и убираются по принципу "последний пришел — первый вышел" (LIFO).

Когда встречаю (, то кладу его в стек. Когда встречаю ), то проверяю: Если стек пуст — значит, нет соответствующей `(`, то есть ошибка. Если в стеке есть (, то убираю её, так как есть парная `)`.

В конце проверяю наличие незакрытых незакрытые `(`, если они есть, то в коде ошибка.

### Примеры работы алгоритма:

[](#примеры-работы-алгоритма)

**"5 \* (4 - 2)"**

( - добавляю в стек

) - убираю из стека

Стек пуст - ошибок нет

---

**"5 \* (4 - 2("**

( - добавляю в стек

Стек в конце не пуст - есть ошибка

###  Health Score

14

—

LowBetter than 2% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/0a123877b42b2cbf5dfb033c0a53467439e6e77cb5355473efbe99a88e0f3343?d=identicon)[rubinski](/maintainers/rubinski)

---

Top Contributors

[![rubinskii88](https://avatars.githubusercontent.com/u/22874203?v=4)](https://github.com/rubinskii88 "rubinskii88 (9 commits)")

### Embed Badge

![Health badge](/badges/rubinski-bracket-validator/health.svg)

```
[![Health](https://phpackages.com/badges/rubinski-bracket-validator/health.svg)](https://phpackages.com/packages/rubinski-bracket-validator)
```

###  Alternatives

[laravolt/semantic-form

Semantic UI form helpers

5213.0k2](/packages/laravolt-semantic-form)

PHPackages © 2026

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