<?php /* Raptor Framework */ namespace Web; use Psr\Http\Message\ResponseInterface; use codesaur\Http\Application\Application as Base; use Dashboard\SessionMiddleware; use Dashboard\Localization\LocalizationMiddleware; class Application extends Base { public function __construct(ResponseInterface $response) { parent::__construct($response); $this->use(new Template\ExceptionHandler()); $this->use(new SessionMiddleware( fn($path, $method) => \str_starts_with($path, '/session/') )); $this->use(new LocalizationMiddleware('WEB_LANGUAGE_CODE')); $this->use(new WebRouter()); $this->use(new Portal\PortalRouter()); } }1:1 ══ APPLICATION.PHP
Монгол программистын бүтээсэн PHP фреймворк ба багцууд
Raptor фреймворк болон түүний суурь болсон PSR стандартын бие даасан багцууд - цэвэр архитектур, объект хандалтат код, гадны хамаарал хамгийн бага. Нээлттэй эх, MIT лиценз.
| Багц: | 8 |
| PSR стандарт: | 3, 4, 7, 11, 12, 14, 15, 16 |
| PHP хувилбар: | 8.2.1+ |
| Өгөгдлийн сан: | MySQL, PostgreSQL, SQLite |
| Лиценз: | MIT |
| Warnings: | 0 |
| Errors: | 0 |
Экосистемийн багцууд
Багц бүр бие даасан, ямар ч PHP төсөлд Composer-оор суулгаж ашиглаж болно. Raptor нь эдгээрийг нэгтгэн бүрэн фреймворк болгодог.
Яагаад Raptor?
Хэрэглэгчийн эрх, олон хэл, CMS, дэлгүүр, лог, кэш зэрэг веб програмд хэрэгтэй бүх зүйл нэг дор, код нь бүхэлдээ таны мэдэлд.
PSR стандарт
PSR-3, 4, 7, 11, 12, 14, 15, 16 - стандартад нийцсэн тул бусад PHP сангуудтай саадгүй нийлнэ.
Multi-tenant RBAC
Олон байгууллага, дүр, эрхийн нарийн зохицуулалт, JWT + Session нэвтрэлт бэлэн.
Код бүхэлдээ таных
vendor/-оос бусад бүх зүйл төслийн энгийн код - тусдаа "framework core" давхарга байхгүй, override хэрэггүй.
MySQL + PostgreSQL
Нэг кодоор хоёр driver дээр ажиллана. Хүснэгтүүд Model-оос автоматаар үүснэ.
Аль ч орчинд ажиллана
VPS, dedicated, cloud, shared hosting - хаана ч нэмэлт тохиргоогүй. cPanel / LiteSpeed / mod_security WAF шиг хатуу орчныг method override, body encoding автоматаар давна.
Монгол хэл суурьтай
Код, тайлбар, баримт бүгд монгол болон англи хэл дээр. Олон хэлний контент удирдлага анхнаасаа суурилсан.
Архитектур
Нэг entry point, хэдэн ч апп байж болно - анхдагч байдлаар 2 апп. Хүсэлт middleware гинжээр дамжин router, controller, template хүртэл явна.
public_html/index.php |-- /dashboard/* -> Dashboard\Application (Admin Panel) | |-- Middleware: MethodOverride, BodyEncoding, Session, JWT, | | Container, Localization, Settings (CSRF per-route) | |-- Routers (one per feature module) | \-- Controllers -> Templates | \-- /* -> Web\Application (Public Website) |-- Middleware: Session, Localization, Settings |-- WebRouter, PortalRouter \-- TemplateController -> Templates Хүсэлтийн урсгал: index.php -> Application -> Middleware chain -> Router match -> Controller::action() -> Model (DB) -> FileTemplate -> HTML Response1:1
Өгөгдлөө үүсгэнэ
Хоосон өгөгдлийн сангаа үүсгээд нэг команд - бүх хүснэгт, эхний өгөгдөл анх ажиллахад автоматаар үүснэ.
- PHP 8.2.1+ (ext-gd, ext-intl)
- Composer
- MySQL / PostgreSQL
composer create-project codesaur/raptor my-project
Document root заавал public_html/ байх ёстой - .env, application/, vendor/ түүнээс дээр байрлаж URL-аар хүрэшгүй байна.
Яагаад "Raptor" гэж?
Дэлхийд анх удаа Монголын говиос (1923) олдсон Velociraptor хэмээх гайхалтай динозаврыг бэлэгдэж өгсөн нэр. Зохиогч Наранхүү динозавр, байгалийн түүхийг сонирхон уншиж судалдаг хүн. codesaur гэдэг нь code + saur - тэрбээр 1997 оноос C хэл дээр эхлэн програм зохиосон өөрийгөө "хуучин цагийн код бичигч динозавр" хэмээн хөгжилтэйгээр нэрлэсэн билээ.
Зохиогч: Narankhuu (codesaur)Асуулт асуух, санал хэлэх, алдаа мэдээлэх - бүгд GitHub дээр нээлттэй.