# ToGO: طريقة عمل artisan من Laravel لـ Go وReact، من togo new إلى النشر

> أمر واحد يكتب نموذج Go وSQL والـ migration وGraphQL وREST وصفحة React. جولة عملية في ToGO: التثبيت والإنشاء والتوليد والإضافات ووكلاء الذكاء الاصطناعي والنشر.

*2026-10-12T11:06:26Z*

قضيت سنوات مع Laravel قبل أن أنقل معظم عملي في الخلفية إلى Go. أعطتني Go السرعة والأنواع الصارمة وسهولة النشر، لكن افتقدت طريقة العمل: `php artisan make:model`، وmigrations تعمل ببساطة، وأمر واحد يضيف ميزة كاملة من أولها إلى آخرها.

ToGO هو ما بنيته لأستعيد طريقة العمل هذه. إطار عمل مفتوح المصدر يبدأ بالـ API، بلغة Go في الخلفية وReact في الواجهة، مع CLI على طريقة artisan يولّد كل طبقات الميزة دفعة واحدة. في هذا المقال جولة فيه، من مجلد فارغ إلى تطبيق منشور.

## الفكرة في أمر واحد

```bash
togo make:resource Post title:string body:text:nullable published:bool
```

هذا السطر يكتب نموذج Go، ومخطط SQL والاستعلامات (لـ sqlc)، ومخطط الـ migration لـ Atlas، ومخطط GraphQL، ومعالج REST (بـ Huma مع OpenAPI)، وصفحة React مع عميل الـ API الخاص بها. والملف `togo.resources.yaml` هو مصدر الحقيقة، ومنه تُعاد توليد السجلات التي تربط المسارات والـ resolvers، فلا تنفصل الطبقات عن بعضها.

## 1. ثبّت أداة CLI

```bash
curl -fsSL https://to-go.dev/install.sh | sh                  # Linux وmacOS
irm https://to-go.dev/install.ps1 | iex                        # Windows
go install github.com/togo-framework/cli/cmd/togo@latest       # أو عبر Go
```

تحدّث الأداة نفسها بالأمر `togo upgrade`. ويثبّت `togo new` والمولّدات أي أدوات ناقصة (Go وNode وsqlc وAtlas)، ويفحصها `togo doctor` أو يصلحها في أي وقت.

## 2. أنشئ تطبيقًا

```bash
togo new shop
```

تسألك الأداة عن الواجهة وقاعدة البيانات والميزات التي تريدها، مثل المصادقة والطوابير والتخزين. قاعدة SQLite هي الاختيار الافتراضي اليوم، فلا يحتاج أول تطبيق إلى Docker، وPostgres وSupabase وMySQL وMongoDB على بُعد اختيار واحد (لكن اقرأ ملاحظة Postgres في قسم «حدود بصراحة» أولًا). وتحصل على مستودع واحد فيه الـ API بلغة Go وواجهة React والـ migrations والبنية التحتية معًا.

## 3. أضف موردًا وشغّله

```bash
cd shop
togo make:resource Product name:string price:decimal in_stock:bool
togo generate      # sqlc ← gqlgen ← Atlas ← OpenAPI
togo migrate
togo serve
```

يعمل الـ API على المنفذ `:8080`، مع GraphQL على `/graphql` وREST على `/api` وتوثيق OpenAPI على `/docs`، وتعمل الواجهة على `:3000`.

أنواع الحقول هي `string, text, int, bool, float, decimal, uuid, time, date, json`، وتجعل `:nullable` الحقل اختياريًا. ويعرض `--dry-run` ما سيكتبه المولّد قبل كتابته. ملف النموذج ملكك تعدّله كما تشاء، أما السجلات المولّدة فيُعاد بناؤها في كل مرة.

## 4. كل ما عدا ذلك إضافة

النواة صغيرة (microkernel). المصادقة ولوحات التحكم والكاش والطوابير والمدفوعات والتحليلات وسجلات التدقيق والذكاء الاصطناعي وغيرها إضافات، وفي السوق أكثر من 130 إضافة:

```bash
togo install togo-framework/auth
togo plugin:list
```

