Initial commit: entry point and project structure

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Egor Isaev 2026-04-27 15:28:15 +03:00
commit e672216b8a
4 changed files with 83 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
vendor/
.env
.mcp.json
storage/logs/*.log
storage/cache/*
*.DS_Store

6
.htaccess Normal file
View File

@ -0,0 +1,6 @@
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

61
CLAUDE.md Normal file
View File

@ -0,0 +1,61 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project
**Bicycle** — самописный PHP-фреймворк, разрабатываемый с нуля. Проект находится в стадии начальной разработки.
## Предполагаемая архитектура
Фреймворк строится по принципу **MVC + Service Container**:
- `System/Core/` — ядро: Application, загрузка конфига, бутстрап
- `System/Http/` — Request, Response, обработка HTTP-цикла
- `System/Router/` — маршрутизация (регистрация роутов, диспатчинг)
- `System/Container/` — DI-контейнер (bind/make/singleton)
- `System/Middleware/` — цепочка middleware (Pipeline)
- `System/View/` — шаблонизатор
- `System/Database/` — QueryBuilder / ORM
- `System/Console/` — CLI-команды
- `System/Exceptions/` — обработчики ошибок
- `config/` — конфигурационные файлы (.php массивы)
- `index.php` — точка входа
- `bin/bicycle` — CLI-точка входа
## Когда структура будет создана
### Установка зависимостей
```bash
composer install
```
### Запуск встроенного сервера
```bash
php -S localhost:8000 -t public
```
### Запуск тестов
```bash
./vendor/bin/phpunit
# один тест:
./vendor/bin/phpunit tests/Unit/RouterTest.php
```
### Линтер / статический анализ
```bash
./vendor/bin/phpcs --standard=PSR12 src/
./vendor/bin/phpstan analyse src --level=5
```
### CLI фреймворка
```bash
php bin/bicycle <command>
```
## Соглашения
- PHP 8.1+, строгая типизация (`declare(strict_types=1)`)
- Стандарт кода — PSR-12
- Пространство имён корня: `Bicycle\`
- Автозагрузка через Composer PSR-4: `"Bicycle\\": "src/"`

10
index.php Normal file
View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
define('BASE_PATH', __DIR__);
require_once BASE_PATH . '/vendor/autoload.php';
$app = new \Bicycle\Core\Application(BASE_PATH);
$app->run();