🦖
[] codesaur.net 1=[]
<?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
[] About
codesaur ecosystem

Монгол программистын бүтээсэн PHP фреймворк ба багцууд

Raptor фреймворк болон түүний суурь болсон PSR стандартын бие даасан багцууд - цэвэр архитектур, объект хандалтат код, гадны хамаарал хамгийн бага. Нээлттэй эх, MIT лиценз.

[] Compiling
Багц:8
PSR стандарт:3, 4, 7, 11, 12, 14, 15, 16
PHP хувилбар:8.2.1+
Өгөгдлийн сан:MySQL, PostgreSQL, SQLite
Лиценз:MIT
Warnings:0
Errors:0
Success : Press any key

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

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

Бүх багцууд Packagist

[] Raptor 1=[]
codesaur/raptor
Цэвэр архитектуртай объект хандалттай веб хөгжүүлэлтийн фреймворк
[] HTTP Message 2=[]
codesaur/http-message
Цэвэр, минимал, объект хандалтат бүтэцтэй HTTP Message компонент (PSR-7)
[] Router 3=[]
codesaur/router
Хөнгөн, хурдан, объект-суурьтай маршрутчиллын (routing) компонент
[] HTTP Application 4=[]
codesaur/http-application
PSR-7 & PSR-15 нийцсэн хөнгөн, уян хатан HTTP Application цөм
[] DataObject 5=[]
codesaur/dataobject
PDO суурьтай өгөгдлийн модель ба хүснэгт удирдагч компонент (MySQL / PostgreSQL / SQLite)
[] Template 6=[]
codesaur/template
Бие даасан PHP template engine - filters, functions, macros, expression parser
[] HTTP Client 7=[]
codesaur/http-client
HTTP хүсэлт илгээх болон MIME имэйл боловсруулах/илгээх хөнгөн жинтэй клиент компонент
[] Container 8=[]
codesaur/container
Хөнгөн, хурдан, PSR-11 стандартад нийцсэн dependency injection container

Яагаад 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 хүртэл явна.

[] RAPTOR PROJECT 2=[]
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 Response
1:1

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

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

[] New Project
Шаардлага
  • 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-аар хүрэшгүй байна.
[] README.TXT 3=[]

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

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

Зохиогч: Narankhuu (codesaur)
[] Холбоо

Асуулт асуух, санал хэлэх, алдаа мэдээлэх - бүгд GitHub дээр нээлттэй.