{"id":15027587,"url":"https://github.com/tischmann/atlantis","last_synced_at":"2026-01-28T05:20:53.681Z","repository":{"id":65916294,"uuid":"566134877","full_name":"tischmann/atlantis","owner":"tischmann","description":"Простой и быстрый MVC фрэймворк","archived":false,"fork":false,"pushed_at":"2024-10-31T08:38:23.000Z","size":8703,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T20:44:06.158Z","etag":null,"topics":["framework","mvc","php","php81"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tischmann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-15T03:05:10.000Z","updated_at":"2024-10-31T08:38:27.000Z","dependencies_parsed_at":"2023-12-28T05:23:52.063Z","dependency_job_id":"4970a694-fa29-46ea-81c8-93b3b978d1d4","html_url":"https://github.com/tischmann/atlantis","commit_stats":{"total_commits":180,"total_committers":2,"mean_commits":90.0,"dds":0.005555555555555536,"last_synced_commit":"002877ad37190606f50fb48f9f4d4de4f04dec8d"},"previous_names":[],"tags_count":12,"template":true,"template_full_name":null,"purl":"pkg:github/tischmann/atlantis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tischmann%2Fatlantis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tischmann%2Fatlantis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tischmann%2Fatlantis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tischmann%2Fatlantis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tischmann","download_url":"https://codeload.github.com/tischmann/atlantis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tischmann%2Fatlantis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28840088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T02:10:51.810Z","status":"ssl_error","status_checked_at":"2026-01-28T02:10:50.806Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","mvc","php","php81"],"created_at":"2024-09-24T20:06:43.834Z","updated_at":"2026-01-28T05:20:53.667Z","avatar_url":"https://github.com/tischmann.png","language":"PHP","readme":"# Atlantis\n\nAtlantis — это простой и легкий MVC PHP-фреймворк.\n\nОн разработан, чтобы быть простым в использовании и легким в освоении.\n\nОн также спроектирован таким образом, чтобы его можно было легко расширять и настраивать.\n\nЭто отличный фреймворк как для новичков, так и для экспертов.\n\n# Системные требования\n\nOS: Linux\n\nPHP: 8.2+ (FPM)\n\nMySQL: 8.0+ (Рекомендуется)\n\nNginx: 1.18.0+\n\n## Структура файловой системы\n\n/.env — файл окружения\n\n/.gitignore — файл исключений Git\n\n/README.md — файл описания\n\n/app — директория приложения\n\n/app/Database — директория базы данных\n\n/app/Controllers — директория контроллеров\n\n/app/Models — директория моделей\n\n/app/Views — директория представлений\n\n/bootstrap — директория загрузки\n\n/bootstrap/app.php — файл загрузки приложения\n\n/bootstrap/config.php — файл конфигурации приложения\n\n/bootstrap/require.php — файл зависимостей приложения\n\n/bootstap/routes.php — файл маршрутизации приложения\n\n/src — директория ядра\n\n/lang — директория языков\n\n/public — директория публичных файлов\n\n/public/index.php — файл точки входа\n\n/public/app.js — главный файл JavaScript\n\n/public/pwa.js — файл Progressive Web App\n\n/public/app.css — главный файл CSS\n\n/routes — директория маршрутов\n\n/private.pem - приватный ключ\n\n/public.pem - публичный ключ\n\n## Настройка\n\n### Настройка окружения\n\nAPP_ID — идентификатор приложения (уникальные для каждого приложения)\n\nAPP_TIMEZONE — часовой пояс приложения (по умолчанию UTC)\n\nAPP_COOKIE_PATH — путь куки (по умолчанию /)\n\nAPP_COOKIE_HTTP_ONLY — куки доступны только через HTTP (по умолчанию 1)\n\nAPP_USE_ONLY_COOKIES — использовать только куки (по умолчанию 1)\n\nAPP_COOKIE_SECURE — использовать защищенные куки (по умолчанию 1)\n\nAPP_USE_STRICT_MODE — использовать строгий режим (по умолчанию 1)\n\nAPP_COOKIE_SAMESITE — использовать строгий режим куки (по умолчанию Strict)\n\nAPP_USE_TRANS_SID — использовать SID в куках (по умолчанию 0)\n\nAPP_CACHE_LIMITER — лимитер кэша (по умолчанию nocache)\n\nAPP_SID_LENGTH — длина SID (по умолчанию 128)\n\nAPP_HASH_FUNCTION — функция хеширования (по умолчанию sha256)\n\nAPP_LOCALE — локаль приложения (ru, en, ...)\n\nAPP_TITLE — заголовок приложения\n\nAPP_DESCR — описание приложения\n\nDB_TYPE — тип базы данны\n\nDB_HOST — хост базы данных\n\nDB_PORT — порт базы данных\n\nDB_NAME — имя базы\n\nDB_CHARSET — кодировка базы данных\n\nDB_USERNAME — пользователь базы данных\n\nDB_PASSWORD — пароль базы данных\n\nMEMCACHED_HOST — хост Memcached\n\nMEMCACHED_PORT — порт Memcached\n\n## CSRF защита\n\nДля защиты от CSRF атак используется специальный токен.\n\nТокен генерируется при каждом запросе и хранится в сессии.\n\nДля генерации токена в форме используется шаблон {{csrf}}.\n\nДля вывода значения токена CSRF используется метод: {{csrf-token}}.\n\nДля проверки токенов используется метод:\n\n```php\ncsrf_verify();\n```\n\nВ качестве параметра передается объект запроса.\n\nМетод не возвращает никаких значений, но при несовпадении токенов выбрасывает исключение.\n\nПосле верификации токенов, они удаляются из сессии.\n\n## Роутинг\n\nРоутинг осуществляется в файле /bootstrap/routes.php.\n\nМаршруты задаются в директории /routes в виде файлов с расширением .php.\n\n### Пример маршрута\n\n```php\nRouter::add(\n    new Route(\n        controller: new Controller(),\n        path: 'path',\n        action: 'action',\n        method: 'GET'\n    )\n);\n```\n\n### Параметры маршрута\n\nПеременные, переданные в маршруте, доступны в контроллере через свойство route, являющеся экземпляром класса Route.\n\nПример:\n\n```php\nclass SomeController extends Controller\n{\n    public function someAction()\n    {\n        $args = $this-\u003eroute-\u003eargs();\n    }\n}\n```\n\n### Параметры запроса\n\nПараметры запроса доступны в контроллере экземпляр класса Request.\n\nПример:\n\n```php\nclass SomeController extends Controller\n{\n    public function someAction()\n    {\n        $request = Request::instance();\n\n        $post = $request-\u003epost();\n\n        $get = $request-\u003eget();\n\n        $input = $request-\u003einput();\n\n        $headers = $request-\u003eheaders();\n\n        $request = $request-\u003erequest();\n    }\n}\n```\n\n## Шаблонизатор представлений\n\nШаблоны представлений хранятся в директории /app/Views и имеют расширение .php.\n\n### Структура шаблонов\n\n#### Переменные окружения\n\nДля передачи переменных в шаблон используется метод: {{env=VARIABLE_NAME}}.\n\nРегистр переменных имеет значение.\n\nПример:\n\n```html\n\u003ctitle\u003e{{env=APP_TITLE}}\u003c/title\u003e\n```\n\n#### Локализация\n\nДля локализации используется метод: {{lang=key_name}}\n\nПример:\n\n```html\n\u003ch1\u003e{{lang=hello_world}}\u003c/h1\u003e\n```\n\nЛокализации хранятся в директории /locales.\n\nКаждая локализация хранится в отдельном файле с названием локали и расширением .php.\n\nНаприер: /locales/ru.php - русская локализация.\n\nФайлы локализации возвращают массив с ключами и значениями.\n\nКлючи приводятся к нижнему регистру и могут содержать символы: a-z, 0-9, \\_.\n\nПример:\n\n```php\n\u003c?php\nreturn [\n    'hello_world' =\u003e 'Привет, мир!'\n];\n```\n\nФайлов локализации может быть несколько, они будут объединены в один массив.\n\n#### Пагинация\n\nДля вывода пагинации используется метод: {{pagination}}\n\nТакже требуется передать в шаблон переменную с именем pagination, содержащую экземпляр класса Pagination().\n\n#### Переменные\n\nДля вывода строковых переменных используется метод: {{var_name}}.\n\nВсе переменные должны быть переданы в шаблон при объявлении представления.\n\nПример:\n\n```php\nnew Template(\n    'template_name',\n    [\n        'var_name' =\u003e 'Привет, мир!',\n    ]\n);\n```\n\n## База данных\n\n### Структура таблиц\n\nСтруктура таблиц хранится в папке: /app/Database.\n\nВ папке находятся файлы с именами таблиц и расширением .php.\n\n### Создание\n\nДля создания таблиц используется команда:\n\n```bash\n./migrate create\n```\n\n### Удаление\n\nДля удаления всех таблиц используется команда:\n\n```bash\n./migrate remove\n```\n\n### Заполнение\n\nДля заполнения таблиц данными используется команда:\n\n```bash\n./migrate seed\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftischmann%2Fatlantis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftischmann%2Fatlantis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftischmann%2Fatlantis/lists"}