Paket Mimarisi Geçişi
Mevcut Kök Dizinden Yönetilen Model Neden Sorunlu
WebBlocks CMS şu anda, CMS çekirdek dosyalarının kullanıcıya ait uygulama dosyalarıyla birlikte doğrudan kurulum kök dizininde yer aldığı, kök dizinden yönetilen bir Laravel uygulaması olarak dağıtılıyor. Bu model, CMS ürün kodu ile kuruluma özgü proje kodu aynı üst düzey dosya sistemini paylaştığı için yükseltmeleri kırılgan hale getirir.
CMS güncellemeleri kök dizinden yönetilen dosyaların değiştirilmesi veya kopyalanmasıyla uygulandığında, ana kaynaktan kaldırılan çekirdek dosyaların alt kurulumlardan da kaybolacağı garanti edilmez. Kaldırılmış eski bir çekirdek dosya kurulum kök dizininde kalabilir, Laravel tarafından hâlâ otomatik yüklenebilir veya render edilebilir ve daha yeni dağıtılan davranışı sessizce geçersiz kılabilir. Bu, bir alt kurulumdaki eski bir kök Blade dosyasıyla yakın zamanda doğrulanan sorun sınıfının tam kendisidir.
Mevcut mimari ayrıca CMS güncellemelerini Git durumuna ve kök dizin genelinde dosya eşitlemesine sıkı sıkıya bağlı tutar. Bu da sahiplik sınırları hakkında akıl yürütmeyi, kuruluma özgü özelleştirmeleri güvenle korumayı ve güncellemeleri mevcut kurulumlarda öngörülebilir kılmayı zorlaştırır.
Hedef Yön
Hedef mimari, Composer ile yönetilen bir Laravel paketidir:
- Paket adı:
fklavyenet/webblocks-cms - Kurulum yolu:
vendor/fklavyenet/webblocks-cms - Kurulu paketin standart doğruluk kaynağı:
vendor/fklavyenet/webblocks-cms
Hedef modelde CMS çekirdek kodu, kullanıcıya ait Laravel proje kök dizinine kopyalanmak yerine normal bir Composer paketi olarak kurulur ve güncellenir.
Bunun anlamı şudur:
- CMS PHP kaynak kodu paket içindeki
src/altına aittir - Laravel paket kaynakları paket düzeyindeki
config/,database/,resources/,routes/,public/vestubs/dizinlerinde kalır src/, her paket dosyasının gitmesi gereken yer değildir- kullanıcıya ait Laravel kök dizini
app/,config/,database/,public/site/,resources/,routes/,storage/vecomposer.jsonöğelerinin sahibi olmalıdır
Sistem Güncellemesi bu Composer paket yerleşimiyle uyumlu olmalıdır. Kurulu, paket-yerel tüketicilerde güncelleyici, paket köküne göre hazırlanmış sürüm artefaktlarını vendor/fklavyenet/webblocks-cms dizinine uygular; packages/webblocks-cms dizinini ikinci bir etkin, güncellenen çalışma zamanı kopyası olarak tutmamalıdır. Bir packages/webblocks-cms ağacı yalnızca kaynaktan yönetilen geliştirme çalışma kopyalarına veya eski geçiş kalıntılarına aittir.
Eski bir Composer vendor kurulumu depo biçimindeyse, Sistem Güncellemesi vendor/fklavyenet/webblocks-cms dizinini düz paket köküne normalleştirir. Normalleştirmeden sonra src/, docs/, routes/, resources/, database/, public/, config/ ve stubs/ doğrudan vendor/fklavyenet/webblocks-cms altında yer alır; artisan, app/, bootstrap/, packages/, plugins/ ve tests/ gibi depo kökü kalıntıları paket kökü değişiminden kaldırılır.
project/ geçiş sırasında bir uyumluluk katmanı olarak geçici süreyle kalabilir, ancak kuruluma özgü davranış için uzun vadeli zorunlu özelleştirme modeli olarak kalmamalıdır.
Beklenen başlangıç projesi yönü, kullanıcıya ait proje kök dizininin tüm CMS çekirdek dosyalarını doğrudan gömmek yerine CMS paketini bileşen olarak kullandığı, fklavyenet/webblocks-cms-starter gibi ayrı bir Laravel başlangıç projesidir.
Mevcut v1.32.8 Tüketici Hazırlık Durumu
Tüketici paketi hazırlığı artık başlamıştır, ancak kasıtlı olarak kısmi ve açıkça tanımlıdır:
- yeni Laravel tüketicileri paketi kurabilir ve
webblocks:installkomutunu çalıştırabilir - paket, temiz tüketici kurulumları için tüm tarihsel kök migrasyon zincirini yeniden oynatmak yerine odaklanmış bir temiz kurulum migrasyon yolu kullanır
- bakım deposu paket migrasyonları varsayılan olarak koruma altında devre dışı ve etkisiz kalır
App\Models\User,v1.32.8sürümünde geçici tüketici kimlik doğrulama sınırı olmaya devam eder- paket kurucusu
App\Models\Userdosyasını bir paket trait'iyle otomatik olarak yamalar ve önce zaman damgalı bir yedek yazar - pakete ait oturum açma, oturum kapatma, kurulum bildirimi, yönetici koruması, herkese açık ana sayfa, görünümler ve varlıklar ilk temiz tüketici yolu için artık yeterlidir
- bu hâlâ ayrı bir başlangıç deposu değildir ve uygulamaya ait
Usersınırını henüz kaldırmaz
Mevcut Kök Uygulama Temizlik Durumu
Gerçek Composer tüketici uygulama ağacı, CMS çalışma zamanı vendor/fklavyenet/webblocks-cms içinden yüklenirken minimal kalabilir. Bakım deposu artık bu sınırı daha yakından yansıtıyor: kök app/ varsayılan olarak artık paket karşılığı olan sarmalayıcıları tutmuyor.
Kaldırılan sarmalayıcı kategorileri:
- ana makineye ait
ProjectInitCommandhariç, paket karşılığı konsol komutları - rotaları artık paket sınıflarına işaret eden CMS yönetici/herkese açık denetleyicileri ve paket karşılığı ara katmanlar; bakım kabuğunun kurulum yönlendirme ara katmanı hariç
- paket karşılığı yönetici/herkese açık form istekleri
- paket karşılığı mailable sınıfları
- paket karşılığı CMS modelleri
- bloklar, medya, sayfalar, siteler, sistem, güncellemeler, arama, ziyaretçiler ve operasyonel aktarım/terfi alanlarındaki paket karşılığı destek sınıfları
Kasıtlı olarak hâlâ kök diziye ait veya ertelenmiş olanlar:
app/Models/User.php, temelController.phpve servis sağlayıcılar ana makineye ait Laravel kabuk dosyaları olarak kalır.- kurulum yönlendirme ara katmanı dahil kimlik doğrulama/profil/kurulum dosyaları, başlangıç projesi/kurulum sınırı bilinçli olarak yeniden tasarlanana kadar ana makineye ait kalır.
- kimlik doğrulama, profil, kurulum ve proje katmanı, ana makine veya geçiş sınırları olarak kalır.
- eski varlık şimleri
Asset,AssetFolder,BlockAssetveApp\Support\Assets\...kaldırılmıştır; paket medya modelleri ve destek sınıfları artık yetkili çalışma zamanı ve test yüzeyidir. App\Support\WebBlockskaldırılmıştır; kök yapılandırma, görünümler ve testler artık ürün kimliği/sürüm kaynağı olarakWebBlocks\Cms\Support\WebBlockskullanır.- boş paket karşılığı kök
app/dizinleri geçiş işaretçisi olarak tutulmak yerine kaldırılır. - kök migrasyonlar, yapılandırma geçersiz kılmaları, çalışma zamanı
public/cms, kök Blade uyumluluk sarmalayıcıları ve kök seeder sarmalayıcıları bu temizliğin dışında kalır.
Bu temizlik, bakım deposu artık yeni bir paket tüketicisiyle aynı minimal uygulama varsayımını test ettiği için paket geçişini ve başlangıç projesi hazırlığını iyileştirir. Yine de depoyu tam anlamıyla başlangıç projesine hazır hale getirmez: kurulum/kimlik doğrulama, User, kök migrasyon yetkisi, kök güncelleme/kurulum operasyonel yetkisi ve kök çalışma zamanı varlık uyumluluk yolları son engeller olarak kalır.
Hedef Güncelleme Mimarisi
Uzun vadeli güncelleme akışı Composer/paket ile yönetilmeli ve Git'ten bağımsız olmalıdır.
Hedef güncelleme mimarisi şudur:
- kök dizin genelinde CMS çekirdek dosya kopyalama yok
- CMS çekirdeği Composer paketleri aracılığıyla kurulur ve güncellenir
- paket güncellemesinden sonra migrasyonlar dahil kontrollü çalışma zamanı yükseltme adımları
- gerektiğinde önbellek temizleme
- gerektiğinde ayrı bir operatör bakım iş akışı olarak açık katalog onarımı
- yalnızca gerçekten gerektiğinde kontrollü varlık yayımlama veya eşitleme
Bu yaklaşım, kuruluma ait kök dosyaları pakete ait CMS çekirdek dosyalarından ayrı tutar ve kaldırılmış CMS çekirdek dosyalarının sırf bir zamanlar kök dizinde bulundukları için alt kurulumlarda süresiz olarak kalmasını önler.
Varlık Derleme Sınırı
Composer paketi ve bakım deposu, statik varlık tüketicileridir; ön yüz derleme zinciri barındırıcıları değildir. WebBlocks CMS, CMS'e ait varlıklar için Vite, Laravel Vite eklentisi, Tailwind, npm, Node, paket kilit dosyaları, public/build, public/hot veya @vite çalışma zamanı kancalarını dağıtmamalı veya zorunlu kılmamalıdır.
CMS'e ait varlıklar, bakım çalışma zamanı için kök public/cms dizinine, sürüm artefaktları için ise paket packages/webblocks-cms/public/cms dizinine aittir. WebBlocks UI, sabitlenmiş yayımlanmış varlıklar aracılığıyla tüketilen bir üst akış UI projesi olmaya, WebBlocks UI Manager ise sürüm/CDN yayımlama iş akışları için birinci taraf operatör eklentisi olmaya devam eder. WebBlocks UI kaynak derlemesini, npm derleme betiklerini, dist üretimini veya hot dosyası varsayımlarını CMS çekirdeğine veya sürüm paketine taşımayın.
Sahiplik Sınırları
Hedeflenen pakete ait CMS yolları:
- depo içi geçiş aşamasında
packages/webblocks-cms/src/ - daha sonra kurulu ortamlarda
vendor/fklavyenet/webblocks-cms/src/ - paket
config/ - paket
database/ - paket
resources/ - paket
routes/ - paket
public/ - paket
stubs/
Hedeflenen kullanıcıya ait proje kökü yolları:
app/config/database/public/site/resources/routes/storage/composer.json
Bu ayrım, Laravel uygulama sahipliğini kurulumda tutarken CMS ürün sahipliğini pakete taşır.
Ana Makine Ürünüyle Birlikte Var Olma Sınırı
Paket öncelikli CMS kurulumları, CMS başka bir Laravel ürününün yanına kurulduğunda ana makine uygulama sınırlarını korumalıdır. CMS, ana makine uygulamasıyla rota, yapılandırma, görünüm ve tablo çakışmalarından kaçınmalı ve ana makine uygulamasının /admin rotasının CMS'e ait olduğunu varsaymamalıdır.
Standart CMS yönetici öneki /webadmin olup, gelecekteki birlikte var olma esnekliği için yapılandırılabilir bir önek hedef yön olmaya devam etmektedir. Ana makineye ait oturum açma ve CMS'e ait yetkilendirme kararları Coexistence belgesinde açıklanmıştır. CMS statik varlıkları public/cms altında kalır ve /cms/... üzerinden sunulur.
Pakete ait CMS kimlik doğrulama rotaları etkinken /webadmin/login paket sınırının bir parçasıdır. Blade yüzeyi webblocks-cms:: görünüm ad alanı altında kalmalı, WebBlocks UI misafir kimlik doğrulama kabuğunu kullanmalı, sabitlenmiş WebBlocks UI CSS/JS dosyalarına ek olarak /cms/css/guest.css dosyasını yüklemeli ve ürün marka/logo varlıklarını /cms/brand yolundan çözümlemelidir. CMS ürün marka varlıkları; kimlik doğrulama ve ürün kabuğu kontrastının CSS filtreleri yerine açık varlıklarla çözülebilmesi için normal, koyu yüzey, vurgu üstü/ters ve yüksek kontrast favicon/tarayıcı sekmesi varyantlarını sağlamalıdır.
Yönetici rota önekleri, fiziksel herkese açık varlık dizini segmentlerini yeniden kullanmamalıdır. Kullanımdan kaldırılan /cms yönetici öneki, etkin public/cms varlık diziniyle çakışıyordu; çünkü Nginx try_files, Laravel rotayı almadan önce /cms/ yolunu bir dizin olarak çözümleyebilir. Bu nedenle mevcut paket mimarisi, CMS yönetici ve paket oturum açma rotaları için /webadmin/... yolunu korur, /cms/... yolunu yalnızca statik varlıklara ayırır ve CMS'e ait /cms takma adlarını, /cms yönlendirmelerini ve geri getirilmiş CMS'e ait /admin rotalarını yasaklar. Eski public/cms/index.php devri paket sınırının parçası değildir ve hem kök hem de paket herkese açık varlıklarında bulunmamaya devam etmelidir.
Geçiş Aşamaları
Aşama 0: Belgele ve İskeleti Kur
Paket mimarisi planını tanıtın ve henüz çalışma zamanı kodunu taşımadan depo içinde bir paket iskeleti oluşturun. Kök uygulama davranışı değişmeden kalır.
Aşama 1: Minimal Paket Bootstrap'i
Paketin depo içinde gerçek, kurulabilir bir birim olarak var olması için paket servis sağlayıcısını ve yerel yol (path) Composer bağlantısını ekleyin. Boot mantığını kasıtlı olarak minimal tutun ve çalışma zamanı davranışını değiştirmekten kaçının.
Aşama 2A: Bootstrap Sözleşmesi
Paket servis sağlayıcısını, gelecekte pakete ait olacak kaynaklar için bootstrap sözleşmesini tanımlayacak ancak bu kaynakları henüz yetkili kılmayacak şekilde iyileştirin.
Bu aşamada sağlayıcı, paket config/, routes/, resources/views/, database/migrations/, public/ ve stubs/ için korumalı yükleme ve yayımlama kaydını güvenle hazırlayabilir; ancak yalnızca gerçek paket dosyaları mevcut olduğunda.
Paket iskeleti yalnızca yer tutucular içerdiği için mevcut kök çalışma zamanı davranışı hâlâ değişmeden kalır. Çalışma zamanı dosyaları sonraki aşamalarda fiilen pakete taşınana kadar, etkin CMS rotaları, görünümleri, yapılandırması, migrasyonları ve herkese açık varlıklar için yetkili kaynak kök Laravel uygulaması olmaya devam eder.
Pakete ait ilk varsayılan yapılandırma yolu, paket config/webblocks-updates.php dosyasıyla başlamıştır. Geçiş sırasında bu paket dosyası CMS'e ait varsayılanları sağlarken, mevcut kök config/webblocks-updates.php kurulum düzeyinde geçersiz kılma ve geriye dönük uyumlu uygulama yapılandırma dosyası olarak yerinde kalır.
Yapılandırma Sınıflandırması
Mevcut kök config/ dosyaları iki geçiş grubuna ayrılır.
CMS ürün varsayılanı adayları:
webblocks-cms.phpcms.phpcontact.phpdemo_media.phpwebblocks-updates.php
Kök dizine ait kalması gereken, Laravel uygulamasına veya kuruluma ait yapılandırma:
app.phpauth.phpcache.phpdatabase.phpfilesystems.phplogging.phpmail.phpqueue.phpservices.phpsession.php
Mevcut düşük riskli geçiş kuralı, CMS'e ait varsayılan yapılandırmayı yalnızca kararlı ürün davranışını ve net kurulum geçersiz kılma semantiğini koruduğunda taşımaktır. Pakete ait varsayılan küme artık webblocks-cms.php, cms.php, contact.php, demo_media.php ve webblocks-updates.php dosyalarını içerir. Mevcut CMS davranışına ait kök yapılandırma dosyaları, geçiş sırasında kurulum düzeyinde geçersiz kılmalar ve geriye dönük uyumlu uygulama yapılandırma giriş noktaları olarak yerinde kalır. webblocks-cms.php şimdilik yalnızca pakete aittir ve geçiş kontrollerinin sahibidir: tanılama rotaları, herkese açık durum rotaları, yönetici durum rotaları ve paket migrasyon yüklemesi varsayılan olarak devre dışı kalırken, pakete ait yönetici rotalarının yetkili hale gelebilmesi için paket yönetici rota yüklemesi etkindir.
Aşama 2: Açıkça Pakete Ait Kaynağı Taşı
CMS'e ait PHP kaynak kodunu, küçük ve incelenebilir dilimler halinde paket src/ dizinine taşımaya başlayın; ad alanlarını ve servis sağlayıcı bootstrap'ini yalnızca taşınan her alan hazır oldukça güncelleyin.
Paket konsol bootstrap'i artık salt okunur tanılama komutu webblocks:package-status ile de kanıtlanmıştır. Bu komut pakete aittir, yalnızca konsol bağlamlarında kayıtlıdır ve dosyaları, veritabanı durumunu, önbelleği, yapılandırmayı veya güncelleme durumunu değiştirmeden paket bootstrap varlığını raporlar.
İlk PHP kaynak taşıması da aynı derecede tutucu ölçütleri izlemelidir: CMS'e ait, küçük, akıl yürütmesi kolay, veritabanı veya Eloquent bağımlılığı olmayan, denetleyici veya istek bağımlılığı olmayan ve dar kapsamlı referans güncellemeleri gerektiren. Taşınan ilk sınıf, artık paket src/Support/Search/ dizinine ait saf bir arama metni yardımcısı olan SearchTextNormalizer sınıfıdır.
Mevcut Arama desteği sınırı:
- artık paket sahipliğinde:
SearchTextNormalizer,PublicSearchRebuildResult,PublicSearchIndexer,PublicSearchQuery,PublicSearchSchema,SearchablePageResolver,BlockSearchTextExtractorRegistryveReindexesPublicSearch - şu anda hiçbir Search destek sınıfının projeye özgü nedenlerle kök sahipliğinde kalması gerekmiyor; kökteki
App\Support\Search\ReindexesPublicSearchshim'i kaldırıldı
Mevcut Search dışı Support denetim sınırı:
- bu denetim adımında Search dışı ek bir Support yardımcı sınıfı taşınmadı, çünkü incelenen adayların hiçbiri mevcut düşük riskli paket sahipliği ölçütlerini karşılamıyordu
MediaKindResolverküçük ve deterministiktir, ancak şu andaApp\Models\Mediasabitlerine bağımlıdır ve bir denetleyici yolundan başvurulmaktadır; bu nedenle bu aşama için henüz yeterince bağımsız değildirDatabaseExecutionStrategyResolverşimdilik kök sahipliğinde kalıyor, çünkü veritabanı dökümü veya geri yükleme yürütme stratejisini, ortam incelemesini ve yedekleme veya geri yükleme çalışma zamanı güvenliğini doğrudan etkiliyorSiteHandleşimdilik kök sahipliğinde kalıyor, çünkü modeller, istekler ve site aktarma veya klonlama akışları tarafından kullanılıyor; bu nedenle şimdi taşınması yönlendirme, taşınabilirlik ve kalıcılığa bitişik sınırları çok erken aşmış olurduSiteDomainNormalizerşimdilik kök sahipliğinde kalıyor, çünkü hâlâ modeller, istekler, rota çözümleme ve migration'lar tarafından kullanılıyor; bu da önceki risk değerlendirmesini doğruluyor
Contact destek sınırı:
- artık paket sahipliğinde:
ContactMessageNotificationResult - şimdilik kök sahipliğinde:
ContactMessageNotifier, çünkü hâlâ posta taşıma çağrılarını, contact modeli etkileşimini ve yapılandırmaya dayalı alıcı çözümlemesini üstleniyor ContactMessageNotificationResulttaşınması güvenli bir sınıftı, çünkü model, DB, istek, yapılandırma, posta, migration veya serileştirilmiş yük bağlantısı olmayan küçük ve değişmez bir sonuç nesnesidir ve yalnızca dar bir notifier referans güncellemesi gerektirdi
Blok türü destek sınırı:
- artık paket sahipliğinde:
BlockTypeContract - şimdilik kök sahipliğinde:
BlockTypeContractRegistry, çünkü hâlâ blok modellerine, katalog eşitleme tanımlarına, çeviri kayıt defteri davranışına, kaynak yolu incelemesine ve çözümlenen bu sözleşmeleri kullanan kök sahipliğindeki denetim veya yönetim akışlarına bağımlı BlockTypeContracttaşınması güvenli bir sınıftı, çünkü yalnızca kurucuya ait durum ve deterministik dizi serileştirmesi olan küçük bir sözleşme DTO'sudur; model, DB, istek, yapılandırma, komut yan etkisi, migration veya serileştirilmiş yük bağlantısı yoktur
Sayfa yerleşimi markup sınırı:
- şimdilik kök sahipliğinde:
LayoutMarkup LayoutMarkupbu adımda taşınmadı, çünkü durumsuz ve küçük olmasına rağmen sayfa yerleşimi form istekleri, sayfa yerleşimi yöneticisi mantığı, herkese açık slot sarmalayıcı çözümlemesi ve bir yönetim Blade formu tarafından doğrudan kullanılıyor; şimdi taşınması, hâlâ bilinçli olarak kök sahipliğinde tutulan daha geniş Pages veya PublicRendering alanı içindeki istek doğrulama ve herkese açık işleme sınırlarını aşmış olurdu
Biçimlendirme destek sınırı:
- artık paket sahipliğinde:
InlineRichTextRenderer - şimdilik kök sahipliğinde:
SafeRichTextRenderer, çünkü hâlâ daha kapsamlı HTML temizleme sözleşmesini, izin verilen etiket davranışını, DOM ayrıştırma kurallarını ve herkese açık zengin metin işleme semantiğini üstleniyor InlineRichTextRenderertaşınması güvenli bir sınıftı, çünkü model, DB, istek, yapılandırma, migration veya serileştirilmiş yük bağlantısı olmayan küçük ve deterministik bir biçimlendiricidir ve yalnızca dar bir Blade ve birim testi referans güncellemesi gerektirdi
Support kaynak taşıma haritası:
- Search: paket modelleri tarafından kullanılan reindex trait'i dahil olmak üzere mevcut çalışma zamanı desteği için paket sahipliğinde. Kökteki
App\Support\Search\...shim'leri geri getirilmemelidir. - Formatting: bağımlılık yalıtımından sonra aday.
InlineRichTextRendererartık düşük riskli biçimlendirme yardımcısı olarak paket sahipliğinde;SafeRichTextRendererise daha yüksek riskli temizleme davranışını tanımladığı için kök sahipliğinde kalıyor. - BlockTypes: bağımlılık yalıtımından sonra aday.
BlockTypeContractküçük bir değer nesnesidir, ancak ad alanıBlockTypeContractRegistry, yönetim rotaları ve kökteki bir konsol denetim komutu tarafından sabitlenmiştir. - BlockTypes: bağımlılık yalıtımından sonra aday.
BlockTypeContractartık dar bir değer nesnesi taşıması olarak paket sahipliğinde, ancak ad alanı hâlâBlockTypeContractRegistry, yönetim rotaları ve kökteki bir konsol denetim komutu tarafından sabitlenmiş durumda. - Media ve Assets: paket sahipliğindeki medya modelleri ve destek sınıfları, kaldırılan eski asset shim'leri için yetkili kaynaktır. Kalan medya çalışmaları, kökteki
Asset,AssetFolder,BlockAssetveyaApp\Support\Assets\...sarmalayıcılarını geri getirmekten kaçınmalıdır. - Pages ve PublicRendering: özel bir taşıma aşamasına kadar kök sahipliğinde. Bu sınıflar rota çözümlemeyi, yerleşim seçimini, sayfa varlıklarını, slot sarmalayıcılarını, herkese açık presenter'ları, sayfa çoğaltma veya içe aktarmayı ve baştan sona model ve istek bağlantısı içeren herkese açık işleme davranışını denetler.
- Pages ve PublicRendering: özel bir taşıma aşamasına kadar kök sahipliğinde.
LayoutMarkupolası bir istisna olarak incelendi, ancak kendi mantığı durumsuz olsa da hâlâ doğrudan sayfa yerleşimi isteklerinin, slot sarmalayıcı çözümlemesinin ve yönetim görünümü işlemesinin üzerinde durduğu için kök sahipliğinde kalıyor. - Blocks: özel bir taşıma aşamasına kadar kök sahipliğinde. Bu alan blok yükü yazma işlemlerini, çeviri kalıcılığını, blok silmeyi, katalog eşitlemeyi, güvenilir HTML çıkarmayı ve doğrudan blok kalıcılığı ile renderer sözleşmeleri üzerinde duran istek kapsamlı herkese açık kayıt defterlerini üstlenir.
- SharedSlots ve Revisions: özel bir taşıma aşamasına kadar kök sahipliğinde. Bu sınıflar blok ağaçlarına, revizyon tablolarına, şema denetimlerine, çeviri satırlarına ve geri yükleme veya anlık görüntü semantiğine bağımlıdır.
- Sites, Sites\\ExportImport ve SitePromotion: özel bir taşıma aşamasına kadar kök sahipliğinde. Bu alanlar modellere, yönlendirmeye, taşınabilirliğe, arşivlere, serileştirilmiş aktarım yüklerine, klonlama veya silme akışlarına, yükseltme güvenlik yedeklerine ve herkese açık site çözümlemesine sıkı biçimde bağlıdır.
- System ve System\\Updates: özel bir taşıma aşamasına kadar kök sahipliğinde. Bu sınıflar ayar kalıcılığını, yüklü sürüm durumunu, yedekleme veya geri yüklemeyi, SQL doğrulamasını, güncelleme indirme veya çıkarma akışını ve veritabanı yürütme stratejisini üstlenir.
- Install ve ProjectLayer: henüz taşımayın. Bu sınıflar yükleyici akışına,
.envyazma işlemlerine, rota veya sağlayıcı yüklemeye, kurulum durumu denetimlerine ve proje kökü özelleştirme sınırlarına dokunur. - Navigation, Locales, Users, Visitors, Contact ve Icons: bağımlılık yalıtımından sonra aday. Her grup bazı daha küçük yardımcılar veya sonuç nesneleri içerir, ancak mevcut uygulamalar hâlâ modellere, kimlik doğrulamaya, postaya, şema incelemesine, HTTP isteklerine veya ayarlara dayalı çalışma zamanı davranışına dayanır.
- Navigation, Locales, Users, Visitors, Contact ve Icons: bağımlılık yalıtımından sonra aday.
ContactMessageNotificationResultartık dar bir değer nesnesi taşıması olarak paket sahipliğinde; kalan gruplar ise hâlâ modellere, kimlik doğrulamaya, postaya, şema incelemesine, HTTP isteklerine veya ayarlara dayalı çalışma zamanı davranışına dayanıyor. - Admin, Audit ve Database: bağımlılık yalıtımından sonra aday.
AdminPagination,CurrentActorResolverveDestructiveDatabaseCommandGuardküçüktür, ancak her biri hâlâ kök ayarlarına, kimlik doğrulamaya veya uygulama güvenlik kancalarına bağlıdır. - WebBlocks: paket sahipliğindeki
WebBlocks\Cms\Support\WebBlocks, artık hem paket tüketicileri hem de bakım deposu kökü için ürün kimliği ve sürüm kaynağıdır.
2. Aşama kaynak denetim noktası notu:
- ilk düşük riskli yardımcı ve değer nesnesi taşımaları
v1.31.60sürümüne kadar başarıyla tamamlandı - paket bağlantılı yerel geliştirme ortamı
v1.31.60sonrasında başarıyla güncellendi; bu, denetim noktasının sürdürülen yerel iş akışıyla uyumlu kaldığını doğruluyor - fırsatçı düşük riskli PHP kaynak taşımaları artık bilinçli olarak duraklatıldı
- özel ve odaklı bir aşama planı ile bağımlılık denetimi olmadan çalışma zamanı ağırlıklı sınıfları taşımaya devam etmeyin
Daha yüksek riskli gruplar için mevcut engeller:
- Search, Pages, Blocks, Sites, Navigation, Locales, Icons, Visitors ve System genelinde doğrudan
App\Models\...veya Eloquent sorgu bağlantısı - Admin, Pages, PublicRendering, Formatting ve bazı BlockTypes yardımcılarında istek, rota, denetleyici veya görünüm bağlantısı
- Search, SharedSlots, Revisions, Visitors, Install ve System içinde şema, migration biçimi veya tablo varlığı denetimleri
- Contact, Icons, Install, System ve Updates içinde yapılandırma, env, HTTP, posta, dosya sistemi, süreç, yedekleme, güncelleme ve yerel çalışma zamanı bağlantısı
- Sites\\ExportImport, SitePromotion, sayfa içe aktarma ve eski asset uyumluluk yardımcılarında serileştirilmiş arşiv veya aktarım yükü bağlantısı
3. Aşama: Paket Kaynaklarını Taşıma
Açıkça paket sahipliğinde olan yapılandırmayı, rotaları, görünümleri, migration'ları, seeder'ları, herkese açık varlıkları ve stub'ları paket düzeyindeki Laravel kaynak klasörlerine taşıyın. Paket yükleme ve yayımlama (publish) davranışını hepsini bir kerede değil, aşamalı olarak devreye alın.
Mevcut 3. Aşama seeder dilimi artık paket sahipliğindeki katalog seeder sınırını ve onun paket sahipliğindeki toplayıcısını kapsıyor:
- artık paket sahipliğinde:
packages/webblocks-cms/database/seeders/altındaCoreCatalogSeeder,IconCatalogSeeder,PageTypeSeeder,LayoutTypeSeeder,SlotTypeSeeder - kök uyumluluk giriş noktaları
database/seeders/içinde kalıyor; böylece mevcut kurulumlar, testler ve mevcut çalışma zamanı veya güncelleme giriş noktalarıDatabase\Seeders\...çağırmaya devam edebiliyor - paket sahipliğindeki
CoreCatalogSeederyalnızca bir sahiplik taşımasıdır: hâlâ kök sahipliğindekiPageLayoutSeederveBlockTypeSeedersınıflarına devrediyor ve mevcut kökDatabaseSeederile güncelleme giriş noktaları hâlâ kök uyumluluk sarmalayıcısını çağırıyor - şimdilik hâlâ kök sahipliğinde:
PageLayoutSeeder,BlockTypeSeeder,DatabaseSeederve etkin System Update kurulum sonrası komutları - bu aşamadaki paket seeder sahipliği yalnızca ad alanı ve sınır taşımasıyla ilgilidir, mevcut kök güncelleme yetkisini değiştirmekle ilgili değildir
Sonraki Aşama: Paket Kaynak Sınırı
v1.31.60 sonrasındaki bir sonraki geçiş odağı, daha fazla fırsatçı yardımcı taşıması değil, paket kaynak sahipliğidir.
v1.31.62 Paket Kaynak Sınırı Pilotu
v1.31.62 denetim noktası, etkin çalışma zamanı sahipliğini henüz devretmeden paket kaynak sınırını daha açık ve test edilebilir bir pilota dönüştürüyor.
- paket
routes/,resources/views/,database/migrations/,public/vestubs/dizinleri, gelecekteki sahiplik niyetini belgeleyen işaretçi dosyalarla birlikte artık açıkça ayrılmış paket sınır dizinleri olarak mevcut - paket yapılandırma varsayılanları paket
config/dizini altında CMS sahipliğinde kalıyor - eşleşen kök yapılandırma dosyaları, kurulum düzeyi geçersiz kılma katmanı ve geriye dönük uyumlu uygulama yapılandırma giriş noktaları olarak kalıyor
- paket servis sağlayıcısı paket yayımlamayı açık ve paket etiketli tutuyor; ancak bir geliştirici bilinçli olarak
vendor:publishçalıştırmadıkça yayımlama etkisiz kalıyor - paket görünüm ad alanı
webblocks-cms, mevcut kök yönetim veya herkese açık görünüm çözümlemesini değiştirmeden güvenli bir paket sınırı pilotu olarak artık kayıtlı - paket rotaları, paket görünümleri, paket migration'ları, paket herkese açık varlıkları ve paket stub'ları bu aşamada hâlâ etkin ve yetkili çalışma zamanı sahipliği değildir
webblocks:package-statusartık ayrılmış ve doldurulmuş paket kaynaklarının hazırlık durumunu kesinlikle salt okunur biçimde raporluyor
Bu pilot; etkin kök rotalarını, kök görünümlerini, kök migration'larını, kök herkese açık varlıklarını, denetleyicileri, istekleri, modelleri, servisleri veya System Update davranışını taşımıyor.
v1.31.63 Paket Görünüm Ad Alanı Etkinleştirme Pilotu
v1.31.63 denetim noktası, daha önce ayrılmış olan paket görünüm ad alanını, etkin çalışma zamanı sahipliğini değiştirmeden somut, test edilebilir ve paket sahipliğinde bir tanılama sınırına dönüştürüyor.
- paket
resources/views/diagnostics/package-status.blade.phpdosyası artık gerçek, paket sahipliğinde dahili bir tanılama Blade görünümü olarak mevcut - tanılama görünümü yalnızca
webblocks-cms::ad alanı üzerinden işleniyor ve hiçbir yönetim veya herkese açık rota üzerinden sunulmuyor webblocks:package-statusartık isteğe bağlı olarak--view-checkile bu tanılama görünümünü kesinlikle salt okunur biçimde işleyerek paket görünüm ad alanının doğru çözümlendiğini doğrulayabiliyor- varsayılan
webblocks:package-statusçıktısı hafif ve salt okunur kalıyor; isteğe bağlı görünüm denetimi de hiçbir dosya yazma, önbellek yazma, yapılandırma yazma, veritabanı yazma veya kurulum durumu değişikliği yapmıyor - etkin kök yönetim ve herkese açık görünümler yetkili kalıyor ve bu aşamada hiçbir mevcut kök görünüm yolu veya çalışma zamanı rota sahipliği değişmiyor
Bu pilot, paket görünüm ad alanının yüklendiğini gerçek ve paket sahipliğinde bir Blade dosyasıyla kanıtlarken etkin kök yönetim veya herkese açık görünümlerin taşınmasından bilinçli olarak kaçınıyor.
v1.31.64 Paket Rota Sınırı Pilotu
v1.31.64 denetim noktası, daha önce ayrılmış olan paket rota sınırını, etkin rota sahipliğini değiştirmeden somut ve test edilebilir bir tanılama rotası pilotuna dönüştürüyor.
- paket
routes/diagnostics.phpdosyası, gelecekteki paket içi tanılamalar için artık gerçek, paket sahipliğinde bir tanılama rota dosyası olarak mevcut - paket servis sağlayıcısı, paket tanılama rotalarının yüklenmesini açıkça
webblocks-cms.diagnostics.load_routesarkasında korumaya devam ediyor; bu nedenle paket tanılama rotaları varsayılan olarak normal çalışma zamanına yüklenmiyor webblocks:package-statusartık paket rota sınırının varlığını, paket rota dosyası durumunu, beklenen tanılama rota dosyasının var olup olmadığını, korumalı rota yükleme durumunu ve tanılama rotasının şu anda yüklü olup olmadığını raporluyor- etkin kök yönetim ve herkese açık rotalar yetkili kalıyor ve bu aşamada hiçbir mevcut kök yönetim veya herkese açık rota dosyası taşınmadı ya da değiştirilmedi
Bu pilot, paket rota sınırını gerçek ve paket sahipliğinde bir tanılama rota dosyasıyla kanıtlarken etkin yönetim veya herkese açık rota sahipliğinin taşınmasından bilinçli olarak kaçınıyor.
v1.31.65 Paket Sınırının Tamamlanması
v1.31.65 denetim noktası; migration'lar, herkese açık varlıklar, stub'lar ve Composer tarafından yönetilen güncelleme akışı hedefi için kalan çalışma zamanı dışı paket sınırı pilotlarını, etkin çalışma zamanı sahipliğini taşımadan tamamlıyor.
- paket
database/migrations/,public/vestubs/dizinleri artık gelecekteki paket sahipliğindeki rolleri için daha net ayrılmış-sınır işaretleyici dokümantasyonu barındırıyor - paket migration yüklemesi artık
webblocks-cms.boundaries.load_migrationsüzerinden açıkça koruma altında devre dışı; bu sayede paket migration'ları, ileride odaklanmış bir çalışma zamanı aşaması bunları bilinçli olarak bağlayana kadar etkisiz kalıyor - paket public varlık ve stub yayımlama işlemleri açık ve paket etiketli olmaya devam ediyor; artık kök çalışma zamanı varlıklarını veya mevcut yükleyiciyi değiştirmeden ilk paket sahipliğindeki varlık işaretleyicisini ve başlangıç stub'larını yayımlıyorlar
webblocks:package-statusartık migration sınır durumunu, public varlık sınır durumunu, stub sınır durumunu, Composer tarafından yönetilen güncelleme hedefi notunu ve kök çalışma zamanının yetkili kalmaya devam ettiği kuralını raporluyor- mevcut kök Composer davranışı, kök çalışma zamanı yüklemesi ve System Update davranışı bu kontrol noktasında değişmeden kalıyor
Bu kontrol noktası, paket sınırı pilot aşamasını tamamlıyor. Depo artık rotalar, görünümler, migration'lar, public varlıklar, stub'lar ve Composer tarafından yönetilen güncelleme niyeti için somut ve test edilebilir paket sınırlarına sahipken, aktif çalışma zamanı sahipliği hâlâ kök uygulamada kalıyor.
Sonraki Aşama: İlk Gerçek Paket Sahipliğindeki Çalışma Zamanı Dilimi
- açıkça paket sahipliğinde olan ve uçtan uca taşınacak kadar düşük riskli, dar bir çalışma zamanı dilimi seçin
- yalnızca o dilim için rota, görünüm, migration, varlık veya çalışma zamanı sahipliği kuralları açıkça tanımlandığında taşıma yapın
- aktif çalışma zamanı yetkisi kökten pakete geçmeden önce geriye dönük uyumluluğu ve kurulum beklentilerini doğrulayın
- ileride güncelleme akışına adanmış bir aşama bilinçli olarak yeniden tasarlayana kadar System Update davranışını değişmeden koruyun
v1.32.0 Çalışma Zamanı Taşıma Aşamaları 1-2
v1.32.0 sürümü, ilk gerçek paket sahipliğindeki çalışma zamanı dilimi kontrol noktasıdır. Paket sahipliğindeki çalışma zamanı çalışmasına, mevcut CMS çalışma zamanının yerini almadan paket çalışma zamanı sahipliğini kanıtlayan, bilinçli olarak küçük tutulmuş üç korumalı dilimle başlıyor.
Aşama 1: korumalı paket tanılama çalışma zamanı dilimi
- paket
routes/diagnostics.phpartıkpackages/webblocks-cms/src/Http/Controllers/Diagnostics/PackageDiagnosticsController.phpaltındaki paket sahipliğindeki bir controller'a işaret ediyor - bu controller, mevcut paket tanılama görünümü
webblocks-cms::diagnostics.package-statusgörünümünü işliyor - tanılama rotası hâlâ
webblocks-cms.diagnostics.load_routesarkasında varsayılan olarak kapalı kalıyor - bu, bilinçli olarak yalnızca ayrılmış bir dahili paket yoludur ve herhangi bir kök yönetim veya public çalışma zamanı rotasının yerini almaz
Aşama 2A: ilk odaklanmış paket yönetim dilimi
- paket
routes/admin.phpbaşlangıçta paket sahipliğinde küçük bir yönetim çalışma zamanı durum dilimi getirdi:admin.webblocks-cms.runtime-status, şimdi/webadmin/_webblocks-cms/runtime-statusadresine bağlı - bu durum rotası, paket sahipliğindeki bir controller'ı ve
packages/webblocks-cms/resources/views/admin/runtime-status.blade.phpaltındaki paket sahipliğindeki bir Blade görünümünü kullanıyor - paket yönetim rotası yüklemesi artık varsayılan olarak etkin ve aktif CMS yönetim rota ağacı artık paketteki
routes/admin.phpdosyasından yükleniyor - ayrılmış yönetim durum rotasının kendisi
webblocks-cms.admin.load_status_routearkasında varsayılan olarak kapalı kalıyor - paket yönetim rotaları, uygun olan yerlerde normal kurulum, kimlik doğrulama, yönetim erişimi ve süper yönetici sistem erişimi middleware gereksinimlerini koruyor
- aktif yönetim çalışma zamanı sahipliği artık Sayfalar, Bloklar, Medya, Ortak Slotlar, Gezinme, Blok Tipleri, Sayfa Yerleşimleri, Siteler, Site Alan Adları, Site Değişkenleri ve Diller (Locale) için paket sahipliğindeyken; Kullanıcılar, Sistem, kurulum/güncelleme, yedekleme/geri yükleme, dışa/içe aktarma, terfi, kimlik doğrulama/profil, migration'lar ve kök çalışma zamanı varlıkları kök sahipliğinde kalıyor
Aşama 2B: ilk odaklanmış paket public dilimi
- paket
routes/public.phpbaşlangıçta paket sahipliğinde küçük bir public çalışma zamanı durum dilimi getirdi:/_webblocks-cms/runtime-statusadresindewebblocks-cms.public.runtime-status - bu rota, paket sahipliğindeki bir controller'ı ve
packages/webblocks-cms/resources/views/public/runtime-status.blade.phpaltındaki paket sahipliğindeki bir Blade görünümünü kullanıyor - paket public rota yüklemesi artık varsayılan olarak etkin ve aktif CMS public rota ağacı artık paketteki
routes/public.phpdosyasından yükleniyor - paket sahipliğindeki public giriş controller'ları artık ana sayfa, yerelleştirilmiş ana sayfa, arama, yerelleştirilmiş arama, arama JSON, sayfa gösterimi, yerelleştirilmiş sayfa gösterimi, iletişim mesajı gönderimi, gizlilik onayı senkronizasyonu ve
admin-api.*dahili alan adı uç noktalarını yönetiyor - paket sahipliğindeki public giriş görünümleri artık
webblocks-cms::public.pages.showvewebblocks-cms::public.search.showüzerinden sayfa ve arama giriş şablonlarını kapsıyor - ayrılmış paket public durum rotasının kendisi
webblocks-cms.public.load_status_routearkasında varsayılan olarak kapalı kalıyor - public varlık çalışma zamanı yetkisi ile kurulum/güncelleme sınırları, açıkça taşınmış paket sahipliğindeki public rota, model, destek ve görünüm dilimlerinin dışında hâlâ kök sahipliğinde kalıyor
Bu dilimler neden kısmen korumalı kalıyor
- kök çalışma zamanı, bilinçli olarak taşınmış paket sahipliğindeki dilimlerin dışındaki kurulumlar için yetkili kalmaya devam ediyor
- ayrılmış paket yolları, mevcut yönetim ve public çalışma zamanıyla rota adı ve yol çakışmalarından kaçınıyor
- ayrı ayrı korunan durum rotaları; paket bootstrap'inin, rota yüklemesinin, görünüm yüklemesinin, middleware davranışının ve durum raporlamasının, bu ayrılmış tanılama yollarını normal çalışma zamanına zorlamadan test edilmesine olanak tanıyor
- taşınan çalışma zamanı yetkisi hâlâ bilinçli olarak kısmi; böylece modeller, çoğu yönetim uygulama sınıfı, daha geniş destek katmanları, migration'lar, varlıklar ve System Update davranışı gibi yüksek riskli gruplar erken paket sahipliğinden kaçınıyor
Sonraki Olası Rota Aşaması
- kök rota uyumluluk yüklemesini küçültmeye, yalnızca paket rota dosyalarının arkasındaki kalan yönetim ve public uygulamaları taşındıktan veya bilinçli olarak kök sahipliğinde bırakıldıktan sonra devam edin
- normal CMS yönetim ve public rota ağaçları paket yetkisinde olsa bile, ayrılmış tanılama ve runtime-status rotalarını açıkça korumalı tutmaya devam edin
- paket rota yetkisi daha derin çalışma zamanı çıkarımının önünde ilerlerken rota adlarını, yolları, middleware'i ve yönlendirme davranışını koruyun
- gelecekteki rota temizliğini, CMS'in tüketici paketi olarak hazır olduğunun kanıtı olarak değil, bir uyumluluk azaltma aşaması olarak ele alın
Sonraki Olası Görünüm Aşaması
- gerçek paket sahipliğindeki görünümleri yalnızca çalışma zamanı konusuna göre gruplanmış odaklanmış takip aşamalarında taşıyın; örneğin önce paket sahipliğindeki tanılama, ardından dikkatle denetlenmiş yönetim veya public görünüm sahipliği
- rota sahipliği ile görünüm sahipliğini hizalı tutun; böylece ileride taşınan bir görünüm, yalnızca sahibi olan çalışma zamanı yolu bilinçli olarak paket tarafından yönetildiğinde eklenir
- her rota veya görünüm sahipliği aşaması açıkça tasarlanıp doğrulanana kadar net kurulum geçersiz kılma ve kök yetki kurallarını koruyun
Paket Yapılandırma Varsayılanları ve Kök Kurulum Geçersiz Kılmaları
- Paket
config/dizini, CMS sahipliğindeki varsayılan değerleri tanımlamaya devam etmelidir. - Kök
config/dizini, geçiş süresince kurulum sahipliğindeki geçersiz kılma katmanı olarak kalır. - Bir paket yapılandırma dosyası, geçersiz kılma senaryosu ve bootstrap bağlantısı açık ve kararlı hale gelene kadar çalışma zamanı davranışı için yetkili olmamalıdır.
Paket Migration Yükleme ve Yayımlama Stratejisi
- Gerçek paket sahipliğinde migration'lar var olana ve sahiplikleri bilinçli olarak taşınana kadar paket migration'ları yetkisiz kalmalıdır.
- Migration sahipliği başladığında, CMS sahipliğindeki migration dosyaları için paket yüklemesini tercih edin ve açık yayımlama rehberliğini yalnızca kuruluma özel özelleştirmenin gerçekten gerekli olduğu yerlerde kullanın.
- Migration sınırı çalışmasını, ilgisiz çalışma zamanı yeniden düzenlemeleriyle karıştırmayın.
- Kök
database/migrations/, kaynaktan yönetilen kurulumlar için uyumluluk ve yetki katmanı olarak kalır. Kaynaktan yönetilen güncelleme yolu,WebBlocks\\Cms\\ => packages/webblocks-cms/src/için bakım deposu kök Composer autoload sinyalini gerektirir; bir tüketici kurulumundapackages/webblocks-cmsdizininin bulunması yeterli değildir. Paket tüketici güncellemeleri, açık paket sahipliğindeki güncelleme migration'larını kullanmalı ve barındıran Laravel uygulamasının migration'larını örtük olarak çalıştırmamalıdır. - Paket tüketici temiz kurulumları,
webblocks:installüzerinden paket sahipliğindekidatabase/migrations/freshşemasını kullanır. Yükleyici, bu şema çalışmadan önce kısmi CMS tablolarını ön kontrolden geçirir, varsayılan olarak tanılamalarla durur ve boş kısmi tabloları yalnızca operatör--repair-partialsağladığında yeniden adlandırır. PageLayoutSeederveBlockTypeSeeder, sayfa yerleşimi kataloğu, blok tipi senkronizasyonu ve daha geniş Sayfalar veya Bloklar çalışma zamanı sınırlarını hâlâ kestikleri için şimdilik kök sahipliğinde kalıyor.DatabaseSeederda aktif kurulum giriş noktası ve kurulu sürüm yazıcısı olarak kök sahipliğinde kalıyor.
Paket Rota Sahipliği Stratejisi
- Paket rota sahipliği, paketteki
routes/admin.phpveroutes/public.phpdosyaları üzerinden CMS yönetim ve public çalışma zamanı ağaçları için artık aktiftir. - Kök
routes/web.phpartık kurulum, kimlik doğrulama, profil ve bu paket sahipliğindeki CMS rota dosyalarının uyumluluk yüklemesine indirgenmiştir. - Rota taşımaları; middleware'i, bağlamaları, adları, yolları, modal akışlarını, yönlendirmeleri ve sonraki kurulum beklentilerini korumaya devam etmelidir.
- Tanılama, yönetim runtime-status ve public runtime-status rotaları ayrı ayrı korunan ayrılmış yollar olarak kalır ve normal, her zaman açık CMS rota yüzeyinin parçası değildir.
- Rota yetkisi henüz tam paket çalışma zamanı sahipliği anlamına gelmez; çünkü bu rotaların arkasındaki birçok işleyici hâlâ kök modellere, destek koduna, görünümlere ve varlıklara bağımlıdır.
Paket Görünüm ve Kaynak Sahipliği Stratejisi
- Paket
resources/viewsartık tanılama görünümünün, korumalı yönetim ve public runtime-status görünümlerinin, simge kataloğu yönetim görünümlerinin, public yerleşim kabuğunun, public sayfa ve arama kabuklarının, public arama modalının ve paket sahipliğindeki slot giriş görünümlerinin sahibidir. - Kök
resources/viewsartık taşınan public yerleşim, sayfa, slot ve arama giriş görünümleri için uyumluluk sarmalayıcılarını barındırırken; çoğu yönetim ekranı ve henüz tam olarak çıkarılmamış daha geniş public blok işleyici uyumluluk ağacı için yetkili olmaya devam ediyor. - Görünüm taşımaları, sahibi olan çalışma zamanı yoluyla hizalı kalmalıdır; böylece paket rota yetkisi, gerçek sahip görünüm ve controller katmanının çok önüne geçmez.
- Kök görünümler, bilinçli olarak taşınmış
webblocks-cms::yüzeylerinin dışındaki aktif CMS işlemesinin çoğunluğu için uyumluluk yolu olarak kalır.
Paket Public Varlık Yayımlama veya Senkronizasyon Stratejisi
- Paket
public/dizini, CMS sahipliğindeki yayımlanabilir varlıkların nihai sahibi olmalıdır. - Geçiş çalışması, CMS sahipliğindeki paket varlıklarını kurulum sahipliğindeki
public/site/...geçersiz kılmalarından ayırt etmelidir. - Varlık yayımlama veya senkronizasyon, yalnızca gerçek paket varlıkları var olduğunda ve güncelleme akışı yayımlamanın ne zaman gerekli olduğunu net biçimde tanımladığında gerçekleşmelidir.
- Mevcut yayımlama niyeti paket etiketli ve açık kalmaya devam ediyor.
public/cms/package-boundary.json, ilk paket sahipliğindeki yayımlanabilir varlıktır vewebblocks-cms-assetsüzerinden yayımlanabilir. - Paket
public/cms/artık taşınan paket sahipliğindeki public yerleşimin kullandığı public yerleşim CSS ve JS dosyalarını da barındırıyor; ancak mevcut kökpublic/cms/...varlık URL'leri uyumluluk için aktif çalışma zamanında hâlâ yetkili kalırken, kurulum sahipliğindekipublic/site/...varlıkları site bazlı geçersiz kılmalar için yetkili kalıyor. - Paket
public/cms/içindeindex.phpbulunmamalıdır; CMS yönetim girişi/webadminyoludur, statik varlık dizininden bir ön denetleyici köprüsü değildir. - WebBlocks UI CDN sabitleme ve varsayılan simge manifest senkronizasyon kaynağı bu aşamada değişmeden kalıyor.
Paket Stub Stratejisi
- Paket
stubs/dizini, CMS ürün davranışına ait yeniden kullanılabilir üretilmiş dosya şablonları için ayrılmalıdır. - Kuruluma özgü veya projeye özgü iskele yapıları varsayılan olarak CMS paket stub'larına taşınmamalıdır.
- Başlangıç odaklı stub'lar artık paketteki
stubs/starter/altında yaşıyor; ancak adanmış bir başlangıç paketi bunları bilinçli olarak devralana kadar mevcut yükleyici davranışı ve kök proje iskelesi yetkili kalıyor.
Paket Yayımlama Etiketi Niyeti
webblocks-cms-config, bir geliştirici bu iş akışına bilinçli olarak ihtiyaç duyduğunda paket sahipliğindeki CMS varsayılan yapılandırma dosyalarını kurulum köküne yayımlamak için ayrılmıştır.webblocks-cms-assets, paket sahipliğindeki CMS public varlıklarınıpublic/cmsadresindeki aktif çalışma zamanı uyumluluk yoluna yayımlar.webblocks-cms-stubs, paket sahipliğindeki başlangıç stub'larını yayımlar.- Bu etiketler tek başlarına çalışma zamanı davranışını değiştirmez ve
vendor:publishaçıkça çalıştırılana kadar etkisiz kalır.
Composer Tarafından Yönetilen Güncelleme Akışı ve Güncelleme Sonrası Komutlar
- Uzun vadeli hedef, Composer tarafından yönetilen paket güncellemeleri ve ardından gelen kontrollü çalışma zamanı adımları olmaya devam ediyor.
- Beklenen güncelleme sonrası adımlar ileride migration'ları, blok tipi senkronizasyonunu, önbellek temizlemeyi veya asset yayınlama ya da senkronizasyonunu içerebilir; ancak yalnızca pakete ait bu kaynaklar gerçek hâle geldiğinde ve bilinçli olarak bağlandığında.
- Kanonik sürüm artefaktı artık bakım deposu kökü değil, paket kökünün kendisidir. Güncelleme ZIP'leri; arşiv kökü veya tek bir üst düzey sarmalayıcı dizin,
fklavyenet/webblocks-cmstarafından beklenen paketcomposer.json,src/,config/,resources/,database/,routes/vepublic/yerleşimini içeriyorsa geçerlidir. - Eski kök yönetimli updater arşiv biçimi, modern paket-native güncellemeler için bilinçli olarak emekliye ayrılmıştır. Yalnızca, updater'ı paket köklü ZIP'leri henüz doğrulayamayan
1.31.53gibi paket-native öncesi kurulumlar için açık bir köprü artefaktı olarak geçerli kalır. - Paket köklü sürüm metadata'sı, köprü yeteneğine sahip bir updater gerektirmelidir (
minimum_client_versiondeğeri1.32.18veya daha yeni). Daha eski kurulumlar önce uyumlu köprüyü almalı, köprü paket-native doğrulama ve uygulama kodunu kurduktan sonra modern paket köklü artefaktı kullanmalıdır. - Mevcut geçiş sırasında kök Laravel uygulaması kuruluma ait olmaya devam eder ve bakım modunu, migration'ları, seeder'ları, senkronizasyon komutlarını, önbellek temizlemelerini ve kurulu sürüm kalıcılığını kurulum kökünden çalıştırmayı sürdürür.
- Uygulama içi güncellemeler artık doğrulanmış paket artefaktını
packages/webblocks-cms/dizinine ve Composer autoload, etkin tüketici çalışma zamanınınWebBlocks\Cms\ad alanını hâlâvendor/fklavyenet/webblocks-cms/...yolundan yüklediğini gösterdiğinde, eşleşen güvenli vendor paket çalışma zamanı köküne uygular. Kuruluma ait kök kabuğun, kök config geçersiz kılmalarının, kök migration'ların,project/,storage/,.envveyapublic/site/yollarının üzerine yazmazlar. - Kök yönetimli köprü arşivleri, modern doğrulamanın gevşetilmesi değildir. Bir köprü arşivi, eski
artisanartı kökcomposer.jsonbiçimini yalnızca eski istemci uyumluluğu için korumalı ve ardından katı paket köklüfklavyenet/webblocks-cmsbiçimini uygulayabilen updater kodunu kurmalıdır. v1.31.65sınır tamamlama kontrol noktası bunu yalnızca bir hedef notu olarak tutar. İlk gerçek paket sahipliğindeki çalışma zamanı dilimi var olana kadar mevcut kök Composer davranışı ve çalışma zamanı güncelleme akışı yetkili kalmaya devam eder.
Paket-starter ayrımı hazır olduğunda hedeflenen kurulum akışı:
composer require fklavyenet/webblocks-cms- kurulum düzeyindeki Laravel kökü;
.env, kökcomposer.json,storage/, kuruluma ait config geçersiz kılmaları ve geçiş sırasında hâlâ var olan kuruluma özgüproject/özelleştirmelerinden sorumlu olmaya devam eder - paket keşfi
WebBlocks\Cms\WebBlocksCmsServiceProvidersağlayıcısını yüklemelidir webblocks:package-statusgibi paket tanılamaları, durumu değiştirmeden paketin hazır olduğunu doğrulamalıdır
Composer tarafından yönetilen paket güncellemeleri yetkili hâle geldiğinde hedeflenen güncelleme akışı:
composer update fklavyenet/webblocks-cms- migration'ları çalıştırın
- gerekli yerlerde önbellekleri temizleyin
- paket asset'lerini yalnızca gerçek paket asset'leri gerektirdiğinde yayınlayın veya senkronize edin
webblocks:package-statusgibi paket tanılamalarını çalıştırın- kurulu sürüm durumunu yalnızca güncelleme gerçek bir sürüm sınırına karşılık geldiğinde senkronize edin
- gönderilen katalog satırları bakım gerektirdiğinde açık katalog onarımını ayrıca çalıştırın
Geçerli uyumluluk kuralı:
- bugün bu kurulum ve güncelleme akışı notları yalnızca hedef durum dokümantasyonudur
- mevcut kök Composer davranışı, kurucu davranışı ve uygulama içi System Update davranışı, ileride özel bir güncelleme akışı aşaması bunları bilinçli olarak değiştirene kadar yetkili kalır
Gelecekteki Starter Proje Ayrımı Yönü
- Uzun vadeli yön,
fklavyenet/webblocks-cmspaketine bağımlı ayrı bir starter proje olmaya devam ediyor. - Depo içindeki mevcut paket, bu ayrım denenmeden önce sınırları ve sahipliği belirlemek için vardır.
- Starter ayrımı yalnızca kalan kök sınırları yeniden tasarlandıktan sonra yapılmalıdır: kurulum/kimlik doğrulama/profil çalışma zamanı, uygulamaya ait
Usermodeli, kök migration yetkisi, kök güncelleme/kurulum operasyonel yetkisi ve etkin kökpublic/cmsçalışma zamanı asset yolu.
Ayrılmış Sınırlardan Sonraki Adım
- Kaynak tiplerini ayrılmış sınırdan etkin paket sahipliğine tek tek taşıyın.
- Yalnızca ilgili kaynak tipi için tam çalışma zamanı yükleme kuralı, kurulum geçersiz kılma yaklaşımı ve yayınlama/güncelleme davranışı netleştiğinde başlayın.
- Birden fazla çalışma zamanı kaynak tipini tek bir kontrol noktasında karıştırmak yerine paket view'ları, paket migration'ları veya paket public asset'leri gibi odaklı aşama planlarını tercih edin.
- Çalışma zamanı ağırlıklı kaynak taşımalarını, kaynak-sınırı pilot çalışmasına katmak yerine özel bağımlılık denetimlerinin arkasında tutun.
Aşama 4: Paket Tarafından Yönetilen Güncelleme Akışı
Güncelleme davranışını, Composer tarafından yönetilen CMS paket güncellemelerine ve gerektiğinde migration'lar, önbellek temizleme ve asset yayınlama ya da senkronizasyonu gibi kontrollü güncelleme sonrası adımlara doğru kaydırın. Katalog onarımı, varsayılan bir güncelleme adımı olmak yerine açık bir operatör bakım iş akışı olarak kalır.
Mevcut hazırlık kontrol noktası artık şunları içerir:
WebBlocks\Cms\Database\Seeders\için paket Composer autoload'upackages/webblocks-cmsdizinine yönelik korunan kök path-repository geliştirme bağlantısı- mevcut kök System Update davranışının, ileride özel bir güncelleme akışı aşaması bunu bilinçli olarak değiştirene kadar yetkili kalacağına dair açık dokümantasyon
Aşama 5: Starter Proje Ayrımı
Yeni kurulumların, CMS çekirdek deposunu proje köküne klonlamak yerine CMS paketine bağımlı, kullanıcıya ait bir Laravel kökünden başlaması için fklavyenet/webblocks-cms-starter gibi ayrı bir starter proje yönünü tanıtın.
Mevcut kontrol noktası, gelecekteki bu ayrım için yalnızca sınır hazırlığı altyapısı ekler:
- daha fazla CMS'e ait seeder artık kök uygulama ad alanı yerine paket altında yer alıyor
- daha fazla düşük riskli çalışma zamanı destek yardımcısı artık paket
src/Support/altında yer alıyor - kök
app/uyumluluk sarmalayıcıları artık varsayılan olarak tutulmuyor; paket karşılığı olan PHP sarmalayıcıları kaldırıldı, kök Blade, seeder ve çalışma zamanı asset uyumluluk yolları ise hâlâ gerekli olduğu yerlerde duruyor - paket composer metadata'sı, sağlayıcı keşfi, path-repository geliştirme bağlantısı ve belgelenmiş hedef
composer requireveyacomposer updateakışı artık starter temeli hazırlık taban çizgisini oluşturuyor
Mevcut Kurulumlar için Geçiş Rehberi
Mevcut kurulumlar için temkinli bir geçiş yolu gerekecek:
- paket geçişi tamamlanmamışken mevcut kurulumların çalışmaya devam etmesini sağlayın
- çalışma zamanı yeniden düzenlemelerini paketleme değişiklikleriyle karıştıran büyük tek adımlı taşımalardan kaçının
- kuruluma özgü kök dosyaları kullanıcıya ait proje durumu olarak koruyun
- güncelleme mekanizması olarak kök genelinde CMS çekirdek dosyası değiştirmeye güvenmeyi bırakın
- paket sahipliğindeki karşılıkları var olduktan sonra, eskimiş kök yönetimli CMS çekirdek dosyalarının kaldırılması için net rehberlik sunun
Geçiş, tek bir yeniden yazım yerine düşük riskli, kademeli ilerlemeye öncelik vermelidir.
Mevcut Durum
Bu depodaki güvenle taşınabilir, CMS'e ait tüm kaynak kodu için paket geçişi konsolidasyonu tamamlanmıştır.
- Paket sahipliğindeki yetki artık güvenle taşınabilir CMS route, view, model, seeder, ortak parça, admin yerleşimi ve destekleyici çalışma zamanı kaynak alanlarını kapsıyor.
- Paket karşılığı olan kök
App\...sınıfları bakım deposunun app ağacından kaldırıldı; kök Blade dosyaları, kök seeder'lar ve kökpublic/cms/...çalışma zamanı kopyaları, uyumluluk sarmalayıcıları veya uyumluluk yolları olarak bilinçli şekilde yerinde bırakıldı. - Etkin çalışma zamanı asset URL'leri, eşleşen paket sahipliğindeki kaynak dosyaları
packages/webblocks-cms/public/cms/...altında var olsa bile hâlâ kökpublic/cms/...uyumluluk yollarını kullanıyor. - Kalan son sınırlar: kurulum/kimlik doğrulama/profil çalışma zamanı, uygulamaya ait
Usermodeli, kök migration yetkisi, kök güncelleme/kurulum operasyonel yetkisi ve gelecekteki starter ayrımı tasarımı. - Bu engeller nedeniyle, güvenli CMS'e ait kaynak konsolidasyon çalışması tamamlanmış olsa da paket henüz starter ayrımına hazır değildir.
Bu depo değişikliği yalnızca ilk düşük riskli geçiş adımıdır:
- mimari dokümantasyonu ekler
packages/webblocks-cms/altında depo içi paket iskeletini oluşturur- minimal bir paket
composer.jsonekler - bir
WebBlocks\Cms\WebBlocksCmsServiceProviderekler - kök projeyi, paketi yerel olarak path ile require edecek şekilde bağlar
Sağlayıcı artık gelecekteki paket kaynakları için paket bootstrap sözleşmesini tanımlıyor; ancak mevcut CMS çalışma zamanı dosyaları hâlâ kök uygulamada yaşadığı için bu paket kaynakları henüz yetkili değildir.
v1.31.62 pilotu, paket routes/, resources/views/, database/migrations/, public/ ve stubs/ altına açık ayrılmış sınır işaretleyici dosyaları ekleyerek bu paket kaynak sınırlarını daha somut hâle getiriyor. Bu dizinler artık sonraki aşamalar için belgelenmiş, paket sahipliğindeki hedefler olarak var; ancak içerikleri bu kontrol noktasında hâlâ yetkili olmayan yer tutuculardır.
v1.31.63 pilotu yalnızca paket view ad alanı sınırını ilerletir: paket resources/views/diagnostics/package-status.blade.php altına gerçek bir dahili tanılama Blade view'ı ve isteğe bağlı, salt okunur bir webblocks:package-status --view-check render sondası ekler. Bu, etkin kök admin ve public view çözümlemesini yetkili bırakırken, somut, paket sahipliğindeki bir view ile paket ad alanı tabanlı view yüklemeyi kanıtlar.
v1.31.64 pilotu yalnızca paket route sınırını ilerletir: paket routes/diagnostics.php altına gerçek bir paket tanılama route dosyası eklerken, normal çalışma zamanında route yüklemesini açıkça guard ile kapalı tutar. Bu, hiçbir etkin kök admin veya public route'u taşımadan paket route dosyası sahipliği sınırlarını kanıtlar.
v1.31.65 kontrol noktası, kalan atıl (inert) sınır pilotlarını tamamlar: paket migration'larını açıkça guard ile devre dışı tutar, gerçek paket sahipliğindeki dosyalar var olana kadar paket public asset ve stub yayınlamanın atıl kaldığını doğrular ve mevcut kök güncelleme akışını değiştirmeden Composer tarafından yönetilen paket güncellemelerini hedef sınır olarak belgeler.
v1.32.0 sürümü, guard'lı çalışma zamanı taşıma aşamaları 1-2 ile bu planlı taşımayı başlatır:
- paket tanılama çalışma zamanı dilimi, bir paket controller'ı ve mevcut paket tanılama view'ı aracılığıyla uçtan uca gerçek ve paket sahipliğindedir; ancak varsayılan olarak guard ile devre dışı kalır
- odaklı bir admin çalışma zamanı dilimi artık paket
routes/admin.php,src/Http/Controllers/Admin/PackageAdminStatusController.phpveresources/views/admin/runtime-status.blade.phparacılığıyla uçtan uca paket sahipliğindedir; ancak ayrılmış bir yolda varsayılan olarak guard ile devre dışı kalır - odaklı bir public çalışma zamanı dilimi artık paket
routes/public.php,src/Http/Controllers/Public/PackagePublicStatusController.phpveresources/views/public/runtime-status.blade.phparacılığıyla uçtan uca paket sahipliğindedir; ancak ayrılmış bir yolda varsayılan olarak guard ile devre dışı kalır webblocks:package-statusartık tanılama çalışma zamanı dilimini, paket admin dilimini, paket public dilimini ve açık route guard'larını yine salt okunur bir şekilde raporlar- bu ayrılmış, yalnızca pakete özel guard'lı yolların dışındaki mevcut CMS çalışma zamanı için kök route'lar ve kök view'lar yetkili kalır
- paket
config/webblocks-cms.phpartık açık geçiş yapılandırma değerlerine sahiptir: tanılama, public durum route'ları, admin durum route'ları ve paket migration yüklemesi varsayılan olarak devre dışı kalırken, etkin paket sahipliğindeki admin route yetkisi için paket admin route yüklemesi etkindir
Aşağıdaki geçmiş kontrol noktası notları, paket yetkisinin nasıl tanıtıldığını açıklar. Kök App\... sarmalayıcılarından bahsettikleri yerlerde, mevcut kapsamlı kök app temizliği bu durumu geçersiz kılar: paket karşılığı olan PHP sarmalayıcıları, yukarıdaki mevcut kök app temizlik durumunda listelenmedikçe artık bilinçli olarak yoktur.
Mevcut Adım 1 çalışma zamanı yetkisi kontrol noktası bu sınırı daha da genişletir:
- etkin CMS admin route'ları artık paket
routes/admin.phpdosyasından yüklenir; kökroutes/web.phpise kurulum, kimlik doğrulama, profil ve uyumluluk yüklemesine indirgenmiştir - etkin CMS public route'ları artık paket
routes/public.phpdosyasından yüklenir; buna ana sayfa, yerelleştirilmiş ana sayfa, arama, yerelleştirilmiş arama, arama JSON'u, sayfa gösterimi, yerelleştirilmiş sayfa gösterimi, iletişim gönderimleri, gizlilik onayı senkronizasyonu veadmin-api.*dahildir - paket sahipliğindeki public controller'lar artık bu public giriş dilimini
packages/webblocks-cms/src/Http/Controllers/Public/altında destekler - paket sahipliğindeki
ContactMessageRequestve paket sahipliğindeki public giriş view'ları artık taşınan public route giriş noktalarını destekler - kök
App\Http\Controllers\PageController,PublicSearchController,ContactMessageController,PublicPrivacyConsentControllerveApp\Http\Requests\ContactMessageRequestdaha sonra gereksiz paket karşılığı sarmalayıcılar olarak kaldırıldı - kök modeller ve destek sınıfları yalnızca host'a ait veya açık geçiş alanlarına hizmet ettikleri yerlerde kalır; Users, kurulum/profil/kimlik doğrulama, kök public/admin asset çalışma zamanı yolları, migration'lar ve System Update davranışı sınır olmaya devam ettiğinden, paket daha derin bir çıkarma olmadan hâlâ tam bağımsız bir starter çalışma zamanı olarak hizmet etmeye hazır değildir
Mevcut Adım 2 public render kontrol noktası, paket yetkisini zaten paket sahipliğinde olan bu public route'ların arkasında daha da genişletir:
- paket
resources/views/layouts/public.blade.phpdosyası artık aktif public yerleşim kabuğunuwebblocks-cms::ad alanı altında sahiplenir - paket
resources/views/pages/show.blade.php,resources/views/search/show.blade.php,resources/views/search/partials/modal.blade.phpve paketpages/partials/slot*.blade.phpdosyaları artık aktif public sayfa kabuğunu, public arama kabuğunu, public arama modalını ve slot girdisi işleme katmanını sahiplenir - kök
resources/views/layouts/public.blade.php,resources/views/pages/show.blade.php,resources/views/search/show.blade.php,resources/views/search/partials/modal.blade.php,resources/views/pages/partials/slot.blade.phpveresources/views/pages/partials/block.blade.phpdosyaları artık yalnızca paket sahipliğindeki ad alanlı görünümlere işaret eden uyumluluk sarmalayıcıları olarak kalır - paket sahipliğindeki public işleme desteği artık
PageRouteResolver,PublicPagePresenter,PublicSharedSlotResolver,SlotWrapperResolver,SiteAssetResolver,PublicSearchQuery,PublicOverlayRegistry,PublicBodyEndRegistry,TrustedHtmlOverlayExtractor,SiteResolver,ResolvedSiteveVisitorEventLoggersınıflarını içerir - bu public işleme konularına ait kök
App\Support\...sınıfları, paket iç yapıları ve rotalar artık onlara ihtiyaç duymayınca daha sonra kaldırıldı - paket
resources/views/pages/partials/blocks/*artık birlikte gelen public blok işleyici parçacık ağacının tamamını tek bir tutarlı paket partisi olarak sahiplenir - kök
resources/views/pages/partials/blocks/dosyaları artık eşleşenwebblocks-cms::pages.partials.blocks.görünümlerine devreden ince uyumluluk sarmalayıcıları olarak kalır Block::publicRenderView()artık birlikte gelen çekirdek blok tiplerini önce paket sahipliğindeki ad alanlı blok parçacıklarına çözümler; eşleşen bir paket parçacığı bulunmadığında kuruluma özgü veya özel kök blok işleyicileri mevcut kök geri dönüş yolu üzerinden kullanılabilir olmaya devam eder- public model temeli artık paket
src/Models/altında yaşar; eşleşen kökApp\Models\...sarmalayıcıları, paket ve temiz tüketici testleri gereksiz olduklarını kanıtladıktan sonra daha sonra kaldırıldı Page,PageTranslation,PageSlotveBlockartık eşleşen kök sarmalayıcılar olmadan paketsrc/Models/altında da yaşarUserbilinçli olarak uygulama ve kök sahipliğinde kalır ve paket model taşıma hedefinin parçası değildir- paket
public/cms/artık taşınan paket sahipliğindeki public yerleşim ve blok işleme katmanının ihtiyaç duyduğu aktif public çalışma zamanı CSS ve JS dosyalarını içerir vevendor:publish --tag=webblocks-cms-assetsartık bu gerçek paket varlıklarını kökpublic/cmsuyumluluk yoluna yayımlar - aktif çalışma zamanı, uyumluluk için
public/cms/...yolunu hâlâ kök kurulumdan sunar; kurulum ve System Update, paket sahipliğindeki CMS varlıklarını bu yola yeniden yazar - kök migration dosyaları, açık kök Composer autoload sinyaline sahip kaynak bakımlı çalışma kopyaları için yetkili kalır; paket yerlisi System Update işlemleri ise host Laravel uygulama migration dosyalarını atlar ve yalnızca mevcut olduklarında özel paket güncelleme migration dosyalarını çalıştırır
- System Update, kurulum akışı, yedekleme veya geri yükleme ve daha geniş proje katmanı çalışma zamanı bu partide değişmeden kalır
- tüketici veya başlangıç paketi doğrulaması bu kontrol noktasından sonra hâlâ gerçekçi değildir; çünkü çalışma zamanı hâlâ kök migration dosyalarına, kök uyumluluk varlık yollarına, kök sahipliğindeki yönetim ve kurulum/güncelleme akışlarına ve bilinçli olarak uygulama sahipliğinde tutulan kök
Usermodeli sınırına bağımlıdır
Mevcut Site ve Locale yönetim çalışma zamanı kontrol noktası, bir tutarlı yönetim dilimini daha paket sahipliğindeki yönetim rota ağacının arkasına taşır:
- paket sahipliğindeki denetleyiciler artık Site yönetimi, Site Domain yönetimi, Site Variable yönetimi ve Locale yönetimini
packages/webblocks-cms/src/Http/Controllers/Admin/altında üstlenir - paket sahipliğindeki Form Request sınıfları,
SiteLocaleveSiteVariablemodelleri ile doğrudan destekleyen Site veya Locale destek servisleri artık eşleşen kökApp\...sarmalayıcıları olmadan paketsrc/altında yaşar - paket
resources/views/admin/sites/,resources/views/admin/sites/domains/,resources/views/admin/domains/veresources/views/admin/locales/dizinleri artık aktif Site, Domain ve Locale yönetim Blade ağaçlarınıwebblocks-cms::ad alanı üzerinden sahiplenir - kök Site, Domain ve Locale Blade dosyaları artık eşleşen paket sahipliğindeki görünümleri işleyen ince uyumluluk sarmalayıcıları olarak kalır
- bu parti bilinçli olarak migration dosyalarını, kurulum/güncelleme akışlarını, yedekleme/geri yüklemeyi, auth/profil/User sahipliğini, kök config sahipliğini veya public/cms varlık yetkisini taşımaz
webblocks-updates için paket sahipliğindeki varsayılan config artık başlamıştır; geçiş sürecinde kök config dosyası kurulum geçersiz kılması olarak yetkili kalmaya devam eder.
contact için de paket sahipliğindeki varsayılan config artık başlamıştır; geçiş sürecinde kök config dosyası kurulum geçersiz kılması olarak yetkili kalmaya devam eder.
demo_media için de paket sahipliğindeki varsayılan config artık başlamıştır; geçiş sürecinde kök config dosyası kurulum geçersiz kılması olarak yetkili kalmaya devam eder.
cms için de paket sahipliğindeki varsayılan config artık başlamıştır; geçiş sürecinde kök config dosyası kurulum geçersiz kılması olarak yetkili kalmaya devam eder.
Paket sahipliğindeki konsol bootstrap süreci artık salt okunur webblocks:package-status tanılama komutu üzerinden de kanıtlanmıştır.
webblocks-cms paket görünüm ad alanı artık paket sınırı pilotu olarak güvenli biçimde kaydedilmiştir ve v1.31.63 bu ad alanını gerçek, paket sahipliğindeki bir tanılama görünümüyle kanıtlar. Hiçbir aktif CMS çalışma zamanı yönetim veya public görünümü pakete taşınmadığı için aktif kök görünüm çözümlemesi yetkili kalmaya devam eder.
Paket rota sınırı da artık gerçek, paket sahipliğindeki bir tanılama rota dosyasıyla kanıtlanmıştır; ancak paket tanılama rotaları normal çalışma zamanında guard ile devre dışı kaldığı ve hiçbir aktif kök rota dosyası pakete taşınmadığı için aktif kök yönetim ve public rota çözümlemesi yetkili kalmaya devam eder.
Paket migration, public varlık ve stub sınırları da artık etkisiz (inert) ayrılmış pilotlar olarak açıkça tamamlanmıştır; Composer tarafından yönetilen güncelleme akışı sınırı ise yalnızca hedef yön olarak belgelenmiştir. Henüz hiçbir aktif kök migration, kök public varlığı, kök stub davranışı veya kök güncelleme akışı davranışı paket yetkisine taşınmamıştır.
İlk paket sahipliğindeki PHP kaynak taşıması SearchTextNormalizer için artık tamamlanmıştır; sınıf, davranışı değişmeden app/Support/Search/ konumundan paket src/Support/Search/ konumuna taşınmıştır.
Search destek sınırı bu aşamada bilinçli olarak dar kalır: SearchTextNormalizer ve küçük sonuç değer nesnesi PublicSearchRebuildResult artık paket sahipliğindedir; arama dizinleme ve sorgu orkestrasyonu ise DB ve çalışma zamanı bağımlılıkları bilinçli biçimde taşınana kadar kök sahipliğinde kalır.
İlk Search dışı Support denetimi de artık belgelenmiştir: MediaKindResolver, DatabaseExecutionStrategyResolver, SiteHandle ve SiteDomainNormalizer incelendi ve her biri hâlâ en az bir güncel erken aşama risk sınırını aştığı için başka hiçbir sınıf taşınmadı.
İlk Contact destek kaynak taşıması da ContactMessageNotificationResult için artık tamamlanmıştır; sınıf, davranışı değişmeden app/Support/Contact/ konumundan paket src/Support/Contact/ konumuna taşınmıştır; bildirim servisi ve iletişim çalışma zamanı akışı kök sahipliğinde kalır.
İlk BlockTypes destek kaynak taşıması da BlockTypeContract için artık tamamlanmıştır; sınıf, davranışı değişmeden app/Support/BlockTypes/ konumundan paket src/Support/BlockTypes/ konumuna taşınmıştır; kayıt defteri (registry), yönetim sözleşme modal yolu ve denetim komutu kök sahipliğinde kalır.
LayoutMarkup da olası dar bir Pages yardımcı taşıması olarak denetlenmiştir ve mevcut referansları hâlâ sayfa yerleşimi istek doğrulamasını, yönetim formu işlemeyi ve public slot sarmalayıcı davranışını kestiği için şimdilik kök sahipliğinde kalır.
İlk Formatting destek kaynak taşıması da InlineRichTextRenderer için artık tamamlanmıştır; sınıf, davranışı değişmeden app/Support/Formatting/ konumundan paket src/Support/Formatting/ konumuna taşınmıştır; SafeRichTextRenderer ve onun temizleme (sanitization) sözleşmesi kök sahipliğinde kalır.
Bir sonraki düşük riskli çalışma zamanı destek kontrol noktası, yönetim sorgu durumu ve sayfalama konularına yakın duran dört dar yardımcı için de artık tamamlanmıştır:
AdminPaginationartık paketsrc/Support/Admin/altında yaşarBlockTypeIndexStateartık paketsrc/Support/BlockTypes/altında yaşarMediaIndexStateartık paketsrc/Support/Media/altında yaşarPageIndexStateartık paketsrc/Support/Pages/altında yaşar- bu yardımcılara ait kök
App\Support\...sarmalayıcıları daha sonra kaldırıldı; paket içe aktarımları yetkilidir
İlk paket sahipliğindeki seeder sınırı taşıması da düşük riskli kataloglar için artık tamamlanmıştır:
- artık paket sahipliğinde:
IconCatalogSeeder,PageTypeSeeder,LayoutTypeSeeder,SlotTypeSeeder - katalog toplayıcı sınır taşıması olarak
CoreCatalogSeederda artık paket sahipliğinde - kök
Database\Seeders\...sınıfları uyumluluk sarmalayıcıları olarak kalır CoreCatalogSeeder, kök sahipliğindekiPageLayoutSeederveBlockTypeSeedersınıflarını çağırmaya devam ederken kök sarmalayıcı üzerinden devretmeyi sürdürerek kök giriş noktalarını kararlı tutarPageLayoutSeeder,BlockTypeSeederve aktif System Update tohumlaması, daha sonraki odaklı bir aşamaya kadar kök sahipliğinde kalır
Bir sonraki yalıtılmış paket sahipliğindeki çalışma zamanı partisi, ikon kataloğu yönetimi için de artık tamamlanmıştır:
- artık paket sahipliğinde:
SyncWebBlocksUiIconsCommand,IconCatalogController,IconCatalogItemUpdateRequest,IconCatalogveWebBlocksIconManifestSyncer - kök
App\Http\Controllers\Admin\IconCatalogController,App\Http\Requests\Admin\IconCatalogItemUpdateRequest,App\Support\Icons\...veApp\Console\Commands\SyncWebBlocksUiIconsCommandgereksiz paket karşılığı sarmalayıcıları olarak daha sonra kaldırıldı - aktif ikon kataloğu yönetim rotaları artık doğrudan paket denetleyicisine işaret eder ve
icons:sync-webblocks-uiartık paket komut sınıfıyla paket servis sağlayıcısı tarafından kaydedilir - aktif ikon kataloğu yönetim rota tanımları artık kök
routes/web.phpyerine paketroutes/admin.phpdosyasında yaşar - kök ikon kataloğu PHP sarmalayıcıları artık kullanılabilir değildir; aktif rota ve konsol yetkisi pakettedir
- artık paket sahipliğinde ayrıca:
packages/webblocks-cms/resources/views/admin/system/icons/altındaki aktif ikon kataloğu yönetim dizin ve düzenleme modalı Blade görünümleri - kök ikon kataloğu Blade dosyaları, paket ad alanlı görünümleri içeren uyumluluk sarmalayıcıları olarak kalır; ancak paket denetleyicisi
webblocks-cms::admin.system.icons.indexgörünümünü doğrudan işler - bu parti yalnızca ikon kataloğu yönetimi ve eşitleme konusuyla sınırlı kalır ve bilinçli olarak daha geniş Pages, Blocks, Search dizinleme, Sites, Updates, Install, Backup veya Restore, Export veya Import ya da public işleme çalışma zamanı sahipliğini taşımaz
webblocks:package-statusartık salt okunur geçiş tanılamasının parçası olarak paket sahipliğindeki ikon çalışma zamanı dosyalarını ve eşleşen kök PHP sarmalayıcılarının yokluğunu raporlar
Bir sonraki daha büyük yönetim çalışma zamanı çıkarma partisi, çekirdek editoryal ve katalog yönetim yüzeyleri için de artık tamamlanmıştır:
- paket
routes/admin.phpartık yalnızca ikon kataloğu yönetimi için değil, aktif Pages, Blocks, Media, Shared Slots, Navigation, Block Types ve Page Layouts yönetim rota işleyicileri için de yetkilidir - artık paket sahipliğinde: bu dilimlerin yetkili yönetim denetleyicileri,
packages/webblocks-cms/src/Http/Controllers/Admin/altında - artık paket sahipliğinde: bu dilimlerin yetkili yönetim form request sınıfları,
packages/webblocks-cms/src/Http/Requests/Admin/altında - artık paket sahipliğinde: destekleyici blok, medya, gezinme, sayfa, sayfa yerleşimi ve ortak slot servisleri,
packages/webblocks-cms/src/Support/altında - artık paket sahipliğinde:
packages/webblocks-cms/resources/views/admin/blocks/,admin/media/,admin/navigation/,admin/block-types/,admin/pages/,admin/shared-slots/,admin/page-layouts/veadmin/page-layout-slots/altındaki aktif yönetim Blade ağaçları - taşınan bu dilimlere ait kök
App\Http\Controllers\Admin\...,App\Http\Requests\Admin\...veApp\Support\...PHP sarmalayıcıları gereksiz paket karşılığı sarmalayıcıları olarak daha sonra kaldırıldı - taşınan bu ağaçlara ait kök
resources/views/admin/...dosyaları artık eşleşenwebblocks-cms::admin.*görünümlerini içeren uyumluluk sarmalayıcıları olarak kalır - bir istisna bilinçli olarak kökte somut kalır:
resources/views/admin/blocks/types/partials/rich-text-editor.blade.phpgerçek işaretlemeyi hâlâ korur; çünkü uyumluluk kapsamı bu kök dosyayı yalnızca paket ad alanı üzerinden çözümlemek yerine doğrudan okur - bu parti bilinçli olarak Users, yedeklemeler, güncellemeler, sistem ayarları, kurulum akışı, migration dosyaları, kök çalışma zamanı varlık yolları veya uygulama sahipliğindeki
Usermodelini taşımaz webblocks:package-statusile odaklı bootstrap kapsamı artık daha geniş paket sahipliğindeki yönetim çalışma zamanı dosyalarını ve eşleşen kök PHP sarmalayıcılarının bulunmadığını raporlar
Odaklı operasyonel yönetim çalışma zamanı partisi de artık paket sahipliğindedir:
- paket sahipliğindeki denetleyiciler artık
packages/webblocks-cms/src/Http/Controllers/Admin/altında Dashboard'u, Contact Messages yönetici inceleme arayüzünü, Visitor Reports arayüzünü ve System Search durum veya yeniden oluşturma arayüzünü yönetiyor - paket sahipliğindeki destek katmanı artık ziyaretçi raporlama sorgu servisini ve hafif genel arama şema durumu yardımcısını da içeriyor; tam arama dizinleme mimarisi ve
search:rebuildkomut davranışı kök uyumluluk giriş noktalarının arkasında değişmeden kalıyor - paketteki
resources/views/admin/dashboard.blade.php,admin/contact-messages/*,admin/reports/visitors/index.blade.phpveadmin/system/search.blade.phpdosyaları artık etkin operasyonel yönetici Blade yüzeylerinewebblocks-cms::ad alanı üzerinden sahip - bu operasyonel yüzeylere ait kök denetleyici, destek ve Blade dosyaları ince uyumluluk sarmalayıcıları olarak kalıyor
- bu parti kasıtlı olarak System Update'i, System Backup'ı, yedekleme/geri yüklemeyi, site dışa/içe aktarmayı, site terfisini, yükleyiciyi, auth/profil/User sahipliğini, migration'ları, kök yapılandırma sahipliğini veya kök
public/cmsvarlık yetkisini taşımıyor
Kalan güvenli canlı operasyonel rota takip çalışması da artık tamamlandı:
- paket sahipliğindeki denetleyiciler artık
packages/webblocks-cms/src/Http/Controllers/Admin/altındaSlot TypesveSystem Settingsekranlarını da yönetiyor - paket sahipliğindeki request sınıfları artık
packages/webblocks-cms/src/Http/Requests/Admin/altındaSystemSettingsRequestsınıfını da içeriyor - paketteki
resources/views/admin/slot-types/index.blade.phpveresources/views/admin/system/settings.blade.phpdosyaları artık etkin Blade yüzeylerinewebblocks-cms::ad alanı üzerinden sahip - kök
App\Http\Controllers\Admin\SlotTypeController,App\Http\Controllers\Admin\SystemSettingsController,App\Http\Requests\Admin\SystemSettingsRequestve eşleşen kök Blade dosyaları uyumluluk sarmalayıcıları olarak kalıyor - bu takip çalışması kasıtlı olarak System Update uygulamasını, yedekleme veya geri yüklemeyi, yükleyiciyi, auth/profil/User sahipliğini, migration'ları, kök yapılandırma sahipliğini veya kök
public/cmsçalışma zamanı varlık yetkisini hâlâ taşımıyor
Yönetici kabuğu ve varlık sınırının durumu şöyle:
- paket sahipliğindeki yönetici görünümleri
webblocks-cms::layouts.adminyerleşimini genişletiyor ve kökresources/views/layouts/admin.blade.phpuyumluluk sarmalayıcısı kaldırıldı; böylece paket tüketicilerinin ad alanı hataları yerelde hemen başarısız oluyor - paketteki
public/cms/dizini, etkin kök yönetici varlık kümesiyle eşleşen yönetici CSS ve JS kaynak dosyalarını da taşıyor; kökpublic/cms/...yolları ise canlı çalışma zamanı uyumluluk katmanı olarak kalıyor - migration'lar, güncelleyici, yedekleme/geri yükleme, dışa/içe aktarma, terfi, auth/User, yükleyici, kök yapılandırma ve çalışma zamanı varlık yetkisi yakın vadedeki paket yönetici kabuğu sınırının dışında kalıyor
Seçilen ortak yönetici partial/bileşen partileri artık paket sahipliğinde:
- artık paket sahipliğinde:
webblocks-cms::admin.partials.page-header,flash,listing-filters,page-actions,paginationveaudit-actor - artık paket sahipliğinde:
webblocks-cms::components.admin.form-actions; paket görünümlerinden<x-webblocks-cms::admin.form-actions>ile kullanılıyor - artık paket sahipliğinde:
webblocks-cms::layouts.admin; paket sahipliğindeki yönetici görünümlerinden@extends('webblocks-cms::layouts.admin', ...)ile kullanılıyor - kök
resources/views/admin/partials/{page-header,flash,listing-filters,page-actions,pagination,audit-actor}.blade.phpdosyaları uyumluluk sarmalayıcıları olarak kalıyor - kök
resources/views/layouts/admin.blade.phpartık mevcut değil; eklenti ve paket yönetici görünümleri tarihsellayouts.adminyolunu kullanmamalı - kök
resources/views/components/admin/form-actions.blade.php, mevcut<x-admin.form-actions>kullanımı için uyumluluk sarmalayıcısı olarak kalıyor - paket sahipliğindeki yönetici görünümleri artık yönetici yerleşimi ve seçilen ortak partial/bileşenler için paket ad alanını tercih ediyor
webblocks:package-statusartık seçilen ortak yönetici partial/bileşen sınırını ve paket sahipliğindeki yönetici yerleşimi ile kök sarmalayıcıyı da içeren yönetici çalışma zamanı görünüm envanterini raporluyor- kök yönetici varlık URL'leri ve
public/cmsaltındaki çalışma zamanı yetkisi, marka varlıkları, auth/profil/kurulum/app/guest sınırları, migration'lar, güncelleyici, yedekleme/geri yükleme ve sürüm/yayın çalışmaları değişmeden kalıyor
v1.32.15 paket sınırı taraması, paket sahipliğindeki yönetici çalışma zamanı referansları için statik bir sürüm kapısı denetimi ekliyor:
- denetim
packages/webblocks-cms/src/*/.php,packages/webblocks-cms/resources/views/*/.blade.phpvepackages/webblocks-cms/routes/*/.phpdosyalarını tarıyor view('admin.'),View::make('admin.'),response()->view('admin.'),@include('admin.'),@includeIf('admin.'),@extends('layouts.admin'),<x-admin.,<x-auth-password-field,component('admin.')ve doğrudanadmin.blocks.types.kök blok yönetici referansları gibi yalnızca köke ait yönetici referanslarında başarısız oluyor- kabul edilen tek istisna, paket çalışma zamanının önce
webblocks-cms::...adını kontrol ettiği ve kök adını yalnızca mevcut kuruluma özgü geçersiz kılmalar için açık bir uyumluluk yedeği olarak kullandığı, dosya ve desen bazında tam eşleşmeli izin listesi girdileridir
İlk düşük riskli yardımcı ve değer nesnesi kaynak kontrol noktası bu aşama için artık başarılı ve tamamlanmış kabul ediliyor. Yerel geliştirme ortamı da v1.31.60 sonrasında sorunsuz güncellendi; bu, mevcut paket bağlantısının bakımı yapılan geliştirme ortamında çalıştığını doğruluyor.
Fırsatçı düşük riskli PHP kaynak taşımaları artık duraklatıldı. Gelecekteki çalışma zamanı ağırlıklı kaynak taşımaları, daha fazla küçük fırsatçı geçiş yerine özel odaklı bir aşama planı ve bağımlılık denetimi gerektiriyor.
Bu çalışma henüz mevcut CMS çalışma zamanı kodunu taşımıyor, System Update davranışını değiştirmiyor, bir başlangıç projesi oluşturmuyor veya mevcut etkin çalışma zamanı sahiplik sınırlarını değiştirmiyor.
Sonraki Çıkarma Partisi Planı
1. adım, yönetici ve genel çalışma zamanı için etkin CMS rota yetkisini pakete taşıdı; ayrıca sayfa, arama, iletişim mesajı ve gizlilik onayı istekleri için genel rota giriş dilimini de taşıdı. Sonraki parti, başka bir dar pilot başlatmak yerine bu paket rota yetkisinin arkasındaki en büyük kalan çifte sahiplik alanını azaltmalı.
Mevcut engel haritası
Bağımsız paket çalışma zamanını hâlâ engelleyen modeller:
- belgelenmiş paket bağımlılığıyla geçici olarak kök sahipliğinde kalanlar:
BlockType,Media,SharedSlot,PageAsset,PageLayout,PageRevision,NavigationItem,SiteExportveSiteImportgibi yönetici içerik modelleri - kök uyumluluk sarmalayıcılarıyla paket sahipliğinde olanlar:
Locale,Site,SiteDomain,SiteLocale,SiteVariable,Page,PageTranslation,PageSlot,Block,ContactMessage,PublicSearchIndex,VisitorEventveSystemSetting - zaten paket sahipliğindeki bir dilimin dar bir devamı olarak yakında pakete hazır olması muhtemel:
IconCatalogItem - uygulama sahipliğinde kalması gereken:
User
Bağımsız paket çalışma zamanını hâlâ engelleyen görünüm sınırları:
- paket genel yerleşimi, sayfa kabuğu, arama kabuğu, arama modalı, slot giriş görünümleri ve paketle gelen genel blok işleyici partial ağacı artık
webblocks-cms::ad alanı üzerinden yetkili - kök
resources/views/pages/partials/blocks/*, kuruluma özgü kök blok işleyicilerinin ve doğrudan kök görünüm referanslarının geçiş sırasında çalışmaya devam etmesi için kasıtlı olarak uyumluluk sarmalayıcı katmanı olarak duruyor - paket yönetici işleme artık
admin/pages/,admin/blocks/,admin/shared-slots/,admin/media/,admin/navigation/,admin/block-types/,admin/page-layouts/,admin/page-layout-slots/,admin/sites/,admin/domains/veadmin/locales/*içinwebblocks-cms::ad alanı üzerinden yetkili; eşleşen kök Blade dosyaları uyumluluk sarmalayıcıları olarak kalıyor - kök yönetici işleme, henüz taşınmamış ekranlar için — özellikle kurulum/auth/profil sarmalayıcıları ve uygulama sahipliğindeki kullanıcı uç durumları için — yetkili kalmaya devam ediyor; etkin site aktarımı ve terfi yönetici ekranları içinse paket işleme
webblocks-cms::üzerinden yetkili
Bağımsız paket çalışma zamanını hâlâ engelleyen destek ve servis sınırları:
- genel işleme dilimi için artık paket sahipliğinde: rota çözümleme, sayfa sunumu, ortak slot sunumu, slot sarmalayıcı çözümleme, güvenilir HTML katman çıkarımı, genel katman veya gövde sonu kayıtları, genel arama sorgu orkestrasyonu, genel site çözümleme, site varlık çözümleme ve ziyaretçi olayı günlükleme
- yalnızca model taşımalarından sonra taşınmalı: hâlâ doğrudan kök modellere veya daha geniş yönetici akışlarına oturan kalan Pages veya PublicRendering, Blocks, Search dizinleme, Navigation, SharedSlots veya Revisions katmanları
- şimdilik kök sahipliğinde kalmalı: Media, Sites taşınabilirlik akışları, Formatting temizleme, Admin veya Audit yardımcıları
- kurulum kökü sahipliğinde kalmalı: Install, System veya Updates, yedekleme veya geri yükleme, kurulu sürüm ve ortam yazıcıları
Request'ler, komutlar, varlıklar, migration'lar ve güncelleme akışı engelleri:
- sahibi olan sayfa, blok, ortak slot, medya, site ve gezinme partileri taşındığında birçok yönetici Form Request'i kök sarmalayıcılarla daha sonra taşınabilir
- birçok editoryal yönetici Form Request'i artık kök sarmalayıcılarla zaten taşındı; ancak sistem, site taşınabilirliği, güncelleme, yedekleme, kurulum ve diğer operasyon odaklı request'ler hâlâ kök sahipliğinde
- paketin kullandığı güncelleme, yedekleme, içe aktarma, dışa aktarma, terfi ve yükleyici komutları hâlâ ortam, dosya sistemi, arşiv, Composer, migration ve kurulum durumu davranışına bağımlı olduğu için açıkça sınırlandırılmış kalmalı
- paketteki
public/cms/artık taşınan genel yerleşim CSS ve JS dosyalarını da taşısa ve bunlarıwebblocks-cms-assetsile yayımlayabilse de, kökpublic/cms/*varlıkları etkin yetkili çalışma zamanı yolları olmaya devam ediyor - kök migration'lar, bakım deposu kök Composer autoload yetkisine sahip kaynak bakımlı çalışma kopyaları için yetkili kalıyor;
webblocks:installile kurulan paket yerlisi yeni tüketiciler System Update sırasında ana Laravel uygulama migration'larını çalıştırmamalı - WebBlocks UI Manager artık CMS paket çalışma zamanının içinde gelmiyor. Kaynağı bakım derlemeleri için
plugins/webblocks-ui-manageraltında yaşıyor ve operatörler WebBlocks UI yayın/CDN iş akışlarına ihtiyaç duyduklarında onu eklenti ZIP'i olarak elle kuruyor. - 5. Aşama eklenti paketi hazırlığı; eklenti sahipliğindeki sınıfları, görünümleri, rotaları, komutları, yapılandırmayı, ayar ad alanlarını ve veritabanı öneklerini eklenti tanıtıcılarına atfedilebilir tutuyor; devre dışı veya uyumsuz eklentiler etkisiz kalıyor ve CMS çekirdek sorumluluğuna dönüşmüyor
- paket tüketicisi System Update'ler yalnızca
vendor/fklavyenet/webblocks-cms/database/migrations/updatesaltında varsa özel paket sahipliğindeki güncelleme migration'larını çalıştırıyor; yoksa rastgele ana bilgisayar migration'larını çalıştırılmış olarak işaretlemeden migration yürütmesini atlıyor - System Update ayrı bir aşama olarak kalıyor çünkü engelleri rota veya denetleyici sahipliği değil; ortam değişikliği, dosya sistemi yazmaları, Composer yürütmesi, yedekler, migration'lar, kurulu sürüm kalıcılığı ve kök operasyonel durumdur
Konsolidasyon sonucu
- Güvenli CMS sahipliğindeki kaynak konsolidasyonu: tamamlandı
- Kalan taşınmış yardımcı ters çevirme temizliği: tamamlandı (uygulamaya artık
WebBlocks\Cms\Support\Blocks\BlockTranslationWriterveCoreBlockTypeCatalogSyncersahip; kökApp\Support\Blocks\...sınıfları yalnızca uyumluluk sarmalayıcıları olarak kalıyor) - Etkin çalışma zamanı varlık URL konsolidasyonu: kasıtlı olarak eksik; kök
public/cms/...uyumluluk çalışma zamanı yolu olarak kalıyor - Başlangıç projesi ayrımı hazırlığı: hazır değil
- Kalan son sınırlar: kurulum/auth/profil çalışma zamanı, uygulama sahipliğindeki
User, kök migration yetkisi, kök güncelleme/kurulum yetkisi ve gelecekteki başlangıç projesi ayrımı tasarımı
Önerilen sonraki parti
Önerilen parti: zaten paket sahipliğindeki çalışma zamanı dilimleri için odaklı model/destek uyumluluk temizliği yapın veya yönetici yerleşimi ile yönetici CSS veya JS kaynak dosyaları artık paket sahipliğinde olduğuna göre sonraki yönetici varlık ve marka stratejisi geçişini yürütün. Yönetici varlık stratejisi netleşene kadar etkin kök public/cms yönetici varlık yetkisini yerinde tutun.
Bu kontrol noktasında tamamlanan kapsam:
- genel kabuk ve sayfa görünümleri:
layouts.public,pages.show,search.showvesearch/partials/modal resources/views/pages/partials/slot*.blade.phpaltındaki sayfa slot giriş işleme partial'larıresources/views/pages/partials/blocks/*altındaki paketle gelen genel blok işleyici partial'ları- rota çözümleme, genel sayfa sunumu, ortak slot sunumu, slot sarmalayıcı çözümleme, güvenilir HTML katman çıkarımı, katman kayıtları, arama sorgu orkestrasyonu, site çözümleme, site varlık çözümleme ve ziyaretçi olayı günlükleme için genel işleme destek katmanı
- rota, denetleyici, request veya görünüm referanslarının hâlâ geriye dönük uyumlu kök giriş noktalarına ihtiyaç duyduğu yerlerdeki kök uyumluluk sarmalayıcıları
Bu partiden kasıtlı olarak ertelenen kapsam:
Locale,Site,SiteDomain,Page,PageTranslation,PageSlot,Block,ContactMessage,PublicSearchIndex,VisitorEventveSystemSettingiçin paket sahipliğinde Eloquent model çıkarımı- yetkili paket çalışma zamanı varlık URL'leri ve yayımlama akışı
- kök migration yetkisinin yeniden tasarımı
- System Update ve kurulum/güncelleme akışı çıkarımı
Bu partinin sıradaki olmasının nedeni:
- paket yönetici rota, denetleyici, request, destek ve görünüm yetkisi artık büyük yönetici çalışma zamanı dilimlerinin genelinde zaten mevcut
- seçilen ortak yönetici partial/bileşenleri ve dar uç durumları artık taşındı; geriye daha büyük kabuk/varlık sınırları kaldı
- paket sahipliğindeki yönetici yerleşimi ile paket sahipliğindeki yönetici CSS veya JS kaynak dosyaları hâlâ etkin kök çalışma zamanı varlık ve marka yüklemesine dayanıyor; bu nedenle sonraki adım başka bir kabuk taşıması değil, bilinçli bir yönetici varlık ve marka stratejisi olmalı
- sonraki yüksek değerli çıkarma işi; migration'lara, güncelleyiciye, yedekleme/geri yüklemeye, dışa/içe aktarmaya, terfiye, auth/User'a, yükleyiciye, kök yapılandırmaya veya varlık yetkisine atlamadan kalan model/destek uyumluluk varsayımlarını azaltmak veya yönetici varlık/marka stratejisini tasarlamaktır
Beklemesi gereken büyük partiler
- site taşınabilirlik partisi: Dışa Aktarma veya İçe Aktarma ile Terfi, arşiv, yedekleme ve aktarım sınırları açıkça denetlenene kadar beklemeli
- migration'lar, etkin çalışma zamanı varlıkları, yükleyici, yedekleme/geri yükleme, auth/User ve System Update ayrı özel aşamalar olarak kalmalı
Ortak partial'lar gizli bağlantı ortaya çıkarırsa alternatif
Yedek parti: zaten paket sahipliğindeki çalışma zamanı dilimleri için odaklı bir kalan model/destek uyumluluk temizliği.
Bu yedek plan yalnızca, ortak partial'ların ince kök sarmalayıcı desenini küçük bir uygulama partisi için fazla gürültülü hale getiren beklenmedik auth, güncelleyici, yedekleme veya kurulum bağlantıları ortaya çıkarması durumunda geçerlidir.