Terimler Sözlüğü

AJAX

Asynchronous JavaScript and XML – istemci ve sunucu arasında, her istekte tüm sayfanın yeniden yüklenmesine gerek kalmadan HTTP protokolü üzerinden bilgi alışverişi sağlayan bir teknoloji. Adından yalnızca XML formatında veri gönderdiği anlaşılsa da, yaygın olarak JSON formatı da kullanılır.

Presenter Eylemi

Presenter'ın tek bir eylemi gerçekleştiren mantıksal bölümü. Örneğin, bir ürün sayfasını görüntüler, kullanıcının oturumunu kapatır vb. Bir presenter birden fazla eyleme sahip olabilir.

BOM

Sözde byte order mark, bir dosyadaki, kodlamada bayt sırasının göstergesi olarak kullanılan özel ilk karakterdir. Bazı düzenleyiciler bunu dosyalara ekler. Pratik olarak görünmezdir, ancak PHP'den çıktı ve başlıkların (header) gönderilmesinde sorunlara neden olur. Toplu olarak kaldırmak için Code Checker kullanabilirsiniz.

Controller

Kullanıcı isteklerini işleyen ve bunlara dayanarak uygun uygulama mantığını (yani model) çağıran ve ardından verileri işlemek için view'den (görünüm) istekte bulunan denetleyici. Nette Framework'teki denetleyicilerin karşılığı presenter'lardır.

Cross-Site Scripting (XSS)

Cross-Site Scripting, işlenmemiş çıktıları kötüye kullanan web sitelerini ihlal etme yöntemidir. Saldırgan daha sonra sayfaya kendi kodunu ekleyebilir ve böylece sayfayı değiştirebilir veya hatta ziyaretçiler hakkında hassas veriler elde edebilir. XSS'e karşı yalnızca tüm karakter dizilerinin tutarlı ve doğru bir şekilde işlenmesiyle savunulabilir.

Nette Framework, sizi Cross-Site Scripting riskinden kalıcı olarak kurtaracak devrim niteliğinde bir Context-Aware Escaping teknolojisi sunar. Tüm çıktıları otomatik olarak işlediği için kodlayıcının bir şeyi unutması mümkün olmaz.

Cross-Site Request Forgery (CSRF)

Cross-Site Request Forgery saldırısı, saldırganın kurbanı, kurbanın oturum açtığı sunucuya kurbanın tarayıcısında gizlice bir istek yürüten bir sayfaya çekmesi ve sunucunun isteğin kurban tarafından kendi isteğiyle yapıldığına inanmasıdır. Ve böylece kurbanın kimliği altında, kurbanın haberi olmadan belirli bir eylemi gerçekleştirir. Bu, verilerin değiştirilmesi veya silinmesi, bir mesaj gönderilmesi vb. olabilir.

Nette Framework, formları ve presenter'lardaki sinyalleri otomatik olarak bu tür saldırılara karşı korur. Bunu, başka bir alan adından gönderilmelerini veya çağrılmalarını engelleyerek yapar.

Dependency Injection

Dependency Injection (DI), nesnelerin oluşturulmasını bağımlılıklarından nasıl ayıracağımızı belirten bir tasarım desenidir. Yani, bir sınıf kendi bağımlılıklarını oluşturmaktan veya başlatmaktan sorumlu değildir; bunun yerine bu bağımlılıklar ona harici bir kod tarafından sağlanır (bu bir DI konteyner de olabilir). Avantajı, bağımlılıkların kolayca değiştirilebilir ve kodun diğer bölümlerinden izole edilmiş olması nedeniyle daha fazla kod esnekliği, daha iyi anlaşılırlık ve uygulamanın daha kolay test edilmesini sağlamasıdır. Daha fazla bilgi için Dependency Injection Nedir? bölümüne bakın.

Dependency Injection Konteyner

Dependency Injection konteyner (DI konteyner veya IoC konteyner olarak da bilinir), bir uygulamadaki bağımlılıkların (yani servislerin) oluşturulmasını ve yönetimini sağlayan bir araçtır. Konteyner genellikle hangi sınıfların diğer sınıflara bağımlı olduğunu, hangi belirli bağımlılık uygulamalarının kullanılacağını ve bu bağımlılıkların nasıl oluşturulacağını tanımlayan bir yapılandırmaya sahiptir. Ardından konteyner bu nesneleri oluşturur ve onlara ihtiyaç duyan sınıflara sağlar. Daha fazla bilgi için DI Konteyner Nedir? bölümüne bakın.

