PHPackages                             kulebyaka1337/gcd - 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. [CLI &amp; Console](/categories/cli)
4. /
5. kulebyaka1337/gcd

ActiveProject[CLI &amp; Console](/categories/cli)

kulebyaka1337/gcd
=================

Console GCD game

v1.0(4mo ago)02MITPHPPHP &gt;=8.0

Since Feb 5Pushed 4mo agoCompare

[ Source](https://github.com/Kulebyaka1337/gcd)[ Packagist](https://packagist.org/packages/kulebyaka1337/gcd)[ RSS](/packages/kulebyaka1337-gcd/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (2)Versions (2)Used By (0)

Лабораторная работа 1. Создание консольного PHP-приложения с подключением сторонних пакетов и публикацией на Packagist.
=======================================================================================================================

[](#лабораторная-работа-1-создание-консольного-php-приложения-с-подключением-сторонних-пакетов-и-публикацией-на-packagist)

GCD Console Game (Наибольший общий делитель)
============================================

[](#gcd-console-game-наибольший-общий-делитель)

Консольная игра на языке PHP для вычисления наибольшего общего делителя (НОД) двух чисел.

Проект выполнен в рамках лабораторной работы по дисциплине
**«Технологии разработки серверных приложений на PHP»**.

---

Описание
--------

[](#описание)

Игроку предлагаются два случайных целых числа.
Необходимо вычислить и ввести их наибольший общий делитель (НОД).

После ввода ответа программа сообщает:

- правильный ли был ответ;
- правильное значение НОД.

Информация о каждой игре сохраняется в базе данных:

- имя игрока;
- предложенные числа;
- ответ игрока;
- правильный ответ;
- результат игры;
- дата и время.

---

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

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

- PHP **8.0** или выше
- Composer

---

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

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

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

```
git clone https://github.com/Kulebyaka1337/gcd.git
cd gcd
```

и установить зависимости:

```
composer install
```

---

Запуск игры
-----------

[](#запуск-игры)

Запуск из корня проекта:

```
php bin/GCD.php
```

Запуск глобально (через Packagist)
----------------------------------

[](#запуск-глобально-через-packagist)

1. Установить пакет глобально: `composer global require kulebyaka1337/gcd`При конфликте зависимостей можно установить разово так: `composer global require kulebyaka1337/gcd -W`
2. Узнать путь к глобальному `bin`: `composer global config bin-dir --absolute`
3. Добавить этот путь в `PATH`
4. Запускать командой: `gcd`

Packagist
---------

[](#packagist)

Пакет: `kulebyaka1337/gcd`Ссылка: После запуска следуйте инструкциям в консоли.

---

Структура проекта
-----------------

[](#структура-проекта)

```
GCD/
├── bin/
│   └── GCD.php        # Запускной файл
├── src/
│   ├── Controller.php
│   ├── Game.php
│   ├── View.php
│   └── Database.php
├── vendor/            # Зависимости (не хранится в репозитории)
├── composer.json
├── README.md
└── specification.md

```

---

Архитектура
-----------

[](#архитектура)

Проект использует упрощённый паттерн **MV-**:

- **Controller** — управление логикой игры
- **View** — вывод информации и ввод данных
- **Game** — игровая логика (алгоритм НОД)
- **Database** — работа с базой данных

Используется автозагрузка Composer:

- PSR-4 — для классов
- autoload.files — для функций

---

Хранение данных
---------------

[](#хранение-данных)

Для хранения результатов используется **SQLite**. Файл базы данных создаётся автоматически при первом запуске и не добавляется в репозиторий.

---

Стандарты кодирования
---------------------

[](#стандарты-кодирования)

Код соответствует стандартам:

- **PSR-1**
- **PSR-12**

Проверка выполняется с помощью PHP\_CodeSniffer:

```
vendor/bin/phpcs --standard=PSR12 src bin
```

---

Используемые библиотеки
-----------------------

[](#используемые-библиотеки)

- [`wp-cli/php-cli-tools`](https://github.com/wp-cli/php-cli-tools) — ввод и вывод данных в CLI
- `squizlabs/php_codesniffer` — проверка стандартов кодирования (dev)

---

Автор
-----

[](#автор)

**Sergeev S.A.**GitHub: `Kulebyaka1337`

---

Лицензия
--------

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

MIT

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance74

Regular maintenance activity

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity39

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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

148d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/197366568?v=4)[Sergeev\_SA](/maintainers/Kulebyaka1337)[@Kulebyaka1337](https://github.com/Kulebyaka1337)

---

Top Contributors

[![Kulebyaka1337](https://avatars.githubusercontent.com/u/197366568?v=4)](https://github.com/Kulebyaka1337 "Kulebyaka1337 (5 commits)")

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/kulebyaka1337-gcd/health.svg)

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

###  Alternatives

[wp-cli/wp-cli

WP-CLI framework

5.1k19.1M407](/packages/wp-cli-wp-cli)[indatus/dispatcher

Schedule your artisan commands within your application's source code

1.1k914.2k2](/packages/indatus-dispatcher)

PHPackages © 2026

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