Skip to content

مقدمة

Doggy Framework هو إطار عمل تطوير منخفض الكود على مستوى المؤسسات، مصمم للذكاء الاصطناعي الأصلي (AI-Native)، مبني على Symfony 7.4 LTS (بدعم طويل الأمد حتى عام 2029).

لماذا Doggy؟

  • الذكاء الاصطناعي الأصلي: تكامل عميق مع MCP وAgent والنماذج المتعددة (Alibaba Bailian، OpenAI، LM Studio، Ollama وغيرها)، مع نظام مدمج لتكوين LLM ومساعد ذكاء اصطناعي عام وتعزيز عروض بالذكاء الاصطناعي ومساعد ترميز واستعلام باللغة الطبيعية وتعرف بصري وغيرها من قدرات AI
  • محرك منخفض الكود: تعريف نماذج الأعمال عبر PHP 8 Attribute مع الخاصية المخصصة @Ef، مع التوليد التلقائي لترحيلات قاعدة البيانات وواجهات الإدارة
  • مصمم عروض مدفوع بالذكاء الاصطناعي: تخطيط بالسحب والإفلات + عمليات باللغة الطبيعية + وكلاء فرعيين للتعرف على النية لتوليد العروض + إدارة متعددة الإصدارات
  • أمان على مستوى المؤسسات: تسجيل دخول بدون كلمة مرور عبر WebAuthn، فصل ثلاثي للأدوار، سياسات كلمات المرور، سجلات تدقيق شاملة
  • الاتصال الفوري: دفع فوري عبر Mercure SSE، مع Hub مدمج في FrankenPHP دون الحاجة لخدمات إضافية
  • أداء عالٍ: وضع Worker في FrankenPHP + ضغط zstd/br، وبنية تعطي الأولوية لـ PostgreSQL
  • نظام بيئي متكامل: هيكل تنظيمي، مهام مجدولة، تخزين ملفات، نظام بريد إلكتروني، مكتبة مكونات SunUI وغيرها جاهزة للاستخدام فورًا

حزمة التقنيات

الطبقةالتقنية
اللغةPHP 8.2+
الإطارSymfony 7.4 LTS
وقت التشغيلFrankenPHP (وضع Worker) عبر runtime/frankenphp-symfony
قاعدة البياناتPostgreSQL 14+
ORMDoctrine ORM + StofDoctrineExtensionsBundle (Gedmo)
قائمة الرسائلSymfony Messenger (Doctrine Transport)
الاتصال الفوريMercure SSE (dunglas/mercure)
الذكاء الاصطناعيSymfony AI (MCP، Agent، Store، دعم متعدد المنصات)
المصادقةWebAuthn (web-auth/webauthn-symfony-bundle) + JWT (firebase/jwt)
تخزين الملفاتLeague Flysystem (Local / OSS / S3)
الواجهة الأماميةTwig + jQuery + مكتبة مكونات SunUI
مكتبات الأدواتPHPSpreadsheet, Imagine, Predis, Ramsey UUID

متطلبات النظام

  • PHP >= 8.2
  • ext-ctype, ext-iconv
  • PostgreSQL >= 14
  • Composer >= 2.5

البدء السريع

التثبيت

bash
git clone git@github.com:doggy/skeleton.git my-app
cd my-app

تكوين البيئة

bash
cp .env.example .env
# 编辑 .env 配置数据库连接与 Mercure JWT 密钥

تشغيل قاعدة البيانات

يتطلب PostgreSQL تثبيتًا وتشغيلًا منفصلًا:

bash
# macOS
brew install postgresql@14
brew services start postgresql@14
createdb app

# Ubuntu/Debian
sudo apt install postgresql-14
sudo systemctl start postgresql
sudo -u postgres createdb app

Mercure Hub مدمج في FrankenPHP ولا يتطلب تشغيلًا إضافيًا.

الوصول

بنية الدلائل

