🦖
[■] RAPTOR 1=[↕]
codesaur/raptor

Raptor Framework

Цэвэр архитектуртай объект хандалттай веб хөгжүүлэлтийн фреймворк

PSR стандартууд дээр суурилсан, олон давхаргат архитектуртай, олон байгууллагын (multi-tenant) RBAC эрхийн удирдлагатай, бүрэн CMS боломжтой PHP веб фреймворк. Анхдагч байдлаараа Web (нийтийн вебсайт) болон Dashboard (админ панель) гэсэн хоёр апп-тай ирдэг бөгөөд codesaur экосистемийн бусад багцуудыг нэгтгэн ажилладаг.

Packagist version Downloads PHP version License Aikido Intel 91/100
codesaur.net
1:1 ══ composer create-project codesaur/raptor my-project
[■] Онцлогууд
  • PSR-7/PSR-15 middleware суурьтай архитектур
  • JWT + Session нэвтрэлт баталгаажуулалт
  • Олон байгууллагын (multi-tenant) RBAC эрхийн удирдлага
  • Олон хэл дэмжлэг (Localization) - хэл бүр URL prefix-тэй (/en/...), canonical + hreflang автоматаар
  • Бүх хэлэнд нэг дор харагдах бичлэг (code = "*") - мэдээ, хуудас, бүтээгдэхүүнд
  • CMS модулиуд: Мэдээ, Хуудас, Файл, Лавлах, Тохиргоо
  • Дэлгүүр модуль: Бүтээгдэхүүн, сагс, олон бүтээгдэхүүнтэй захиалга, нөөцийн хяналт (баталгаажуулахад хасаж, цуцлахад буцаана), Үнэлгээ
  • MySQL, PostgreSQL алийг нь ч дэмжинэ
  • SQL файл суурьтай өгөгдлийн сангийн migration систем
  • codesaur/template engine (Twig маягийн синтакс, autoescape-тай XSS хамгаалалт)
  • OpenAI интеграци (moedit editor)
  • PSR-3 лог систем, PSR-14 Event Dispatcher
  • И-мэйл (Brevo API, SMTP, PHP mail), Discord webhook мэдэгдэл
  • SEO: Хайлт, Sitemap, XML Sitemap, RSS feed
  • Спам хамгаалалт (honeypot, HMAC token, rate limiting, Cloudflare Turnstile)
  • CSRF хамгаалалт
  • Аль ч орчинд ажиллана: VPS, dedicated, cloud, shared hosting - mod_security / LiteSpeed WAF-ын ард ч method override, body encoding-оор саадгүй
  • File-based cache (PSR-16), Trash сэргээлт, Sidebar badge систем
PSR PSR-3PSR-4PSR-7PSR-11PSR-12PSR-14PSR-15PSR-16

Архитектур

Нэг entry point, хэдэн ч апп байж болно - анхдагч байдлаар 2 апп. Хүсэлт middleware гинжээр дамжин router, controller, template хүртэл явна.

