İçeriğe geç

Proje düzeni ve komutlar

Proje düzeni

CPalius, temiz kök ilkesiyle çalışır: proje kökü çerçeve dosyalarıyla kirlenmez, her şeyin yeri bellidir.

CPalius/
├── cp-core/               çekirdek alanı
│   ├── bin/               konsol ikilisi (console)
│   ├── config/            çekirdek yapılandırması (bundles, active_modules, rotalar)
│   ├── migrations/        çekirdek veritabanı migration'ları
│   ├── src/               App\ ad alanı (Controller, Entity, Core\...)
│   ├── templates/         AACP ve Studio şablonları
│   ├── assets/            panel JavaScript ve CSS kaynakları
│   └── var/               önbellek, günlükler, yedekler (Git'e girmez)
├── cp-includes/
│   └── vendor/            Composer bağımlılıkları
├── cp-content/            sizin alanınız
│   ├── config/sync/       Git ile taşınan YAML yapılandırması
│   ├── modules/           modüller
│   ├── themes/            temalar
│   └── translations/      genel arayüz çevirileri (tr, en)
├── public/                web kökü
│   ├── index.php          ön denetleyici
│   ├── assets/            derlenmiş panel varlıkları
│   ├── themes/            temaların yayınlanan çıktıları
│   └── uploads/           yüklenen dosyalar
└── composer.json

Kural: Kendi kodunuz cp-content/ içinde kalır. cp-core/ ve cp-includes/ sistemin; bir modül paketi bunlara yazamaz ya da başvuramaz (paket denetimi bunu reddeder).

Ad alanları

Ad alanı Klasör Kime ait
App\ cp-core/src/ Yalnızca çekirdek
Modules\ cp-content/modules/ Modüller
DoctrineMigrations\ cp-core/migrations/ Çekirdek migration'ları

Bir modül App\ ad alanında sınıf tanımlayamaz; paket denetimi bunu reddeder.

Yapılandırma yönetimi (config sync)

cp-content/config/sync/ altındaki YAML dosyaları, siteyi Git ile taşınabilir kılar:

Dosya İçerik
user.role.<id>.yaml Rol ve yetenek listesi
settings.yaml Sistem ayarları
path_pattern.<tür>.yaml İçerik türü için adres kalıbı
workflow/<ad>.yaml Durum makinesi tanımı

cp:config komutu ayarları ve alanları dışa aktarır, farkı gösterir ve içe aktarır.

Komut listesi

Tüm komutlar php cp-core/bin/console <komut> ile çalışır.

Kurulum ve bakım

Komut Ne yapar
cp:user:create-admin İlk yönetici kullanıcıyı oluşturur
cp:doctor Kurulumu denetler: migration, modül, yetenek, çeviri, ortam, güvenlik duruşu
cp:security:audit Çalışan güvenlik yapılandırmasını denetler ve duruş puanı verir
cp:backup:create cp-core/var/backups/ altına veritabanı, dosya ya da tam proje yedeği alır
cp:update Bekleyen migration'ları, güncelleme kancalarını, modül yükseltmelerini ve yapılandırmayı uygular, sonra önbelleği temizler
cp:patch Bekleyen dosya yamasını gösterir, istenirse uygular
cp:debug Kayıt defterlerinin bulduklarını listeler: yetenekler, hook'lar, cron işleri, varlık türleri, alanlar, kaynaklar

Modüller

Komut Ne yapar
cp:module:list cp-content/modules altındaki tüm modülleri ve durumlarını listeler
cp:module:create Yeni modül iskeleti üretir (manifest, kurulumcu, çeviriler)
cp:module:activate <Ad> Modülü doğrular ve active_modules.php dosyasına ekler
cp:module:deactivate <Ad> [--purge] Modülü devre dışı bırakır; --purge ile kaldırma kancasını çalıştırıp verisini siler

Etkinleştirme, modülü almadan önce izole bir süreçte derleme ve YAML denetimi yapar; geçemezse modül etkinleşmez.

Zamanlama ve kuyruk

Komut Ne yapar
cp:cron:run Vadesi gelen tüm cron işlerini çalıştırır (veritabanı + kod tabanlı)
cp:cron:run-virtual <ad> Kod tabanlı (öznitelik ya da dosya) bir sanal cron işini adıyla çalıştırır
cp:queue:work Vadesi gelen asenkron işleri yalıtılmış olarak işler

Veri

Komut Ne yapar
cp:migrate Veri içe aktarmalarını listeler, deneme çalıştırır, uygular, geri alır
cp:config Ayarları ve alanları dışa aktarır, fark alır, içe aktarır
cp:seo:rebuild-sitemap Eksik SEO varsayılanlarını ekler ve site haritası önbelleğini temizler

Modül komutları

Bazı modüller kendi komutlarını getirir; örneğin Belgeler modülünden cp:docs:import ve cp:docs:export, Blog modülünden cp:blog:seed-demo-content.

Geliştirme sırasında yararlı üçlü

php cp-core/bin/console cp:debug          # sistem neyi buldu?
php cp-core/bin/console cp:doctor         # sistem sağlıklı mı?
php cp-core/bin/console cache:clear       # önbelleği temizle

Geliştirme ortamında (APP_ENV=dev) bir istek aynı sorguyu çok kez çalıştırırsa N+1 koruması istisna fırlatır; bu bilinçli bir davranıştır ve fetch join yazmanız gerektiğini söyler.

Son güncelleme: 13.10.2026