Kaçış (Escaping)

Kaçış (Escaping), belirli bir bağlamda özel anlamı olan karakterlerin, onlara karşılık gelen başka dizilere dönüştürülmesidir. Örneğin: tırnak işaretleriyle (") sınırlanmış bir karakter dizisine tırnak işareti yazmak istediğimizde. Tırnak işaretlerinin karakter dizisi bağlamında özel bir anlamı olduğundan ve doğrudan yazılmaları karakter dizisinin sonu olarak anlaşılacağından, bunun yerine karşılık gelen başka bir diziyle yazılmaları gerekir. Hangi dizinin kullanılacağını bağlamın kuralları belirler.

Filtre (Filter) (eskiden helper)

Şablonlarda, filtre terimi genellikle verileri nihai forma dönüştürmeye veya yeniden biçimlendirmeye yardımcı olan bir fonksiyonu ifade eder. Şablonlar birkaç standart filtre içerir.

Geçersiz Kılma (Invalidation)

Bir snippet'in yeniden çizilmesi gerektiğinin bildirilmesi. Başka bir anlamda, önbellek (cache) içeriğinin silinmesi.

JSON

JavaScript sözdizimine dayanan (onun bir alt kümesidir) veri alışverişi formatı. Kesin belirtimi www.json.org sayfasında bulabilirsiniz.

Bileşen (Component)

Uygulamanın yeniden kullanılabilir bir parçası. Bileşen Yazma bölümünde açıklandığı gibi sayfanın görsel bir parçası olabilir veya bileşen terimi altında Component sınıfı da anlaşılabilir (böyle bir bileşen görsel olmak zorunda değildir).

Kontrol Karakterleri

Kontrol karakterleri, metinde bulunabilen ve muhtemelen sorunlara neden olabilen görünmez karakterlerdir. Bunları dosyalardan toplu olarak kaldırmak için Code Checker ve bir değişkenden kaldırmak için Strings::normalize() fonksiyonunu kullanabilirsiniz.

Olaylar (Events)

Olay, bir nesnede beklenen bir durumdur ve gerçekleştiğinde, olaya tepki veren geri çağrılar (callback) olan sözde işleyiciler (handler) çağrılır (örnek). Olay, örneğin bir formun gönderilmesi, bir kullanıcının oturum açması vb. olabilir. Olaylar bu nedenle bir Inversion of Control biçimidir.

Örneğin, kullanıcı girişi Nette\Security\User::login() metodunda gerçekleşir. User nesnesinin, herkesin bir geri çağrı (callback) ekleyebileceği bir dizi olan $onLoggedIn adında genel bir değişkeni vardır. Kullanıcı oturum açtığı anda, login() metodu dizideki tüm geri çağrıları çağırır. onXyz biçimindeki değişken adı, tüm Nette'de kullanılan bir konvansiyondur.

Latte

En gelişmiş şablon sistemlerinden biri.

Model

Model, tüm uygulamanın veri ve özellikle işlevsel temelidir. Tüm uygulama mantığını (iş mantığı terimi de kullanılır) içerir. MVC veya MVP'deki M'dir. Herhangi bir kullanıcı eylemi (oturum açma, sepete ürün ekleme, veritabanındaki değeri değiştirme) bir model eylemini temsil eder.

Model kendi iç durumunu yönetir ve dışarıya sabit bir arayüz (interface) sunar. Bu arayüzün fonksiyonlarını çağırarak durumunu sorgulayabilir veya değiştirebiliriz. Model, view (görünüm) veya controller'ın varlığından haberdar değildir.

Model-View-Controller

Grafik arayüzlü uygulamalarda işleme kodunu (controller) uygulama mantığı kodundan (model) ve veri görüntüleme kodundan (view) ayırma ihtiyacından doğan yazılım mimarisi. Bu, uygulamayı daha anlaşılır hale getirir, gelecekteki geliştirmeyi kolaylaştırır ve tek tek parçaların ayrı ayrı test edilmesini sağlar.

Model-View-Presenter

Model-View-Controller'dan türetilen mimari.

Modül

Modül, uygulamanın mantıksal bir bölümünü temsil eder. Tipik bir düzende, belirli bir işlevsellik alanını ele alan bir grup presenter ve şablondur. Modülleri ayrı dizinlere yerleştiririz, örneğin Front/, Admin/ veya Shop/.

Örneğin, bir e-mağazayı şunlara ayırırız:

  • Ürünleri görüntülemek ve satın almak için Frontend (Shop/)
  • Siparişleri yönetmek için Müşteri bölümü (Customer/)
  • Operatör için Yönetim (Admin/)

Teknik olarak bunlar sıradan dizinlerdir, ancak net bölümleme sayesinde uygulamanın ölçeklenmesine yardımcı olurlar. Admin:Product:List presenter'ı fiziksel olarak örneğin app/Presentation/Admin/Product/List/ dizininde bulunur (bkz. presenter eşlemesi).

Namespace (Ad Alanı)

PHP sürüm 5.3'ten ve diğer bazı programlama dillerinden itibaren dilin bir parçası olan ad alanı, farklı kütüphanelerde aynı şekilde adlandırılmış sınıfların ad çakışması olmadan kullanılmasını sağlar. Bkz. PHP belgeleri.

Presenter

Presenter, yönlendirici tarafından HTTP isteğinden çevrilen isteği alan ve bir yanıt oluşturan bir nesnedir. Yanıt bir HTML sayfası, bir resim, bir XML belgesi, diskteki bir dosya, JSON, bir yönlendirme veya aklınıza gelebilecek herhangi bir şey olabilir.

Genellikle presenter terimi altında Nette\Application\UI\Presenter sınıfının bir alt sınıfı anlaşılır. Gelen isteklere göre ilgili eylemleri çalıştırır ve şablonları işler.

Yönlendirici (Router)

HTTP isteği / URL ile presenter eylemi arasında çift yönlü bir çeviricidir. Çift yönlü olması, hem bir HTTP isteğinden presenter eylemini türetmenin hem de tersine, bir eyleme karşılık gelen URL'yi oluşturmanın mümkün olduğu anlamına gelir. Daha fazla bilgi URL Yönlendirme bölümünde.

SameSite Çerezi

SameSite çerezleri, sayfanın yüklenmesine neyin yol açtığını tanımak için bir mekanizma sağlar. Üç değeri olabilir: Lax, Strict ve None (bu HTTPS gerektirir). Sayfa isteği doğrudan web sitesinden geliyorsa veya kullanıcı sayfayı doğrudan adres çubuğuna yazarak veya bir yer imine tıklayarak açarsa, tarayıcı sunucuya tüm çerezleri gönderir (yani Lax, Strict ve None bayraklarıyla). Kullanıcı başka bir web sitesinden bir bağlantı aracılığıyla web sitesine tıklarsa, sunucuya Lax ve None bayraklarına sahip çerezler iletilir. İstek başka bir şekilde, örneğin başka bir web sitesinden bir POST formu göndererek, bir iframe içinde yükleyerek, JavaScript kullanarak vb. ortaya çıkarsa, yalnızca None bayrağına sahip çerezler gönderilir.

Servis (Service)

Dependency Injection bağlamında, servis terimi DI konteyner tarafından oluşturulan ve yönetilen bir nesneyi ifade eder. Servis, örneğin test amacıyla veya servisi kullanan kodu değiştirmeye gerek kalmadan uygulamanın davranışını değiştirmek için başka bir uygulamayla kolayca değiştirilebilir.

Snippet (Kod Parçacığı)

Bir AJAX isteği sırasında bağımsız olarak yeniden çizilebilen sayfa bölümü, kesit.

View (Görünüm)

View, yani görünüm, isteğin sonucunu görüntülemekten sorumlu olan uygulama katmanıdır. Genellikle bir şablon sistemi kullanır ve hangi bileşenin veya modelden elde edilen sonucun nasıl görüntüleneceğini bilir.

versiyon: 4.0