config/
├── bundles.php          # 已启用的 Symfony Bundle 列表
├── packages/            # 各 Bundle 配置
└── services.yaml

src/
├── Annotation/          # 自定义注解:Ef.php, EfGroup.php
├── Command/             # 16 个 Console 命令
├── Controller/          # Admin, Api, Security 控制器
├── Entity/              # Doctrine 实体 + CommonTrait
│   ├── Organization/    # Department, Position 等
│   ├── Platform/        # 平台相关实体
│   ├── Security/        # User, Role, Permission
│   ├── Storage/         # 文件存储实体
│   └── System/          # 系统配置实体
├── Form/                # 表单类型
├── Message/             # 异步消息
├── MessageHandler/      # 消息处理器
├── Repository/          # Doctrine Repository
├── Security/            # WebAuthn, JWT, Voter
├── Service/             # AI, Calendar, Security, Storage, Task, View 等
└── Twig/                # TwigExtension

Caddyfile                # FrankenPHP 配置(含 Mercure Hub、压缩、缓存)

حزم Symfony الأساسية المفعّلة

الحزمةالوظيفة
FrameworkBundleجوهر Symfony
DoctrineBundle + MigrationsBundleORM وترحيلات قاعدة البيانات
SecurityBundleالمصادقة والتفويض الأمني
TwigBundle + TwigExtraBundleمحرك القوالب
MonologBundleالتسجيل
StofDoctrineExtensionsBundleتوسعات Gedmo (البنية الشجرية، الطوابع الزمنية، الحذف الناعم وغيرها)
NelmioCorsBundleدعم CORS
WebauthnBundleمصادقة WebAuthn بدون كلمة مرور
MercureBundleدفع الرسائل الفوري
AiBundleتكامل Symfony AI
FlysystemBundleتجريد تخزين الملفات
HautelookAliceBundleبيانات الاختبار (Fixtures)

المفاهيم الأساسية

النموذج الديناميكي

يتم تمييز حقول الأعمال عبر خاصية @Ef مع PHP 8 Attributes لتعريف النماذج، مع الإنجاز التلقائي لما يلي:

  • توليد ترحيلات قاعدة البيانات
  • عرض واجهة CRUD
  • قواعد التحقق من البيانات
  • فحوصات الصلاحيات
php
use App\Annotation\Ef;

class Department
{
    #[Ef(displayName: '部门名称', required: true)]
    private string $name;

    #[Ef(displayName: '部门编码', searchable: true)]
    private string $code;
}

المرجع: النموذج الديناميكي

خصائص Trait العامة للكيانات

تجمع جميع الكيانات القدرات التالية عبر CommonTrait:

CommonTrait
├── BlameableTrait      # 创建人/更新人自动记录
├── TimestampableTrait  # 创建时间/更新时间自动记录
├── SoftDeleteTrait     # 软删除
└── IdTrait             # 自增主键

الهيكل التنظيمي

شجرة أقسام متعددة المستويات (Nested Set) وإدارة الموظفين ونظام المناصب، وتدعم:

  • شجرة أقسام بلا حدود من المستويات (Gedmo NestedTree)
  • الانتماء إلى شركات وأقسام متعددة
  • نظام المناصب والمستويات الوظيفية
  • استيراد وتصدير جماعي للمستخدمين (PHPSpreadsheet)

المرجع: الهيكل التنظيمي

نظام الأمان

  • تسجيل دخول بدون كلمة مرور عبر WebAuthn (دعم Passkey والمفاتيح الأمنية والتحقق البيومتري)
  • فصل ثلاثي للأدوار (مدير النظام، مدير الأمان، مدير التدقيق)
  • سياسات تعقيد كلمة المرور ومدة صلاحيتها
  • تدقيق شامل لعمليات النظام

المرجع: مصادقة WebAuthn

الموارد

مصدر مفتوح برخصة MIT | حقوق النشر © 2026 Doggy