يشغّل `togo install` الأمر `go get`، ويسجّل الإضافة للاكتشاف التلقائي، ويحفظها في `togo.yaml`، وتعمل مع أول `togo serve`. وكتابة إضافتك الخاصة تعني تنفيذ واجهة Go صغيرة وتسجيلها في `init()`.

## 5. مبني لوكلاء الذكاء الاصطناعي من اليوم الأول

كل تطبيق جديد يأتي بمجلد `.claude/` وخادم MCP جاهز، ليتمكن Claude Code من قيادة المشروع. وهناك أداتان إضافيتان:

- الأمر `togo install claude` يضيف إضافة ToGO لـ Claude Code: أوامر `/togo:*` تغلّف الـ CLI، وفريق من الوكلاء المتخصصين (الخلفية والواجهة وقواعد البيانات وDevOps والجودة والأمان وغيرها)، وخادم MCP متصل تلقائيًا.
- خادم MCP العام على [mcp.to-go.dev](https://mcp.to-go.dev) يقدّم التوثيق وسجل الإضافات، فيتعلم الوكيل إطار العمل ويثبّت الإضافات دون أن تنقل له الإجابات بنفسك. وهو مدرج في سجل MCP الرسمي.

وإضافة `web-mcp` تعمل في الاتجاه المعاكس: تحوّل تطبيقك *أنت* إلى خادم MCP بمصادقة، ليستخدم Claude أو Cursor أو أي عميل MCP أدوات تطبيقك.

## 6. النشر

لخادمك الخاص، يبني `togo deploy` التطبيق محليًا، ويرفع الملف عبر rsync، ويشغّل أمر إعادة التشغيل عبر SSH، وكل ذلك يُضبط في `togo.yaml` (مع أهداف مسماة مثل staging وproduction). وللسحابة، يكتب `togo infra:init` ملف Dockerfile وملفات Terraform لـ Google Cloud Run أو Fly.io أو Docker، ثم يطبّقها `togo deploy`.

## حدود بصراحة

- **ما زال حديثًا.** إصدارات ToGO ما زالت 0.x وتتغير بسرعة، فتوقّع تغييرات غير متوافقة بين الإصدارات الفرعية، وثبّت الإصدارات في مشروعك.
- **مشكلة معروفة في DDL الخاص بـ Postgres.** قاعدة SQLite هي الافتراضية اليوم. إن اخترت Postgres، فمولّد الموارد ما زال يكتب ملف `.sql` بصيغة SQLite (ملف Atlas HCL سليم)، فتوقّع أن تعدّل هذا الملف يدويًا حاليًا. ونعمل على إصلاح توليد DDL لـ Postgres. وإن واجهتها، افتح Issue وسأقرؤه.
- **المجتمع صغير.** ستجد اليوم إجابات أكثر عن Gin أو Echo أو Fiber. وToGO إطار عمل كامل وليس موجّه مسارات، فهو أقرب إلى «Laravel لـ Go» منها، وهذا يعني أيضًا قرارات مسبقة أكثر.
- **سلسلة الأدوات فيها أكثر من جزء:** sqlc وAtlas وgqlgen وNode. تثبّتها الأداة لك، لكنها موجودة.

أستخدم ToGO في عملي أنا: يشغّل خلفية نظام إدارة المحتوى الذي يخدم هذا الموقع ومواقعي الأخرى، وأبني عليه منتجات للعملاء.

## جرّبه

- [اقرأ التوثيق](/ar/docs) · [تصفّح الإضافات](/ar/plugins)
- [شاهد العرض التجريبي](https://demo.to-go.dev)
- [ادعم ToGO بنجمة على GitHub](https://github.com/togo-framework/togo)

تبني منتجًا بـ Go وReact وتريد مساعدة؟ أصمم المنتجات وأبنيها من البداية إلى النهاية. اطّلع على [هندسة المنتجات](https://fadymondy.com/ar/services/product-engineering?utm_source=togo&utm_medium=referral&utm_campaign=togo-launch-oct26) أو [تواصل معي](https://fadymondy.com/ar/contact?utm_source=togo&utm_medium=referral&utm_campaign=togo-launch-oct26).

---

Source: https://to-go.dev/ar/blog/togo-go-react-framework-artisan-cli