[■] RAPTOR PROJECT 2=[↕]
public_html/index.php (Entry point)
 |
 |-- /dashboard/* -> Dashboard\Application (Admin Panel)
 |    |-- Middleware: ErrorHandler -> MethodOverride -> BodyEncoding
 |    |               -> Session -> JWT -> Container -> Localization -> Settings
 |    |-- Routers: Login, Users, Organization, RBAC, Localization, Contents,
 |    |            Messages, Comments, Logs, Template, Shop, Development, Migration
 |    \-- Controllers -> Templates -> HTML Response
 |
 \-- /* -> Web\Application (Public Website)
      |-- Middleware: ExceptionHandler -> MethodOverride -> BodyEncoding
      |               -> Container -> Session -> Localization -> Settings
      |-- Routers: WebRouter, PortalRouter
      \-- Controllers -> Templates -> HTML Response

Хүсэлтийн урсгал:
  Browser -> index.php -> .env -> ServerRequest
    -> Application selection (by URL path)
      -> Middleware chain (in order)
        -> Router match
          -> Controller::action()
            -> Model (DB)
            -> FileTemplate (codesaur/template) -> render()
              -> HTML Response -> Browser
1:1

Middleware pipeline

PSR-15

[■] Middleware
Dashboard
  1. ErrorHandler
  2. MethodOverrideMiddleware
  3. BodyEncodingMiddleware
  4. SessionMiddleware
  5. JWTAuthMiddleware
  6. ContainerMiddleware
  7. LocalizationMiddleware
  8. SettingsMiddleware
  9. CsrfMiddleware (per-route)
Web
  1. ExceptionHandler
  2. MethodOverrideMiddleware
  3. BodyEncodingMiddleware
  4. ContainerMiddleware
  5. SessionMiddleware
  6. LocalizationMiddleware
  7. SettingsMiddleware

Хянах самбарын модулиуд

Админ панель нь модуль тус бүр Controller, Model, template-ээ нэг хавтсанд багцалсан package-by-feature бүтэцтэй.

[■] Dashboard

Нэвтрэлт

JWT + Session, нууц үг сэргээх, бүртгүүлэх хүсэлт, login оролдлогын хязгаар

Хэрэглэгч ба байгууллага

Олон байгууллага (multi-tenant), байгууллага солих, soft delete

RBAC

Дүр, эрх, alias-аар бүлэглэсэн зөвшөөрөл; coder / admin / manager / editor / viewer

Олон хэл

Хэл, орчуулгын текст удирдлага, кэштэй

Контент

Мэдээ, хуудас (мод бүтэц), лавлах хүснэгт, тохиргоо, файл, сэтгэгдэл

Дэлгүүр

Бүтээгдэхүүн, вэб сагс, олон бүтээгдэхүүнтэй захиалга, хүргэлтийн хаяг, нөөцийн хяналт, үнэлгээ (1-5 од)

Мессеж

Холбоо барих формын мессеж, имэйлээр хариулах

Лог ба протокол

PSR-3 лог хүснэгтүүд, бичлэг бүрийн түүх, sidebar badge

Хогийн сав

Устгасан бичлэгийг эх ID-тэй нь сэргээх

Migration

SQL файл суурьтай, forward-only, аюулгүй байдлын сканнертай

Имэйл ба мэдэгдэл

Brevo API / SMTP / PHP mail, Discord webhook, PSR-14 event

Хөгжүүлэлт

Хөгжүүлэлтийн хүсэлт, гарын авлага, AI туслах (moedit)

Өгөгдлөө үүсгэнэ

Хоосон өгөгдлийн сангаа үүсгээд нэг команд - бүх хүснэгт, эхний өгөгдөл анх ажиллахад автоматаар үүснэ.

[■] New Project
Шаардлага
  • PHP 8.2.1+
  • Composer
  • MySQL / PostgreSQL
  • ext-gd
  • ext-intl
composer create-project codesaur/raptor my-project
Гол тохиргоо (.env)
# Environment (development / production)
CODESAUR_APP_ENV=development

# Database (mysql | pgsql)
RAPTOR_DB_DRIVER=mysql
RAPTOR_DB_HOST=localhost
RAPTOR_DB_NAME=raptor
RAPTOR_DB_USERNAME=root
RAPTOR_DB_PASSWORD=

# JWT (secret is auto-generated)
RAPTOR_JWT_ALGORITHM=HS256
RAPTOR_JWT_LIFETIME=2592000

# WAF compatibility (mod_security)
RAPTOR_WAF_BODY_ENCODING=true
Document root заавал public_html/ байх ёстой - .env, application/, vendor/ түүнээс дээр байрлаж URL-аар хүрэшгүй байна.
Тест

PHPUnit 11 суурьтай unit болон integration тестүүдтэй. Integration тест .env.testing тохиргоог ашиглан тусдаа test database дээр transaction дотор ажиллаж, дуусахад rollback хийнэ.

composer test              # All tests
composer test:unit         # Unit tests only
composer test:integration  # Integration tests only

Хавтасны бүтэц

package-by-feature

[■] TREE 3=[↕]
raptor/
|-- application/       # PHP application code (package-by-feature)
|   |-- dashboard/       # Admin panel + shared platform modules
|   \-- web/             # Public website application
|-- public_html/       # Document root (index.php, assets/)
|-- database/
|   \-- migrations/      # SQL migration files
|-- tests/             # PHPUnit tests (unit, integration)
|-- docs/              # Documentation (en/, mn/, conf.example/)
|-- .github/
|   \-- workflows/       # CI + auto deploy
|-- logs/              # Error logs
|-- cache/             # Framework file cache (PSR-16)
|-- protected/         # Protected files (outside docroot)
|-- composer.json
|-- phpunit.xml
\-- LICENSE              # MIT
1:1

Үндсэн классууд

application/dashboard/ + application/web/

[■] CLASSES
КлассҮүрэг
Dashboard\ApplicationАдмин панелийн middleware + router бүртгэл
Web\ApplicationНийтийн вебсайтын middleware + router бүртгэл
Dashboard\DatabaseConnectionPDO холболт нээнэ - MySQL / PostgreSQL сонголт .env-ээс
Dashboard\ControllerБүх контроллерын суурь: PDO, RBAC, template, log
Dashboard\MethodOverrideMiddlewarePUT/PATCH/DELETE-ийг X-HTTP-Method-Override-оос сэргээнэ (WAF)
Dashboard\BodyEncodingMiddlewarebase64 кодлогдсон POST body-г тайлна (WAF)
Dashboard\ContainerMiddlewarePSR-11 container болон service-үүдийг request-д залгана
Dashboard\SessionMiddlewareSession нээж, бичих шаардлагагүй үед эрт хаана
Dashboard\Authentication\JWTAuthMiddlewareJWT баталгаажуулж User объект үүсгэнэ
Dashboard\Localization\LocalizationMiddlewareХэл болон орчуулгыг тодорхойлно
Dashboard\Content\SettingsMiddlewareСистемийн тохиргоог request-д дамжуулна
Dashboard\CsrfMiddlewarePer-route CSRF хамгаалалт
Dashboard\Authentication\UserНэвтэрсэн хэрэглэгч: can(), is(), байгууллагын хамрах хүрээ
Dashboard\RBAC\RBACХэрэглэгчийн роль, эрхийн багц (кэштэй)
Dashboard\Template\DashboardTraitdashboard.html layout, sidebar, байгууллагын сэлгүүр
Web\Template\TemplateControllerВебийн index.html layout, SEO meta, цэс
Web\Shop\CartSession сагс - зөвхөн [product_id => тоо], үнэ/нөөцийг DB-ээс дахин уншина
Dashboard\CacheServicePSR-16 файл суурьтай кэш
Dashboard\Log\LoggerPSR-3 лог - {table}_log хүснэгтүүдэд бичнэ
Dashboard\Mail\MailerИ-мэйл илгээгч (Brevo API, SMTP, PHP mail)
Dashboard\Notification\EventDispatcherPSR-14 event dispatcher
Dashboard\Notification\DiscordNotifierDiscord webhook мэдэгдэл
Dashboard\Migration\MigrationRunnerSQL migration файлыг гүйцэтгэнэ (driver-aware splitter)
Dashboard\Migration\MigrationSecurityScannerЭмзэг хүснэгт, DCL үйлдлийг илрүүлж анхааруулна
Dashboard\Trash\TrashModelУстгасан бичлэгийг хадгалж, буцаан сэргээнэ
Dashboard\File\FileControllerФайл upload, устгах суурь логик
Dashboard\Badge\BadgeControllerSidebar-ийн үзээгүй үйлдлийн тоолол
Dashboard\Exception\ErrorHandlerTemplate суурьтай алдааны хуудас

Экосистемийн багцууд

Багц бүр бие даасан, ямар ч PHP төсөлд Composer-оор суулгаж ашиглаж болно. Raptor нь эдгээрийг нэгтгэн бүрэн фреймворк болгодог.

[■] CODESAUR ECOSYSTEM 4=[↕]
PackageСуулгасан хувилбарPSRҮүрэг
codesaur/http-message v3.0.4 PSR-7 Цэвэр, минимал, объект хандалтат бүтэцтэй HTTP Message компонент (PSR-7)
codesaur/router v6.0.1 - Хөнгөн, хурдан, объект-суурьтай маршрутчиллын (routing) компонент
codesaur/http-application v7.0.1 PSR-7, PSR-15 PSR-7 & PSR-15 нийцсэн хөнгөн, уян хатан HTTP Application цөм
codesaur/dataobject v10.2.1 - PDO суурьтай өгөгдлийн модель ба хүснэгт удирдагч компонент (MySQL / PostgreSQL / SQLite)
codesaur/template v5.0.1 - Бие даасан PHP template engine - autoescape, filters, functions, macros, expression parser
codesaur/http-client v2.1.2 - HTTP хүсэлт илгээх болон MIME имэйл боловсруулах/илгээх хөнгөн жинтэй клиент компонент
codesaur/container v3.2.0 PSR-11 Хөнгөн, хурдан, PSR-11 стандартад нийцсэн dependency injection container
7 packages
[■] README.TXT 5=[↕]

Яагаад "Raptor" гэж?

Дэлхийд анх удаа Монголын говиос (1923) олдсон Velociraptor хэмээх гайхалтай динозаврыг бэлэгдэж өгсөн нэр. Зохиогч Наранхүү динозавр, байгалийн түүхийг сонирхон уншиж судалдаг хүн. codesaur гэдэг нь code + saur - тэрбээр 1997 оноос C хэл дээр эхлэн програм зохиосон өөрийгөө "хуучин цагийн код бичигч динозавр" хэмээн хөгжилтэйгээр нэрлэсэн билээ.

Зохиогч: Narankhuu (codesaur)
[■] Талархал

Энэ framework-т санхүүгийн дэмжлэг үзүүлж, хэрэгтэй санал хэлж байсан Gerege Systems LLC болон түүний үүсгэн байгуулагч Ц.Эрдэнэбат багшид талархал илэрхийлье.

gerege.com